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 Kinesis Analytics SDK
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+ 
+`2.0` - Derived from API version @2018-05-23@ of the AWS service descriptions, licensed under Apache 2.0.
+
+## Description
+
+Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-kinesisanalyticsv2)
+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.KinesisAnalyticsV2](http://hackage.haskell.org/package/amazonka-kinesisanalyticsv2/docs/Amazonka-KinesisAnalyticsV2.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-kinesisanalyticsv2` 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-kinesisanalyticsv2.cabal b/amazonka-kinesisanalyticsv2.cabal
new file mode 100644
--- /dev/null
+++ b/amazonka-kinesisanalyticsv2.cabal
@@ -0,0 +1,246 @@
+cabal-version:      2.2
+name:               amazonka-kinesisanalyticsv2
+version:            2.0
+synopsis:           Amazon Kinesis Analytics 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 @2018-05-23@ 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.KinesisAnalyticsV2.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.KinesisAnalyticsV2" 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-kinesisanalyticsv2
+
+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.KinesisAnalyticsV2
+    Amazonka.KinesisAnalyticsV2.AddApplicationCloudWatchLoggingOption
+    Amazonka.KinesisAnalyticsV2.AddApplicationInput
+    Amazonka.KinesisAnalyticsV2.AddApplicationInputProcessingConfiguration
+    Amazonka.KinesisAnalyticsV2.AddApplicationOutput
+    Amazonka.KinesisAnalyticsV2.AddApplicationReferenceDataSource
+    Amazonka.KinesisAnalyticsV2.AddApplicationVpcConfiguration
+    Amazonka.KinesisAnalyticsV2.CreateApplication
+    Amazonka.KinesisAnalyticsV2.CreateApplicationPresignedUrl
+    Amazonka.KinesisAnalyticsV2.CreateApplicationSnapshot
+    Amazonka.KinesisAnalyticsV2.DeleteApplication
+    Amazonka.KinesisAnalyticsV2.DeleteApplicationCloudWatchLoggingOption
+    Amazonka.KinesisAnalyticsV2.DeleteApplicationInputProcessingConfiguration
+    Amazonka.KinesisAnalyticsV2.DeleteApplicationOutput
+    Amazonka.KinesisAnalyticsV2.DeleteApplicationReferenceDataSource
+    Amazonka.KinesisAnalyticsV2.DeleteApplicationSnapshot
+    Amazonka.KinesisAnalyticsV2.DeleteApplicationVpcConfiguration
+    Amazonka.KinesisAnalyticsV2.DescribeApplication
+    Amazonka.KinesisAnalyticsV2.DescribeApplicationSnapshot
+    Amazonka.KinesisAnalyticsV2.DescribeApplicationVersion
+    Amazonka.KinesisAnalyticsV2.DiscoverInputSchema
+    Amazonka.KinesisAnalyticsV2.Lens
+    Amazonka.KinesisAnalyticsV2.ListApplications
+    Amazonka.KinesisAnalyticsV2.ListApplicationSnapshots
+    Amazonka.KinesisAnalyticsV2.ListApplicationVersions
+    Amazonka.KinesisAnalyticsV2.ListTagsForResource
+    Amazonka.KinesisAnalyticsV2.RollbackApplication
+    Amazonka.KinesisAnalyticsV2.StartApplication
+    Amazonka.KinesisAnalyticsV2.StopApplication
+    Amazonka.KinesisAnalyticsV2.TagResource
+    Amazonka.KinesisAnalyticsV2.Types
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationDetail
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationMaintenanceConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationMaintenanceConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationMode
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationRestoreConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationRestoreType
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationStatus
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationSummary
+    Amazonka.KinesisAnalyticsV2.Types.ApplicationVersionSummary
+    Amazonka.KinesisAnalyticsV2.Types.ArtifactType
+    Amazonka.KinesisAnalyticsV2.Types.CatalogConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.CatalogConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.CatalogConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.CheckpointConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.CheckpointConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.CheckpointConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.CloudWatchLoggingOption
+    Amazonka.KinesisAnalyticsV2.Types.CloudWatchLoggingOptionDescription
+    Amazonka.KinesisAnalyticsV2.Types.CloudWatchLoggingOptionUpdate
+    Amazonka.KinesisAnalyticsV2.Types.CodeContent
+    Amazonka.KinesisAnalyticsV2.Types.CodeContentDescription
+    Amazonka.KinesisAnalyticsV2.Types.CodeContentType
+    Amazonka.KinesisAnalyticsV2.Types.CodeContentUpdate
+    Amazonka.KinesisAnalyticsV2.Types.ConfigurationType
+    Amazonka.KinesisAnalyticsV2.Types.CSVMappingParameters
+    Amazonka.KinesisAnalyticsV2.Types.CustomArtifactConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.CustomArtifactConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.DeployAsApplicationConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.DeployAsApplicationConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.DeployAsApplicationConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.DestinationSchema
+    Amazonka.KinesisAnalyticsV2.Types.EnvironmentProperties
+    Amazonka.KinesisAnalyticsV2.Types.EnvironmentPropertyDescriptions
+    Amazonka.KinesisAnalyticsV2.Types.EnvironmentPropertyUpdates
+    Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.FlinkRunConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.GlueDataCatalogConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.GlueDataCatalogConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.GlueDataCatalogConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.Input
+    Amazonka.KinesisAnalyticsV2.Types.InputDescription
+    Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessor
+    Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessorDescription
+    Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessorUpdate
+    Amazonka.KinesisAnalyticsV2.Types.InputParallelism
+    Amazonka.KinesisAnalyticsV2.Types.InputParallelismUpdate
+    Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.InputSchemaUpdate
+    Amazonka.KinesisAnalyticsV2.Types.InputStartingPosition
+    Amazonka.KinesisAnalyticsV2.Types.InputStartingPositionConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.InputUpdate
+    Amazonka.KinesisAnalyticsV2.Types.JSONMappingParameters
+    Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInput
+    Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInputDescription
+    Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInputUpdate
+    Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutput
+    Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutputDescription
+    Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutputUpdate
+    Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInput
+    Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInputDescription
+    Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInputUpdate
+    Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsOutput
+    Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsOutputDescription
+    Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsOutputUpdate
+    Amazonka.KinesisAnalyticsV2.Types.LambdaOutput
+    Amazonka.KinesisAnalyticsV2.Types.LambdaOutputDescription
+    Amazonka.KinesisAnalyticsV2.Types.LambdaOutputUpdate
+    Amazonka.KinesisAnalyticsV2.Types.LogLevel
+    Amazonka.KinesisAnalyticsV2.Types.MappingParameters
+    Amazonka.KinesisAnalyticsV2.Types.MavenReference
+    Amazonka.KinesisAnalyticsV2.Types.MetricsLevel
+    Amazonka.KinesisAnalyticsV2.Types.MonitoringConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.MonitoringConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.MonitoringConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.Output
+    Amazonka.KinesisAnalyticsV2.Types.OutputDescription
+    Amazonka.KinesisAnalyticsV2.Types.OutputUpdate
+    Amazonka.KinesisAnalyticsV2.Types.ParallelismConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.ParallelismConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.ParallelismConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.PropertyGroup
+    Amazonka.KinesisAnalyticsV2.Types.RecordColumn
+    Amazonka.KinesisAnalyticsV2.Types.RecordFormat
+    Amazonka.KinesisAnalyticsV2.Types.RecordFormatType
+    Amazonka.KinesisAnalyticsV2.Types.ReferenceDataSource
+    Amazonka.KinesisAnalyticsV2.Types.ReferenceDataSourceDescription
+    Amazonka.KinesisAnalyticsV2.Types.ReferenceDataSourceUpdate
+    Amazonka.KinesisAnalyticsV2.Types.RunConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.RunConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.RunConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.RuntimeEnvironment
+    Amazonka.KinesisAnalyticsV2.Types.S3ApplicationCodeLocationDescription
+    Amazonka.KinesisAnalyticsV2.Types.S3Configuration
+    Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocation
+    Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocationDescription
+    Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.S3ContentLocation
+    Amazonka.KinesisAnalyticsV2.Types.S3ContentLocationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSource
+    Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSourceDescription
+    Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSourceUpdate
+    Amazonka.KinesisAnalyticsV2.Types.SnapshotDetails
+    Amazonka.KinesisAnalyticsV2.Types.SnapshotStatus
+    Amazonka.KinesisAnalyticsV2.Types.SourceSchema
+    Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.SqlRunConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.Tag
+    Amazonka.KinesisAnalyticsV2.Types.UrlType
+    Amazonka.KinesisAnalyticsV2.Types.VpcConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.VpcConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.VpcConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.ZeppelinApplicationConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.ZeppelinApplicationConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.ZeppelinApplicationConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfiguration
+    Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfigurationDescription
+    Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfigurationUpdate
+    Amazonka.KinesisAnalyticsV2.UntagResource
+    Amazonka.KinesisAnalyticsV2.UpdateApplication
+    Amazonka.KinesisAnalyticsV2.UpdateApplicationMaintenanceConfiguration
+    Amazonka.KinesisAnalyticsV2.Waiters
+
+  build-depends:
+    , amazonka-core  >=2.0  && <2.1
+    , base           >=4.12 && <5
+
+test-suite amazonka-kinesisanalyticsv2-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.KinesisAnalyticsV2
+    Test.Amazonka.KinesisAnalyticsV2
+    Test.Amazonka.KinesisAnalyticsV2.Internal
+
+  build-depends:
+    , amazonka-core                >=2.0 && <2.1
+    , amazonka-kinesisanalyticsv2
+    , amazonka-test                >=2.0 && <2.1
+    , base
+    , bytestring
+    , case-insensitive
+    , tasty
+    , tasty-hunit
+    , text
+    , time
+    , unordered-containers
diff --git a/fixture/AddApplicationCloudWatchLoggingOption.yaml b/fixture/AddApplicationCloudWatchLoggingOption.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/AddApplicationCloudWatchLoggingOption.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/AddApplicationCloudWatchLoggingOptionResponse.proto b/fixture/AddApplicationCloudWatchLoggingOptionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/AddApplicationCloudWatchLoggingOptionResponse.proto
diff --git a/fixture/AddApplicationInput.yaml b/fixture/AddApplicationInput.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/AddApplicationInput.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/AddApplicationInputProcessingConfiguration.yaml b/fixture/AddApplicationInputProcessingConfiguration.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/AddApplicationInputProcessingConfiguration.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/AddApplicationInputProcessingConfigurationResponse.proto b/fixture/AddApplicationInputProcessingConfigurationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/AddApplicationInputProcessingConfigurationResponse.proto
diff --git a/fixture/AddApplicationInputResponse.proto b/fixture/AddApplicationInputResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/AddApplicationInputResponse.proto
diff --git a/fixture/AddApplicationOutput.yaml b/fixture/AddApplicationOutput.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/AddApplicationOutput.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/AddApplicationOutputResponse.proto b/fixture/AddApplicationOutputResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/AddApplicationOutputResponse.proto
diff --git a/fixture/AddApplicationReferenceDataSource.yaml b/fixture/AddApplicationReferenceDataSource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/AddApplicationReferenceDataSource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/AddApplicationReferenceDataSourceResponse.proto b/fixture/AddApplicationReferenceDataSourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/AddApplicationReferenceDataSourceResponse.proto
diff --git a/fixture/AddApplicationVpcConfiguration.yaml b/fixture/AddApplicationVpcConfiguration.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/AddApplicationVpcConfiguration.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/AddApplicationVpcConfigurationResponse.proto b/fixture/AddApplicationVpcConfigurationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/AddApplicationVpcConfigurationResponse.proto
diff --git a/fixture/CreateApplication.yaml b/fixture/CreateApplication.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateApplication.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/CreateApplicationPresignedUrl.yaml b/fixture/CreateApplicationPresignedUrl.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateApplicationPresignedUrl.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/CreateApplicationPresignedUrlResponse.proto b/fixture/CreateApplicationPresignedUrlResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateApplicationPresignedUrlResponse.proto
diff --git a/fixture/CreateApplicationResponse.proto b/fixture/CreateApplicationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateApplicationResponse.proto
diff --git a/fixture/CreateApplicationSnapshot.yaml b/fixture/CreateApplicationSnapshot.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateApplicationSnapshot.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/CreateApplicationSnapshotResponse.proto b/fixture/CreateApplicationSnapshotResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateApplicationSnapshotResponse.proto
diff --git a/fixture/DeleteApplication.yaml b/fixture/DeleteApplication.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplication.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/DeleteApplicationCloudWatchLoggingOption.yaml b/fixture/DeleteApplicationCloudWatchLoggingOption.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationCloudWatchLoggingOption.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/DeleteApplicationCloudWatchLoggingOptionResponse.proto b/fixture/DeleteApplicationCloudWatchLoggingOptionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationCloudWatchLoggingOptionResponse.proto
diff --git a/fixture/DeleteApplicationInputProcessingConfiguration.yaml b/fixture/DeleteApplicationInputProcessingConfiguration.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationInputProcessingConfiguration.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/DeleteApplicationInputProcessingConfigurationResponse.proto b/fixture/DeleteApplicationInputProcessingConfigurationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationInputProcessingConfigurationResponse.proto
diff --git a/fixture/DeleteApplicationOutput.yaml b/fixture/DeleteApplicationOutput.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationOutput.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/DeleteApplicationOutputResponse.proto b/fixture/DeleteApplicationOutputResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationOutputResponse.proto
diff --git a/fixture/DeleteApplicationReferenceDataSource.yaml b/fixture/DeleteApplicationReferenceDataSource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationReferenceDataSource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/DeleteApplicationReferenceDataSourceResponse.proto b/fixture/DeleteApplicationReferenceDataSourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationReferenceDataSourceResponse.proto
diff --git a/fixture/DeleteApplicationResponse.proto b/fixture/DeleteApplicationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationResponse.proto
diff --git a/fixture/DeleteApplicationSnapshot.yaml b/fixture/DeleteApplicationSnapshot.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationSnapshot.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/DeleteApplicationSnapshotResponse.proto b/fixture/DeleteApplicationSnapshotResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationSnapshotResponse.proto
diff --git a/fixture/DeleteApplicationVpcConfiguration.yaml b/fixture/DeleteApplicationVpcConfiguration.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationVpcConfiguration.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/DeleteApplicationVpcConfigurationResponse.proto b/fixture/DeleteApplicationVpcConfigurationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApplicationVpcConfigurationResponse.proto
diff --git a/fixture/DescribeApplication.yaml b/fixture/DescribeApplication.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeApplication.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/DescribeApplicationResponse.proto b/fixture/DescribeApplicationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeApplicationResponse.proto
diff --git a/fixture/DescribeApplicationSnapshot.yaml b/fixture/DescribeApplicationSnapshot.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeApplicationSnapshot.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/DescribeApplicationSnapshotResponse.proto b/fixture/DescribeApplicationSnapshotResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeApplicationSnapshotResponse.proto
diff --git a/fixture/DescribeApplicationVersion.yaml b/fixture/DescribeApplicationVersion.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeApplicationVersion.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/DescribeApplicationVersionResponse.proto b/fixture/DescribeApplicationVersionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeApplicationVersionResponse.proto
diff --git a/fixture/DiscoverInputSchema.yaml b/fixture/DiscoverInputSchema.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DiscoverInputSchema.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/DiscoverInputSchemaResponse.proto b/fixture/DiscoverInputSchemaResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DiscoverInputSchemaResponse.proto
diff --git a/fixture/ListApplicationSnapshots.yaml b/fixture/ListApplicationSnapshots.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListApplicationSnapshots.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/ListApplicationSnapshotsResponse.proto b/fixture/ListApplicationSnapshotsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListApplicationSnapshotsResponse.proto
diff --git a/fixture/ListApplicationVersions.yaml b/fixture/ListApplicationVersions.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListApplicationVersions.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/ListApplicationVersionsResponse.proto b/fixture/ListApplicationVersionsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListApplicationVersionsResponse.proto
diff --git a/fixture/ListApplications.yaml b/fixture/ListApplications.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListApplications.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/ListApplicationsResponse.proto b/fixture/ListApplicationsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListApplicationsResponse.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/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/RollbackApplication.yaml b/fixture/RollbackApplication.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RollbackApplication.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/RollbackApplicationResponse.proto b/fixture/RollbackApplicationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RollbackApplicationResponse.proto
diff --git a/fixture/StartApplication.yaml b/fixture/StartApplication.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/StartApplication.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/StartApplicationResponse.proto b/fixture/StartApplicationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/StartApplicationResponse.proto
diff --git a/fixture/StopApplication.yaml b/fixture/StopApplication.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/StopApplication.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/StopApplicationResponse.proto b/fixture/StopApplicationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/StopApplicationResponse.proto
diff --git a/fixture/TagResource.yaml b/fixture/TagResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/TagResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/TagResourceResponse.proto b/fixture/TagResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/TagResourceResponse.proto
diff --git a/fixture/UntagResource.yaml b/fixture/UntagResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UntagResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/UntagResourceResponse.proto b/fixture/UntagResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UntagResourceResponse.proto
diff --git a/fixture/UpdateApplication.yaml b/fixture/UpdateApplication.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateApplication.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/UpdateApplicationMaintenanceConfiguration.yaml b/fixture/UpdateApplicationMaintenanceConfiguration.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateApplicationMaintenanceConfiguration.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kinesisanalytics/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  kinesisanalytics.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/UpdateApplicationMaintenanceConfigurationResponse.proto b/fixture/UpdateApplicationMaintenanceConfigurationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateApplicationMaintenanceConfigurationResponse.proto
diff --git a/fixture/UpdateApplicationResponse.proto b/fixture/UpdateApplicationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateApplicationResponse.proto
diff --git a/gen/Amazonka/KinesisAnalyticsV2.hs b/gen/Amazonka/KinesisAnalyticsV2.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2.hs
@@ -0,0 +1,836 @@
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2
+-- 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 @2018-05-23@ of the AWS service descriptions, licensed under Apache 2.0.
+--
+-- Amazon Kinesis Data Analytics is a fully managed service that you can
+-- use to process and analyze streaming data using Java, SQL, or Scala. The
+-- service enables you to quickly author and run Java, SQL, or Scala code
+-- against streaming sources to perform time series analytics, feed
+-- real-time dashboards, and create real-time metrics.
+module Amazonka.KinesisAnalyticsV2
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    -- $errors
+
+    -- ** CodeValidationException
+    _CodeValidationException,
+
+    -- ** ConcurrentModificationException
+    _ConcurrentModificationException,
+
+    -- ** InvalidApplicationConfigurationException
+    _InvalidApplicationConfigurationException,
+
+    -- ** InvalidArgumentException
+    _InvalidArgumentException,
+
+    -- ** InvalidRequestException
+    _InvalidRequestException,
+
+    -- ** LimitExceededException
+    _LimitExceededException,
+
+    -- ** ResourceInUseException
+    _ResourceInUseException,
+
+    -- ** ResourceNotFoundException
+    _ResourceNotFoundException,
+
+    -- ** ResourceProvisionedThroughputExceededException
+    _ResourceProvisionedThroughputExceededException,
+
+    -- ** ServiceUnavailableException
+    _ServiceUnavailableException,
+
+    -- ** TooManyTagsException
+    _TooManyTagsException,
+
+    -- ** UnableToDetectSchemaException
+    _UnableToDetectSchemaException,
+
+    -- ** UnsupportedOperationException
+    _UnsupportedOperationException,
+
+    -- * Waiters
+    -- $waiters
+
+    -- * Operations
+    -- $operations
+
+    -- ** AddApplicationCloudWatchLoggingOption
+    AddApplicationCloudWatchLoggingOption (AddApplicationCloudWatchLoggingOption'),
+    newAddApplicationCloudWatchLoggingOption,
+    AddApplicationCloudWatchLoggingOptionResponse (AddApplicationCloudWatchLoggingOptionResponse'),
+    newAddApplicationCloudWatchLoggingOptionResponse,
+
+    -- ** AddApplicationInput
+    AddApplicationInput (AddApplicationInput'),
+    newAddApplicationInput,
+    AddApplicationInputResponse (AddApplicationInputResponse'),
+    newAddApplicationInputResponse,
+
+    -- ** AddApplicationInputProcessingConfiguration
+    AddApplicationInputProcessingConfiguration (AddApplicationInputProcessingConfiguration'),
+    newAddApplicationInputProcessingConfiguration,
+    AddApplicationInputProcessingConfigurationResponse (AddApplicationInputProcessingConfigurationResponse'),
+    newAddApplicationInputProcessingConfigurationResponse,
+
+    -- ** AddApplicationOutput
+    AddApplicationOutput (AddApplicationOutput'),
+    newAddApplicationOutput,
+    AddApplicationOutputResponse (AddApplicationOutputResponse'),
+    newAddApplicationOutputResponse,
+
+    -- ** AddApplicationReferenceDataSource
+    AddApplicationReferenceDataSource (AddApplicationReferenceDataSource'),
+    newAddApplicationReferenceDataSource,
+    AddApplicationReferenceDataSourceResponse (AddApplicationReferenceDataSourceResponse'),
+    newAddApplicationReferenceDataSourceResponse,
+
+    -- ** AddApplicationVpcConfiguration
+    AddApplicationVpcConfiguration (AddApplicationVpcConfiguration'),
+    newAddApplicationVpcConfiguration,
+    AddApplicationVpcConfigurationResponse (AddApplicationVpcConfigurationResponse'),
+    newAddApplicationVpcConfigurationResponse,
+
+    -- ** CreateApplication
+    CreateApplication (CreateApplication'),
+    newCreateApplication,
+    CreateApplicationResponse (CreateApplicationResponse'),
+    newCreateApplicationResponse,
+
+    -- ** CreateApplicationPresignedUrl
+    CreateApplicationPresignedUrl (CreateApplicationPresignedUrl'),
+    newCreateApplicationPresignedUrl,
+    CreateApplicationPresignedUrlResponse (CreateApplicationPresignedUrlResponse'),
+    newCreateApplicationPresignedUrlResponse,
+
+    -- ** CreateApplicationSnapshot
+    CreateApplicationSnapshot (CreateApplicationSnapshot'),
+    newCreateApplicationSnapshot,
+    CreateApplicationSnapshotResponse (CreateApplicationSnapshotResponse'),
+    newCreateApplicationSnapshotResponse,
+
+    -- ** DeleteApplication
+    DeleteApplication (DeleteApplication'),
+    newDeleteApplication,
+    DeleteApplicationResponse (DeleteApplicationResponse'),
+    newDeleteApplicationResponse,
+
+    -- ** DeleteApplicationCloudWatchLoggingOption
+    DeleteApplicationCloudWatchLoggingOption (DeleteApplicationCloudWatchLoggingOption'),
+    newDeleteApplicationCloudWatchLoggingOption,
+    DeleteApplicationCloudWatchLoggingOptionResponse (DeleteApplicationCloudWatchLoggingOptionResponse'),
+    newDeleteApplicationCloudWatchLoggingOptionResponse,
+
+    -- ** DeleteApplicationInputProcessingConfiguration
+    DeleteApplicationInputProcessingConfiguration (DeleteApplicationInputProcessingConfiguration'),
+    newDeleteApplicationInputProcessingConfiguration,
+    DeleteApplicationInputProcessingConfigurationResponse (DeleteApplicationInputProcessingConfigurationResponse'),
+    newDeleteApplicationInputProcessingConfigurationResponse,
+
+    -- ** DeleteApplicationOutput
+    DeleteApplicationOutput (DeleteApplicationOutput'),
+    newDeleteApplicationOutput,
+    DeleteApplicationOutputResponse (DeleteApplicationOutputResponse'),
+    newDeleteApplicationOutputResponse,
+
+    -- ** DeleteApplicationReferenceDataSource
+    DeleteApplicationReferenceDataSource (DeleteApplicationReferenceDataSource'),
+    newDeleteApplicationReferenceDataSource,
+    DeleteApplicationReferenceDataSourceResponse (DeleteApplicationReferenceDataSourceResponse'),
+    newDeleteApplicationReferenceDataSourceResponse,
+
+    -- ** DeleteApplicationSnapshot
+    DeleteApplicationSnapshot (DeleteApplicationSnapshot'),
+    newDeleteApplicationSnapshot,
+    DeleteApplicationSnapshotResponse (DeleteApplicationSnapshotResponse'),
+    newDeleteApplicationSnapshotResponse,
+
+    -- ** DeleteApplicationVpcConfiguration
+    DeleteApplicationVpcConfiguration (DeleteApplicationVpcConfiguration'),
+    newDeleteApplicationVpcConfiguration,
+    DeleteApplicationVpcConfigurationResponse (DeleteApplicationVpcConfigurationResponse'),
+    newDeleteApplicationVpcConfigurationResponse,
+
+    -- ** DescribeApplication
+    DescribeApplication (DescribeApplication'),
+    newDescribeApplication,
+    DescribeApplicationResponse (DescribeApplicationResponse'),
+    newDescribeApplicationResponse,
+
+    -- ** DescribeApplicationSnapshot
+    DescribeApplicationSnapshot (DescribeApplicationSnapshot'),
+    newDescribeApplicationSnapshot,
+    DescribeApplicationSnapshotResponse (DescribeApplicationSnapshotResponse'),
+    newDescribeApplicationSnapshotResponse,
+
+    -- ** DescribeApplicationVersion
+    DescribeApplicationVersion (DescribeApplicationVersion'),
+    newDescribeApplicationVersion,
+    DescribeApplicationVersionResponse (DescribeApplicationVersionResponse'),
+    newDescribeApplicationVersionResponse,
+
+    -- ** DiscoverInputSchema
+    DiscoverInputSchema (DiscoverInputSchema'),
+    newDiscoverInputSchema,
+    DiscoverInputSchemaResponse (DiscoverInputSchemaResponse'),
+    newDiscoverInputSchemaResponse,
+
+    -- ** ListApplicationSnapshots (Paginated)
+    ListApplicationSnapshots (ListApplicationSnapshots'),
+    newListApplicationSnapshots,
+    ListApplicationSnapshotsResponse (ListApplicationSnapshotsResponse'),
+    newListApplicationSnapshotsResponse,
+
+    -- ** ListApplicationVersions
+    ListApplicationVersions (ListApplicationVersions'),
+    newListApplicationVersions,
+    ListApplicationVersionsResponse (ListApplicationVersionsResponse'),
+    newListApplicationVersionsResponse,
+
+    -- ** ListApplications (Paginated)
+    ListApplications (ListApplications'),
+    newListApplications,
+    ListApplicationsResponse (ListApplicationsResponse'),
+    newListApplicationsResponse,
+
+    -- ** ListTagsForResource
+    ListTagsForResource (ListTagsForResource'),
+    newListTagsForResource,
+    ListTagsForResourceResponse (ListTagsForResourceResponse'),
+    newListTagsForResourceResponse,
+
+    -- ** RollbackApplication
+    RollbackApplication (RollbackApplication'),
+    newRollbackApplication,
+    RollbackApplicationResponse (RollbackApplicationResponse'),
+    newRollbackApplicationResponse,
+
+    -- ** StartApplication
+    StartApplication (StartApplication'),
+    newStartApplication,
+    StartApplicationResponse (StartApplicationResponse'),
+    newStartApplicationResponse,
+
+    -- ** StopApplication
+    StopApplication (StopApplication'),
+    newStopApplication,
+    StopApplicationResponse (StopApplicationResponse'),
+    newStopApplicationResponse,
+
+    -- ** TagResource
+    TagResource (TagResource'),
+    newTagResource,
+    TagResourceResponse (TagResourceResponse'),
+    newTagResourceResponse,
+
+    -- ** UntagResource
+    UntagResource (UntagResource'),
+    newUntagResource,
+    UntagResourceResponse (UntagResourceResponse'),
+    newUntagResourceResponse,
+
+    -- ** UpdateApplication
+    UpdateApplication (UpdateApplication'),
+    newUpdateApplication,
+    UpdateApplicationResponse (UpdateApplicationResponse'),
+    newUpdateApplicationResponse,
+
+    -- ** UpdateApplicationMaintenanceConfiguration
+    UpdateApplicationMaintenanceConfiguration (UpdateApplicationMaintenanceConfiguration'),
+    newUpdateApplicationMaintenanceConfiguration,
+    UpdateApplicationMaintenanceConfigurationResponse (UpdateApplicationMaintenanceConfigurationResponse'),
+    newUpdateApplicationMaintenanceConfigurationResponse,
+
+    -- * Types
+
+    -- ** ApplicationMode
+    ApplicationMode (..),
+
+    -- ** ApplicationRestoreType
+    ApplicationRestoreType (..),
+
+    -- ** ApplicationStatus
+    ApplicationStatus (..),
+
+    -- ** ArtifactType
+    ArtifactType (..),
+
+    -- ** CodeContentType
+    CodeContentType (..),
+
+    -- ** ConfigurationType
+    ConfigurationType (..),
+
+    -- ** InputStartingPosition
+    InputStartingPosition (..),
+
+    -- ** LogLevel
+    LogLevel (..),
+
+    -- ** MetricsLevel
+    MetricsLevel (..),
+
+    -- ** RecordFormatType
+    RecordFormatType (..),
+
+    -- ** RuntimeEnvironment
+    RuntimeEnvironment (..),
+
+    -- ** SnapshotStatus
+    SnapshotStatus (..),
+
+    -- ** UrlType
+    UrlType (..),
+
+    -- ** ApplicationCodeConfiguration
+    ApplicationCodeConfiguration (ApplicationCodeConfiguration'),
+    newApplicationCodeConfiguration,
+
+    -- ** ApplicationCodeConfigurationDescription
+    ApplicationCodeConfigurationDescription (ApplicationCodeConfigurationDescription'),
+    newApplicationCodeConfigurationDescription,
+
+    -- ** ApplicationCodeConfigurationUpdate
+    ApplicationCodeConfigurationUpdate (ApplicationCodeConfigurationUpdate'),
+    newApplicationCodeConfigurationUpdate,
+
+    -- ** ApplicationConfiguration
+    ApplicationConfiguration (ApplicationConfiguration'),
+    newApplicationConfiguration,
+
+    -- ** ApplicationConfigurationDescription
+    ApplicationConfigurationDescription (ApplicationConfigurationDescription'),
+    newApplicationConfigurationDescription,
+
+    -- ** ApplicationConfigurationUpdate
+    ApplicationConfigurationUpdate (ApplicationConfigurationUpdate'),
+    newApplicationConfigurationUpdate,
+
+    -- ** ApplicationDetail
+    ApplicationDetail (ApplicationDetail'),
+    newApplicationDetail,
+
+    -- ** ApplicationMaintenanceConfigurationDescription
+    ApplicationMaintenanceConfigurationDescription (ApplicationMaintenanceConfigurationDescription'),
+    newApplicationMaintenanceConfigurationDescription,
+
+    -- ** ApplicationMaintenanceConfigurationUpdate
+    ApplicationMaintenanceConfigurationUpdate (ApplicationMaintenanceConfigurationUpdate'),
+    newApplicationMaintenanceConfigurationUpdate,
+
+    -- ** ApplicationRestoreConfiguration
+    ApplicationRestoreConfiguration (ApplicationRestoreConfiguration'),
+    newApplicationRestoreConfiguration,
+
+    -- ** ApplicationSnapshotConfiguration
+    ApplicationSnapshotConfiguration (ApplicationSnapshotConfiguration'),
+    newApplicationSnapshotConfiguration,
+
+    -- ** ApplicationSnapshotConfigurationDescription
+    ApplicationSnapshotConfigurationDescription (ApplicationSnapshotConfigurationDescription'),
+    newApplicationSnapshotConfigurationDescription,
+
+    -- ** ApplicationSnapshotConfigurationUpdate
+    ApplicationSnapshotConfigurationUpdate (ApplicationSnapshotConfigurationUpdate'),
+    newApplicationSnapshotConfigurationUpdate,
+
+    -- ** ApplicationSummary
+    ApplicationSummary (ApplicationSummary'),
+    newApplicationSummary,
+
+    -- ** ApplicationVersionSummary
+    ApplicationVersionSummary (ApplicationVersionSummary'),
+    newApplicationVersionSummary,
+
+    -- ** CSVMappingParameters
+    CSVMappingParameters (CSVMappingParameters'),
+    newCSVMappingParameters,
+
+    -- ** CatalogConfiguration
+    CatalogConfiguration (CatalogConfiguration'),
+    newCatalogConfiguration,
+
+    -- ** CatalogConfigurationDescription
+    CatalogConfigurationDescription (CatalogConfigurationDescription'),
+    newCatalogConfigurationDescription,
+
+    -- ** CatalogConfigurationUpdate
+    CatalogConfigurationUpdate (CatalogConfigurationUpdate'),
+    newCatalogConfigurationUpdate,
+
+    -- ** CheckpointConfiguration
+    CheckpointConfiguration (CheckpointConfiguration'),
+    newCheckpointConfiguration,
+
+    -- ** CheckpointConfigurationDescription
+    CheckpointConfigurationDescription (CheckpointConfigurationDescription'),
+    newCheckpointConfigurationDescription,
+
+    -- ** CheckpointConfigurationUpdate
+    CheckpointConfigurationUpdate (CheckpointConfigurationUpdate'),
+    newCheckpointConfigurationUpdate,
+
+    -- ** CloudWatchLoggingOption
+    CloudWatchLoggingOption (CloudWatchLoggingOption'),
+    newCloudWatchLoggingOption,
+
+    -- ** CloudWatchLoggingOptionDescription
+    CloudWatchLoggingOptionDescription (CloudWatchLoggingOptionDescription'),
+    newCloudWatchLoggingOptionDescription,
+
+    -- ** CloudWatchLoggingOptionUpdate
+    CloudWatchLoggingOptionUpdate (CloudWatchLoggingOptionUpdate'),
+    newCloudWatchLoggingOptionUpdate,
+
+    -- ** CodeContent
+    CodeContent (CodeContent'),
+    newCodeContent,
+
+    -- ** CodeContentDescription
+    CodeContentDescription (CodeContentDescription'),
+    newCodeContentDescription,
+
+    -- ** CodeContentUpdate
+    CodeContentUpdate (CodeContentUpdate'),
+    newCodeContentUpdate,
+
+    -- ** CustomArtifactConfiguration
+    CustomArtifactConfiguration (CustomArtifactConfiguration'),
+    newCustomArtifactConfiguration,
+
+    -- ** CustomArtifactConfigurationDescription
+    CustomArtifactConfigurationDescription (CustomArtifactConfigurationDescription'),
+    newCustomArtifactConfigurationDescription,
+
+    -- ** DeployAsApplicationConfiguration
+    DeployAsApplicationConfiguration (DeployAsApplicationConfiguration'),
+    newDeployAsApplicationConfiguration,
+
+    -- ** DeployAsApplicationConfigurationDescription
+    DeployAsApplicationConfigurationDescription (DeployAsApplicationConfigurationDescription'),
+    newDeployAsApplicationConfigurationDescription,
+
+    -- ** DeployAsApplicationConfigurationUpdate
+    DeployAsApplicationConfigurationUpdate (DeployAsApplicationConfigurationUpdate'),
+    newDeployAsApplicationConfigurationUpdate,
+
+    -- ** DestinationSchema
+    DestinationSchema (DestinationSchema'),
+    newDestinationSchema,
+
+    -- ** EnvironmentProperties
+    EnvironmentProperties (EnvironmentProperties'),
+    newEnvironmentProperties,
+
+    -- ** EnvironmentPropertyDescriptions
+    EnvironmentPropertyDescriptions (EnvironmentPropertyDescriptions'),
+    newEnvironmentPropertyDescriptions,
+
+    -- ** EnvironmentPropertyUpdates
+    EnvironmentPropertyUpdates (EnvironmentPropertyUpdates'),
+    newEnvironmentPropertyUpdates,
+
+    -- ** FlinkApplicationConfiguration
+    FlinkApplicationConfiguration (FlinkApplicationConfiguration'),
+    newFlinkApplicationConfiguration,
+
+    -- ** FlinkApplicationConfigurationDescription
+    FlinkApplicationConfigurationDescription (FlinkApplicationConfigurationDescription'),
+    newFlinkApplicationConfigurationDescription,
+
+    -- ** FlinkApplicationConfigurationUpdate
+    FlinkApplicationConfigurationUpdate (FlinkApplicationConfigurationUpdate'),
+    newFlinkApplicationConfigurationUpdate,
+
+    -- ** FlinkRunConfiguration
+    FlinkRunConfiguration (FlinkRunConfiguration'),
+    newFlinkRunConfiguration,
+
+    -- ** GlueDataCatalogConfiguration
+    GlueDataCatalogConfiguration (GlueDataCatalogConfiguration'),
+    newGlueDataCatalogConfiguration,
+
+    -- ** GlueDataCatalogConfigurationDescription
+    GlueDataCatalogConfigurationDescription (GlueDataCatalogConfigurationDescription'),
+    newGlueDataCatalogConfigurationDescription,
+
+    -- ** GlueDataCatalogConfigurationUpdate
+    GlueDataCatalogConfigurationUpdate (GlueDataCatalogConfigurationUpdate'),
+    newGlueDataCatalogConfigurationUpdate,
+
+    -- ** Input
+    Input (Input'),
+    newInput,
+
+    -- ** InputDescription
+    InputDescription (InputDescription'),
+    newInputDescription,
+
+    -- ** InputLambdaProcessor
+    InputLambdaProcessor (InputLambdaProcessor'),
+    newInputLambdaProcessor,
+
+    -- ** InputLambdaProcessorDescription
+    InputLambdaProcessorDescription (InputLambdaProcessorDescription'),
+    newInputLambdaProcessorDescription,
+
+    -- ** InputLambdaProcessorUpdate
+    InputLambdaProcessorUpdate (InputLambdaProcessorUpdate'),
+    newInputLambdaProcessorUpdate,
+
+    -- ** InputParallelism
+    InputParallelism (InputParallelism'),
+    newInputParallelism,
+
+    -- ** InputParallelismUpdate
+    InputParallelismUpdate (InputParallelismUpdate'),
+    newInputParallelismUpdate,
+
+    -- ** InputProcessingConfiguration
+    InputProcessingConfiguration (InputProcessingConfiguration'),
+    newInputProcessingConfiguration,
+
+    -- ** InputProcessingConfigurationDescription
+    InputProcessingConfigurationDescription (InputProcessingConfigurationDescription'),
+    newInputProcessingConfigurationDescription,
+
+    -- ** InputProcessingConfigurationUpdate
+    InputProcessingConfigurationUpdate (InputProcessingConfigurationUpdate'),
+    newInputProcessingConfigurationUpdate,
+
+    -- ** InputSchemaUpdate
+    InputSchemaUpdate (InputSchemaUpdate'),
+    newInputSchemaUpdate,
+
+    -- ** InputStartingPositionConfiguration
+    InputStartingPositionConfiguration (InputStartingPositionConfiguration'),
+    newInputStartingPositionConfiguration,
+
+    -- ** InputUpdate
+    InputUpdate (InputUpdate'),
+    newInputUpdate,
+
+    -- ** JSONMappingParameters
+    JSONMappingParameters (JSONMappingParameters'),
+    newJSONMappingParameters,
+
+    -- ** KinesisFirehoseInput
+    KinesisFirehoseInput (KinesisFirehoseInput'),
+    newKinesisFirehoseInput,
+
+    -- ** KinesisFirehoseInputDescription
+    KinesisFirehoseInputDescription (KinesisFirehoseInputDescription'),
+    newKinesisFirehoseInputDescription,
+
+    -- ** KinesisFirehoseInputUpdate
+    KinesisFirehoseInputUpdate (KinesisFirehoseInputUpdate'),
+    newKinesisFirehoseInputUpdate,
+
+    -- ** KinesisFirehoseOutput
+    KinesisFirehoseOutput (KinesisFirehoseOutput'),
+    newKinesisFirehoseOutput,
+
+    -- ** KinesisFirehoseOutputDescription
+    KinesisFirehoseOutputDescription (KinesisFirehoseOutputDescription'),
+    newKinesisFirehoseOutputDescription,
+
+    -- ** KinesisFirehoseOutputUpdate
+    KinesisFirehoseOutputUpdate (KinesisFirehoseOutputUpdate'),
+    newKinesisFirehoseOutputUpdate,
+
+    -- ** KinesisStreamsInput
+    KinesisStreamsInput (KinesisStreamsInput'),
+    newKinesisStreamsInput,
+
+    -- ** KinesisStreamsInputDescription
+    KinesisStreamsInputDescription (KinesisStreamsInputDescription'),
+    newKinesisStreamsInputDescription,
+
+    -- ** KinesisStreamsInputUpdate
+    KinesisStreamsInputUpdate (KinesisStreamsInputUpdate'),
+    newKinesisStreamsInputUpdate,
+
+    -- ** KinesisStreamsOutput
+    KinesisStreamsOutput (KinesisStreamsOutput'),
+    newKinesisStreamsOutput,
+
+    -- ** KinesisStreamsOutputDescription
+    KinesisStreamsOutputDescription (KinesisStreamsOutputDescription'),
+    newKinesisStreamsOutputDescription,
+
+    -- ** KinesisStreamsOutputUpdate
+    KinesisStreamsOutputUpdate (KinesisStreamsOutputUpdate'),
+    newKinesisStreamsOutputUpdate,
+
+    -- ** LambdaOutput
+    LambdaOutput (LambdaOutput'),
+    newLambdaOutput,
+
+    -- ** LambdaOutputDescription
+    LambdaOutputDescription (LambdaOutputDescription'),
+    newLambdaOutputDescription,
+
+    -- ** LambdaOutputUpdate
+    LambdaOutputUpdate (LambdaOutputUpdate'),
+    newLambdaOutputUpdate,
+
+    -- ** MappingParameters
+    MappingParameters (MappingParameters'),
+    newMappingParameters,
+
+    -- ** MavenReference
+    MavenReference (MavenReference'),
+    newMavenReference,
+
+    -- ** MonitoringConfiguration
+    MonitoringConfiguration (MonitoringConfiguration'),
+    newMonitoringConfiguration,
+
+    -- ** MonitoringConfigurationDescription
+    MonitoringConfigurationDescription (MonitoringConfigurationDescription'),
+    newMonitoringConfigurationDescription,
+
+    -- ** MonitoringConfigurationUpdate
+    MonitoringConfigurationUpdate (MonitoringConfigurationUpdate'),
+    newMonitoringConfigurationUpdate,
+
+    -- ** Output
+    Output (Output'),
+    newOutput,
+
+    -- ** OutputDescription
+    OutputDescription (OutputDescription'),
+    newOutputDescription,
+
+    -- ** OutputUpdate
+    OutputUpdate (OutputUpdate'),
+    newOutputUpdate,
+
+    -- ** ParallelismConfiguration
+    ParallelismConfiguration (ParallelismConfiguration'),
+    newParallelismConfiguration,
+
+    -- ** ParallelismConfigurationDescription
+    ParallelismConfigurationDescription (ParallelismConfigurationDescription'),
+    newParallelismConfigurationDescription,
+
+    -- ** ParallelismConfigurationUpdate
+    ParallelismConfigurationUpdate (ParallelismConfigurationUpdate'),
+    newParallelismConfigurationUpdate,
+
+    -- ** PropertyGroup
+    PropertyGroup (PropertyGroup'),
+    newPropertyGroup,
+
+    -- ** RecordColumn
+    RecordColumn (RecordColumn'),
+    newRecordColumn,
+
+    -- ** RecordFormat
+    RecordFormat (RecordFormat'),
+    newRecordFormat,
+
+    -- ** ReferenceDataSource
+    ReferenceDataSource (ReferenceDataSource'),
+    newReferenceDataSource,
+
+    -- ** ReferenceDataSourceDescription
+    ReferenceDataSourceDescription (ReferenceDataSourceDescription'),
+    newReferenceDataSourceDescription,
+
+    -- ** ReferenceDataSourceUpdate
+    ReferenceDataSourceUpdate (ReferenceDataSourceUpdate'),
+    newReferenceDataSourceUpdate,
+
+    -- ** RunConfiguration
+    RunConfiguration (RunConfiguration'),
+    newRunConfiguration,
+
+    -- ** RunConfigurationDescription
+    RunConfigurationDescription (RunConfigurationDescription'),
+    newRunConfigurationDescription,
+
+    -- ** RunConfigurationUpdate
+    RunConfigurationUpdate (RunConfigurationUpdate'),
+    newRunConfigurationUpdate,
+
+    -- ** S3ApplicationCodeLocationDescription
+    S3ApplicationCodeLocationDescription (S3ApplicationCodeLocationDescription'),
+    newS3ApplicationCodeLocationDescription,
+
+    -- ** S3Configuration
+    S3Configuration (S3Configuration'),
+    newS3Configuration,
+
+    -- ** S3ContentBaseLocation
+    S3ContentBaseLocation (S3ContentBaseLocation'),
+    newS3ContentBaseLocation,
+
+    -- ** S3ContentBaseLocationDescription
+    S3ContentBaseLocationDescription (S3ContentBaseLocationDescription'),
+    newS3ContentBaseLocationDescription,
+
+    -- ** S3ContentBaseLocationUpdate
+    S3ContentBaseLocationUpdate (S3ContentBaseLocationUpdate'),
+    newS3ContentBaseLocationUpdate,
+
+    -- ** S3ContentLocation
+    S3ContentLocation (S3ContentLocation'),
+    newS3ContentLocation,
+
+    -- ** S3ContentLocationUpdate
+    S3ContentLocationUpdate (S3ContentLocationUpdate'),
+    newS3ContentLocationUpdate,
+
+    -- ** S3ReferenceDataSource
+    S3ReferenceDataSource (S3ReferenceDataSource'),
+    newS3ReferenceDataSource,
+
+    -- ** S3ReferenceDataSourceDescription
+    S3ReferenceDataSourceDescription (S3ReferenceDataSourceDescription'),
+    newS3ReferenceDataSourceDescription,
+
+    -- ** S3ReferenceDataSourceUpdate
+    S3ReferenceDataSourceUpdate (S3ReferenceDataSourceUpdate'),
+    newS3ReferenceDataSourceUpdate,
+
+    -- ** SnapshotDetails
+    SnapshotDetails (SnapshotDetails'),
+    newSnapshotDetails,
+
+    -- ** SourceSchema
+    SourceSchema (SourceSchema'),
+    newSourceSchema,
+
+    -- ** SqlApplicationConfiguration
+    SqlApplicationConfiguration (SqlApplicationConfiguration'),
+    newSqlApplicationConfiguration,
+
+    -- ** SqlApplicationConfigurationDescription
+    SqlApplicationConfigurationDescription (SqlApplicationConfigurationDescription'),
+    newSqlApplicationConfigurationDescription,
+
+    -- ** SqlApplicationConfigurationUpdate
+    SqlApplicationConfigurationUpdate (SqlApplicationConfigurationUpdate'),
+    newSqlApplicationConfigurationUpdate,
+
+    -- ** SqlRunConfiguration
+    SqlRunConfiguration (SqlRunConfiguration'),
+    newSqlRunConfiguration,
+
+    -- ** Tag
+    Tag (Tag'),
+    newTag,
+
+    -- ** VpcConfiguration
+    VpcConfiguration (VpcConfiguration'),
+    newVpcConfiguration,
+
+    -- ** VpcConfigurationDescription
+    VpcConfigurationDescription (VpcConfigurationDescription'),
+    newVpcConfigurationDescription,
+
+    -- ** VpcConfigurationUpdate
+    VpcConfigurationUpdate (VpcConfigurationUpdate'),
+    newVpcConfigurationUpdate,
+
+    -- ** ZeppelinApplicationConfiguration
+    ZeppelinApplicationConfiguration (ZeppelinApplicationConfiguration'),
+    newZeppelinApplicationConfiguration,
+
+    -- ** ZeppelinApplicationConfigurationDescription
+    ZeppelinApplicationConfigurationDescription (ZeppelinApplicationConfigurationDescription'),
+    newZeppelinApplicationConfigurationDescription,
+
+    -- ** ZeppelinApplicationConfigurationUpdate
+    ZeppelinApplicationConfigurationUpdate (ZeppelinApplicationConfigurationUpdate'),
+    newZeppelinApplicationConfigurationUpdate,
+
+    -- ** ZeppelinMonitoringConfiguration
+    ZeppelinMonitoringConfiguration (ZeppelinMonitoringConfiguration'),
+    newZeppelinMonitoringConfiguration,
+
+    -- ** ZeppelinMonitoringConfigurationDescription
+    ZeppelinMonitoringConfigurationDescription (ZeppelinMonitoringConfigurationDescription'),
+    newZeppelinMonitoringConfigurationDescription,
+
+    -- ** ZeppelinMonitoringConfigurationUpdate
+    ZeppelinMonitoringConfigurationUpdate (ZeppelinMonitoringConfigurationUpdate'),
+    newZeppelinMonitoringConfigurationUpdate,
+  )
+where
+
+import Amazonka.KinesisAnalyticsV2.AddApplicationCloudWatchLoggingOption
+import Amazonka.KinesisAnalyticsV2.AddApplicationInput
+import Amazonka.KinesisAnalyticsV2.AddApplicationInputProcessingConfiguration
+import Amazonka.KinesisAnalyticsV2.AddApplicationOutput
+import Amazonka.KinesisAnalyticsV2.AddApplicationReferenceDataSource
+import Amazonka.KinesisAnalyticsV2.AddApplicationVpcConfiguration
+import Amazonka.KinesisAnalyticsV2.CreateApplication
+import Amazonka.KinesisAnalyticsV2.CreateApplicationPresignedUrl
+import Amazonka.KinesisAnalyticsV2.CreateApplicationSnapshot
+import Amazonka.KinesisAnalyticsV2.DeleteApplication
+import Amazonka.KinesisAnalyticsV2.DeleteApplicationCloudWatchLoggingOption
+import Amazonka.KinesisAnalyticsV2.DeleteApplicationInputProcessingConfiguration
+import Amazonka.KinesisAnalyticsV2.DeleteApplicationOutput
+import Amazonka.KinesisAnalyticsV2.DeleteApplicationReferenceDataSource
+import Amazonka.KinesisAnalyticsV2.DeleteApplicationSnapshot
+import Amazonka.KinesisAnalyticsV2.DeleteApplicationVpcConfiguration
+import Amazonka.KinesisAnalyticsV2.DescribeApplication
+import Amazonka.KinesisAnalyticsV2.DescribeApplicationSnapshot
+import Amazonka.KinesisAnalyticsV2.DescribeApplicationVersion
+import Amazonka.KinesisAnalyticsV2.DiscoverInputSchema
+import Amazonka.KinesisAnalyticsV2.Lens
+import Amazonka.KinesisAnalyticsV2.ListApplicationSnapshots
+import Amazonka.KinesisAnalyticsV2.ListApplicationVersions
+import Amazonka.KinesisAnalyticsV2.ListApplications
+import Amazonka.KinesisAnalyticsV2.ListTagsForResource
+import Amazonka.KinesisAnalyticsV2.RollbackApplication
+import Amazonka.KinesisAnalyticsV2.StartApplication
+import Amazonka.KinesisAnalyticsV2.StopApplication
+import Amazonka.KinesisAnalyticsV2.TagResource
+import Amazonka.KinesisAnalyticsV2.Types
+import Amazonka.KinesisAnalyticsV2.UntagResource
+import Amazonka.KinesisAnalyticsV2.UpdateApplication
+import Amazonka.KinesisAnalyticsV2.UpdateApplicationMaintenanceConfiguration
+import Amazonka.KinesisAnalyticsV2.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 'KinesisAnalyticsV2'.
+
+-- $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/KinesisAnalyticsV2/AddApplicationCloudWatchLoggingOption.hs b/gen/Amazonka/KinesisAnalyticsV2/AddApplicationCloudWatchLoggingOption.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/AddApplicationCloudWatchLoggingOption.hs
@@ -0,0 +1,320 @@
+{-# 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.KinesisAnalyticsV2.AddApplicationCloudWatchLoggingOption
+-- 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 Amazon CloudWatch log stream to monitor application
+-- configuration errors.
+module Amazonka.KinesisAnalyticsV2.AddApplicationCloudWatchLoggingOption
+  ( -- * Creating a Request
+    AddApplicationCloudWatchLoggingOption (..),
+    newAddApplicationCloudWatchLoggingOption,
+
+    -- * Request Lenses
+    addApplicationCloudWatchLoggingOption_conditionalToken,
+    addApplicationCloudWatchLoggingOption_currentApplicationVersionId,
+    addApplicationCloudWatchLoggingOption_applicationName,
+    addApplicationCloudWatchLoggingOption_cloudWatchLoggingOption,
+
+    -- * Destructuring the Response
+    AddApplicationCloudWatchLoggingOptionResponse (..),
+    newAddApplicationCloudWatchLoggingOptionResponse,
+
+    -- * Response Lenses
+    addApplicationCloudWatchLoggingOptionResponse_applicationARN,
+    addApplicationCloudWatchLoggingOptionResponse_applicationVersionId,
+    addApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions,
+    addApplicationCloudWatchLoggingOptionResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newAddApplicationCloudWatchLoggingOption' smart constructor.
+data AddApplicationCloudWatchLoggingOption = AddApplicationCloudWatchLoggingOption'
+  { -- | A value you use to implement strong concurrency for application updates.
+    -- You must provide the @CurrentApplicationVersionId@ or the
+    -- @ConditionalToken@. You get the application\'s current
+    -- @ConditionalToken@ using DescribeApplication. For better concurrency
+    -- support, use the @ConditionalToken@ parameter instead of
+    -- @CurrentApplicationVersionId@.
+    conditionalToken :: Prelude.Maybe Prelude.Text,
+    -- | The version ID of the Kinesis Data Analytics application. You must
+    -- provide the @CurrentApplicationVersionId@ or the @ConditionalToken@.You
+    -- can retrieve the application version ID using DescribeApplication. For
+    -- better concurrency support, use the @ConditionalToken@ parameter instead
+    -- of @CurrentApplicationVersionId@.
+    currentApplicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | The Kinesis Data Analytics application name.
+    applicationName :: Prelude.Text,
+    -- | Provides the Amazon CloudWatch log stream Amazon Resource Name (ARN).
+    cloudWatchLoggingOption :: CloudWatchLoggingOption
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddApplicationCloudWatchLoggingOption' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'conditionalToken', 'addApplicationCloudWatchLoggingOption_conditionalToken' - A value you use to implement strong concurrency for application updates.
+-- You must provide the @CurrentApplicationVersionId@ or the
+-- @ConditionalToken@. You get the application\'s current
+-- @ConditionalToken@ using DescribeApplication. For better concurrency
+-- support, use the @ConditionalToken@ parameter instead of
+-- @CurrentApplicationVersionId@.
+--
+-- 'currentApplicationVersionId', 'addApplicationCloudWatchLoggingOption_currentApplicationVersionId' - The version ID of the Kinesis Data Analytics application. You must
+-- provide the @CurrentApplicationVersionId@ or the @ConditionalToken@.You
+-- can retrieve the application version ID using DescribeApplication. For
+-- better concurrency support, use the @ConditionalToken@ parameter instead
+-- of @CurrentApplicationVersionId@.
+--
+-- 'applicationName', 'addApplicationCloudWatchLoggingOption_applicationName' - The Kinesis Data Analytics application name.
+--
+-- 'cloudWatchLoggingOption', 'addApplicationCloudWatchLoggingOption_cloudWatchLoggingOption' - Provides the Amazon CloudWatch log stream Amazon Resource Name (ARN).
+newAddApplicationCloudWatchLoggingOption ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'cloudWatchLoggingOption'
+  CloudWatchLoggingOption ->
+  AddApplicationCloudWatchLoggingOption
+newAddApplicationCloudWatchLoggingOption
+  pApplicationName_
+  pCloudWatchLoggingOption_ =
+    AddApplicationCloudWatchLoggingOption'
+      { conditionalToken =
+          Prelude.Nothing,
+        currentApplicationVersionId =
+          Prelude.Nothing,
+        applicationName = pApplicationName_,
+        cloudWatchLoggingOption =
+          pCloudWatchLoggingOption_
+      }
+
+-- | A value you use to implement strong concurrency for application updates.
+-- You must provide the @CurrentApplicationVersionId@ or the
+-- @ConditionalToken@. You get the application\'s current
+-- @ConditionalToken@ using DescribeApplication. For better concurrency
+-- support, use the @ConditionalToken@ parameter instead of
+-- @CurrentApplicationVersionId@.
+addApplicationCloudWatchLoggingOption_conditionalToken :: Lens.Lens' AddApplicationCloudWatchLoggingOption (Prelude.Maybe Prelude.Text)
+addApplicationCloudWatchLoggingOption_conditionalToken = Lens.lens (\AddApplicationCloudWatchLoggingOption' {conditionalToken} -> conditionalToken) (\s@AddApplicationCloudWatchLoggingOption' {} a -> s {conditionalToken = a} :: AddApplicationCloudWatchLoggingOption)
+
+-- | The version ID of the Kinesis Data Analytics application. You must
+-- provide the @CurrentApplicationVersionId@ or the @ConditionalToken@.You
+-- can retrieve the application version ID using DescribeApplication. For
+-- better concurrency support, use the @ConditionalToken@ parameter instead
+-- of @CurrentApplicationVersionId@.
+addApplicationCloudWatchLoggingOption_currentApplicationVersionId :: Lens.Lens' AddApplicationCloudWatchLoggingOption (Prelude.Maybe Prelude.Natural)
+addApplicationCloudWatchLoggingOption_currentApplicationVersionId = Lens.lens (\AddApplicationCloudWatchLoggingOption' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@AddApplicationCloudWatchLoggingOption' {} a -> s {currentApplicationVersionId = a} :: AddApplicationCloudWatchLoggingOption)
+
+-- | The Kinesis Data Analytics application name.
+addApplicationCloudWatchLoggingOption_applicationName :: Lens.Lens' AddApplicationCloudWatchLoggingOption Prelude.Text
+addApplicationCloudWatchLoggingOption_applicationName = Lens.lens (\AddApplicationCloudWatchLoggingOption' {applicationName} -> applicationName) (\s@AddApplicationCloudWatchLoggingOption' {} a -> s {applicationName = a} :: AddApplicationCloudWatchLoggingOption)
+
+-- | Provides the Amazon CloudWatch log stream Amazon Resource Name (ARN).
+addApplicationCloudWatchLoggingOption_cloudWatchLoggingOption :: Lens.Lens' AddApplicationCloudWatchLoggingOption CloudWatchLoggingOption
+addApplicationCloudWatchLoggingOption_cloudWatchLoggingOption = Lens.lens (\AddApplicationCloudWatchLoggingOption' {cloudWatchLoggingOption} -> cloudWatchLoggingOption) (\s@AddApplicationCloudWatchLoggingOption' {} a -> s {cloudWatchLoggingOption = a} :: AddApplicationCloudWatchLoggingOption)
+
+instance
+  Core.AWSRequest
+    AddApplicationCloudWatchLoggingOption
+  where
+  type
+    AWSResponse
+      AddApplicationCloudWatchLoggingOption =
+      AddApplicationCloudWatchLoggingOptionResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          AddApplicationCloudWatchLoggingOptionResponse'
+            Prelude.<$> (x Data..?> "ApplicationARN")
+            Prelude.<*> (x Data..?> "ApplicationVersionId")
+            Prelude.<*> ( x
+                            Data..?> "CloudWatchLoggingOptionDescriptions"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    AddApplicationCloudWatchLoggingOption
+  where
+  hashWithSalt
+    _salt
+    AddApplicationCloudWatchLoggingOption' {..} =
+      _salt
+        `Prelude.hashWithSalt` conditionalToken
+        `Prelude.hashWithSalt` currentApplicationVersionId
+        `Prelude.hashWithSalt` applicationName
+        `Prelude.hashWithSalt` cloudWatchLoggingOption
+
+instance
+  Prelude.NFData
+    AddApplicationCloudWatchLoggingOption
+  where
+  rnf AddApplicationCloudWatchLoggingOption' {..} =
+    Prelude.rnf conditionalToken
+      `Prelude.seq` Prelude.rnf currentApplicationVersionId
+      `Prelude.seq` Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf cloudWatchLoggingOption
+
+instance
+  Data.ToHeaders
+    AddApplicationCloudWatchLoggingOption
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.AddApplicationCloudWatchLoggingOption" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    AddApplicationCloudWatchLoggingOption
+  where
+  toJSON AddApplicationCloudWatchLoggingOption' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ConditionalToken" Data..=)
+              Prelude.<$> conditionalToken,
+            ("CurrentApplicationVersionId" Data..=)
+              Prelude.<$> currentApplicationVersionId,
+            Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ( "CloudWatchLoggingOption"
+                  Data..= cloudWatchLoggingOption
+              )
+          ]
+      )
+
+instance
+  Data.ToPath
+    AddApplicationCloudWatchLoggingOption
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    AddApplicationCloudWatchLoggingOption
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newAddApplicationCloudWatchLoggingOptionResponse' smart constructor.
+data AddApplicationCloudWatchLoggingOptionResponse = AddApplicationCloudWatchLoggingOptionResponse'
+  { -- | The application\'s ARN.
+    applicationARN :: Prelude.Maybe Prelude.Text,
+    -- | The new version ID of the Kinesis Data Analytics application. Kinesis
+    -- Data Analytics updates the @ApplicationVersionId@ each time you change
+    -- the CloudWatch logging options.
+    applicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | The descriptions of the current CloudWatch logging options for the
+    -- Kinesis Data Analytics application.
+    cloudWatchLoggingOptionDescriptions :: Prelude.Maybe [CloudWatchLoggingOptionDescription],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddApplicationCloudWatchLoggingOptionResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationARN', 'addApplicationCloudWatchLoggingOptionResponse_applicationARN' - The application\'s ARN.
+--
+-- 'applicationVersionId', 'addApplicationCloudWatchLoggingOptionResponse_applicationVersionId' - The new version ID of the Kinesis Data Analytics application. Kinesis
+-- Data Analytics updates the @ApplicationVersionId@ each time you change
+-- the CloudWatch logging options.
+--
+-- 'cloudWatchLoggingOptionDescriptions', 'addApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions' - The descriptions of the current CloudWatch logging options for the
+-- Kinesis Data Analytics application.
+--
+-- 'httpStatus', 'addApplicationCloudWatchLoggingOptionResponse_httpStatus' - The response's http status code.
+newAddApplicationCloudWatchLoggingOptionResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  AddApplicationCloudWatchLoggingOptionResponse
+newAddApplicationCloudWatchLoggingOptionResponse
+  pHttpStatus_ =
+    AddApplicationCloudWatchLoggingOptionResponse'
+      { applicationARN =
+          Prelude.Nothing,
+        applicationVersionId =
+          Prelude.Nothing,
+        cloudWatchLoggingOptionDescriptions =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The application\'s ARN.
+addApplicationCloudWatchLoggingOptionResponse_applicationARN :: Lens.Lens' AddApplicationCloudWatchLoggingOptionResponse (Prelude.Maybe Prelude.Text)
+addApplicationCloudWatchLoggingOptionResponse_applicationARN = Lens.lens (\AddApplicationCloudWatchLoggingOptionResponse' {applicationARN} -> applicationARN) (\s@AddApplicationCloudWatchLoggingOptionResponse' {} a -> s {applicationARN = a} :: AddApplicationCloudWatchLoggingOptionResponse)
+
+-- | The new version ID of the Kinesis Data Analytics application. Kinesis
+-- Data Analytics updates the @ApplicationVersionId@ each time you change
+-- the CloudWatch logging options.
+addApplicationCloudWatchLoggingOptionResponse_applicationVersionId :: Lens.Lens' AddApplicationCloudWatchLoggingOptionResponse (Prelude.Maybe Prelude.Natural)
+addApplicationCloudWatchLoggingOptionResponse_applicationVersionId = Lens.lens (\AddApplicationCloudWatchLoggingOptionResponse' {applicationVersionId} -> applicationVersionId) (\s@AddApplicationCloudWatchLoggingOptionResponse' {} a -> s {applicationVersionId = a} :: AddApplicationCloudWatchLoggingOptionResponse)
+
+-- | The descriptions of the current CloudWatch logging options for the
+-- Kinesis Data Analytics application.
+addApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions :: Lens.Lens' AddApplicationCloudWatchLoggingOptionResponse (Prelude.Maybe [CloudWatchLoggingOptionDescription])
+addApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions = Lens.lens (\AddApplicationCloudWatchLoggingOptionResponse' {cloudWatchLoggingOptionDescriptions} -> cloudWatchLoggingOptionDescriptions) (\s@AddApplicationCloudWatchLoggingOptionResponse' {} a -> s {cloudWatchLoggingOptionDescriptions = a} :: AddApplicationCloudWatchLoggingOptionResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+addApplicationCloudWatchLoggingOptionResponse_httpStatus :: Lens.Lens' AddApplicationCloudWatchLoggingOptionResponse Prelude.Int
+addApplicationCloudWatchLoggingOptionResponse_httpStatus = Lens.lens (\AddApplicationCloudWatchLoggingOptionResponse' {httpStatus} -> httpStatus) (\s@AddApplicationCloudWatchLoggingOptionResponse' {} a -> s {httpStatus = a} :: AddApplicationCloudWatchLoggingOptionResponse)
+
+instance
+  Prelude.NFData
+    AddApplicationCloudWatchLoggingOptionResponse
+  where
+  rnf
+    AddApplicationCloudWatchLoggingOptionResponse' {..} =
+      Prelude.rnf applicationARN
+        `Prelude.seq` Prelude.rnf applicationVersionId
+        `Prelude.seq` Prelude.rnf cloudWatchLoggingOptionDescriptions
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/AddApplicationInput.hs b/gen/Amazonka/KinesisAnalyticsV2/AddApplicationInput.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/AddApplicationInput.hs
@@ -0,0 +1,257 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.AddApplicationInput
+-- 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 streaming source to your SQL-based Kinesis Data Analytics
+-- application.
+--
+-- You can add a streaming source when you create an application, or you
+-- can use this operation to add a streaming source after you create an
+-- application. For more information, see CreateApplication.
+--
+-- Any configuration update, including adding a streaming source using this
+-- operation, results in a new version of the application. You can use the
+-- DescribeApplication operation to find the current application version.
+module Amazonka.KinesisAnalyticsV2.AddApplicationInput
+  ( -- * Creating a Request
+    AddApplicationInput (..),
+    newAddApplicationInput,
+
+    -- * Request Lenses
+    addApplicationInput_applicationName,
+    addApplicationInput_currentApplicationVersionId,
+    addApplicationInput_input,
+
+    -- * Destructuring the Response
+    AddApplicationInputResponse (..),
+    newAddApplicationInputResponse,
+
+    -- * Response Lenses
+    addApplicationInputResponse_applicationARN,
+    addApplicationInputResponse_applicationVersionId,
+    addApplicationInputResponse_inputDescriptions,
+    addApplicationInputResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newAddApplicationInput' smart constructor.
+data AddApplicationInput = AddApplicationInput'
+  { -- | The name of your existing application to which you want to add the
+    -- streaming source.
+    applicationName :: Prelude.Text,
+    -- | The current version of your application. You must provide the
+    -- @ApplicationVersionID@ or the @ConditionalToken@.You can use the
+    -- DescribeApplication operation to find the current application version.
+    currentApplicationVersionId :: Prelude.Natural,
+    -- | The Input to add.
+    input :: Input
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddApplicationInput' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'addApplicationInput_applicationName' - The name of your existing application to which you want to add the
+-- streaming source.
+--
+-- 'currentApplicationVersionId', 'addApplicationInput_currentApplicationVersionId' - The current version of your application. You must provide the
+-- @ApplicationVersionID@ or the @ConditionalToken@.You can use the
+-- DescribeApplication operation to find the current application version.
+--
+-- 'input', 'addApplicationInput_input' - The Input to add.
+newAddApplicationInput ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'currentApplicationVersionId'
+  Prelude.Natural ->
+  -- | 'input'
+  Input ->
+  AddApplicationInput
+newAddApplicationInput
+  pApplicationName_
+  pCurrentApplicationVersionId_
+  pInput_ =
+    AddApplicationInput'
+      { applicationName =
+          pApplicationName_,
+        currentApplicationVersionId =
+          pCurrentApplicationVersionId_,
+        input = pInput_
+      }
+
+-- | The name of your existing application to which you want to add the
+-- streaming source.
+addApplicationInput_applicationName :: Lens.Lens' AddApplicationInput Prelude.Text
+addApplicationInput_applicationName = Lens.lens (\AddApplicationInput' {applicationName} -> applicationName) (\s@AddApplicationInput' {} a -> s {applicationName = a} :: AddApplicationInput)
+
+-- | The current version of your application. You must provide the
+-- @ApplicationVersionID@ or the @ConditionalToken@.You can use the
+-- DescribeApplication operation to find the current application version.
+addApplicationInput_currentApplicationVersionId :: Lens.Lens' AddApplicationInput Prelude.Natural
+addApplicationInput_currentApplicationVersionId = Lens.lens (\AddApplicationInput' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@AddApplicationInput' {} a -> s {currentApplicationVersionId = a} :: AddApplicationInput)
+
+-- | The Input to add.
+addApplicationInput_input :: Lens.Lens' AddApplicationInput Input
+addApplicationInput_input = Lens.lens (\AddApplicationInput' {input} -> input) (\s@AddApplicationInput' {} a -> s {input = a} :: AddApplicationInput)
+
+instance Core.AWSRequest AddApplicationInput where
+  type
+    AWSResponse AddApplicationInput =
+      AddApplicationInputResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          AddApplicationInputResponse'
+            Prelude.<$> (x Data..?> "ApplicationARN")
+            Prelude.<*> (x Data..?> "ApplicationVersionId")
+            Prelude.<*> ( x
+                            Data..?> "InputDescriptions"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable AddApplicationInput where
+  hashWithSalt _salt AddApplicationInput' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` currentApplicationVersionId
+      `Prelude.hashWithSalt` input
+
+instance Prelude.NFData AddApplicationInput where
+  rnf AddApplicationInput' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf currentApplicationVersionId
+      `Prelude.seq` Prelude.rnf input
+
+instance Data.ToHeaders AddApplicationInput where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.AddApplicationInput" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON AddApplicationInput where
+  toJSON AddApplicationInput' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ( "CurrentApplicationVersionId"
+                  Data..= currentApplicationVersionId
+              ),
+            Prelude.Just ("Input" Data..= input)
+          ]
+      )
+
+instance Data.ToPath AddApplicationInput where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery AddApplicationInput where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newAddApplicationInputResponse' smart constructor.
+data AddApplicationInputResponse = AddApplicationInputResponse'
+  { -- | The Amazon Resource Name (ARN) of the application.
+    applicationARN :: Prelude.Maybe Prelude.Text,
+    -- | Provides the current application version.
+    applicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | Describes the application input configuration.
+    inputDescriptions :: Prelude.Maybe [InputDescription],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddApplicationInputResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationARN', 'addApplicationInputResponse_applicationARN' - The Amazon Resource Name (ARN) of the application.
+--
+-- 'applicationVersionId', 'addApplicationInputResponse_applicationVersionId' - Provides the current application version.
+--
+-- 'inputDescriptions', 'addApplicationInputResponse_inputDescriptions' - Describes the application input configuration.
+--
+-- 'httpStatus', 'addApplicationInputResponse_httpStatus' - The response's http status code.
+newAddApplicationInputResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  AddApplicationInputResponse
+newAddApplicationInputResponse pHttpStatus_ =
+  AddApplicationInputResponse'
+    { applicationARN =
+        Prelude.Nothing,
+      applicationVersionId = Prelude.Nothing,
+      inputDescriptions = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The Amazon Resource Name (ARN) of the application.
+addApplicationInputResponse_applicationARN :: Lens.Lens' AddApplicationInputResponse (Prelude.Maybe Prelude.Text)
+addApplicationInputResponse_applicationARN = Lens.lens (\AddApplicationInputResponse' {applicationARN} -> applicationARN) (\s@AddApplicationInputResponse' {} a -> s {applicationARN = a} :: AddApplicationInputResponse)
+
+-- | Provides the current application version.
+addApplicationInputResponse_applicationVersionId :: Lens.Lens' AddApplicationInputResponse (Prelude.Maybe Prelude.Natural)
+addApplicationInputResponse_applicationVersionId = Lens.lens (\AddApplicationInputResponse' {applicationVersionId} -> applicationVersionId) (\s@AddApplicationInputResponse' {} a -> s {applicationVersionId = a} :: AddApplicationInputResponse)
+
+-- | Describes the application input configuration.
+addApplicationInputResponse_inputDescriptions :: Lens.Lens' AddApplicationInputResponse (Prelude.Maybe [InputDescription])
+addApplicationInputResponse_inputDescriptions = Lens.lens (\AddApplicationInputResponse' {inputDescriptions} -> inputDescriptions) (\s@AddApplicationInputResponse' {} a -> s {inputDescriptions = a} :: AddApplicationInputResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+addApplicationInputResponse_httpStatus :: Lens.Lens' AddApplicationInputResponse Prelude.Int
+addApplicationInputResponse_httpStatus = Lens.lens (\AddApplicationInputResponse' {httpStatus} -> httpStatus) (\s@AddApplicationInputResponse' {} a -> s {httpStatus = a} :: AddApplicationInputResponse)
+
+instance Prelude.NFData AddApplicationInputResponse where
+  rnf AddApplicationInputResponse' {..} =
+    Prelude.rnf applicationARN
+      `Prelude.seq` Prelude.rnf applicationVersionId
+      `Prelude.seq` Prelude.rnf inputDescriptions
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/AddApplicationInputProcessingConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/AddApplicationInputProcessingConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/AddApplicationInputProcessingConfiguration.hs
@@ -0,0 +1,335 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.AddApplicationInputProcessingConfiguration
+-- 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 InputProcessingConfiguration to a SQL-based Kinesis Data
+-- Analytics application. An input processor pre-processes records on the
+-- input stream before the application\'s SQL code executes. Currently, the
+-- only input processor available is
+-- <https://docs.aws.amazon.com/lambda/ Amazon Lambda>.
+module Amazonka.KinesisAnalyticsV2.AddApplicationInputProcessingConfiguration
+  ( -- * Creating a Request
+    AddApplicationInputProcessingConfiguration (..),
+    newAddApplicationInputProcessingConfiguration,
+
+    -- * Request Lenses
+    addApplicationInputProcessingConfiguration_applicationName,
+    addApplicationInputProcessingConfiguration_currentApplicationVersionId,
+    addApplicationInputProcessingConfiguration_inputId,
+    addApplicationInputProcessingConfiguration_inputProcessingConfiguration,
+
+    -- * Destructuring the Response
+    AddApplicationInputProcessingConfigurationResponse (..),
+    newAddApplicationInputProcessingConfigurationResponse,
+
+    -- * Response Lenses
+    addApplicationInputProcessingConfigurationResponse_applicationARN,
+    addApplicationInputProcessingConfigurationResponse_applicationVersionId,
+    addApplicationInputProcessingConfigurationResponse_inputId,
+    addApplicationInputProcessingConfigurationResponse_inputProcessingConfigurationDescription,
+    addApplicationInputProcessingConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newAddApplicationInputProcessingConfiguration' smart constructor.
+data AddApplicationInputProcessingConfiguration = AddApplicationInputProcessingConfiguration'
+  { -- | The name of the application to which you want to add the input
+    -- processing configuration.
+    applicationName :: Prelude.Text,
+    -- | The version of the application to which you want to add the input
+    -- processing configuration. You can use the DescribeApplication operation
+    -- to get the current application version. If the version specified is not
+    -- the current version, the @ConcurrentModificationException@ is returned.
+    currentApplicationVersionId :: Prelude.Natural,
+    -- | The ID of the input configuration to add the input processing
+    -- configuration to. You can get a list of the input IDs for an application
+    -- using the DescribeApplication operation.
+    inputId :: Prelude.Text,
+    -- | The InputProcessingConfiguration to add to the application.
+    inputProcessingConfiguration :: InputProcessingConfiguration
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddApplicationInputProcessingConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'addApplicationInputProcessingConfiguration_applicationName' - The name of the application to which you want to add the input
+-- processing configuration.
+--
+-- 'currentApplicationVersionId', 'addApplicationInputProcessingConfiguration_currentApplicationVersionId' - The version of the application to which you want to add the input
+-- processing configuration. You can use the DescribeApplication operation
+-- to get the current application version. If the version specified is not
+-- the current version, the @ConcurrentModificationException@ is returned.
+--
+-- 'inputId', 'addApplicationInputProcessingConfiguration_inputId' - The ID of the input configuration to add the input processing
+-- configuration to. You can get a list of the input IDs for an application
+-- using the DescribeApplication operation.
+--
+-- 'inputProcessingConfiguration', 'addApplicationInputProcessingConfiguration_inputProcessingConfiguration' - The InputProcessingConfiguration to add to the application.
+newAddApplicationInputProcessingConfiguration ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'currentApplicationVersionId'
+  Prelude.Natural ->
+  -- | 'inputId'
+  Prelude.Text ->
+  -- | 'inputProcessingConfiguration'
+  InputProcessingConfiguration ->
+  AddApplicationInputProcessingConfiguration
+newAddApplicationInputProcessingConfiguration
+  pApplicationName_
+  pCurrentApplicationVersionId_
+  pInputId_
+  pInputProcessingConfiguration_ =
+    AddApplicationInputProcessingConfiguration'
+      { applicationName =
+          pApplicationName_,
+        currentApplicationVersionId =
+          pCurrentApplicationVersionId_,
+        inputId = pInputId_,
+        inputProcessingConfiguration =
+          pInputProcessingConfiguration_
+      }
+
+-- | The name of the application to which you want to add the input
+-- processing configuration.
+addApplicationInputProcessingConfiguration_applicationName :: Lens.Lens' AddApplicationInputProcessingConfiguration Prelude.Text
+addApplicationInputProcessingConfiguration_applicationName = Lens.lens (\AddApplicationInputProcessingConfiguration' {applicationName} -> applicationName) (\s@AddApplicationInputProcessingConfiguration' {} a -> s {applicationName = a} :: AddApplicationInputProcessingConfiguration)
+
+-- | The version of the application to which you want to add the input
+-- processing configuration. You can use the DescribeApplication operation
+-- to get the current application version. If the version specified is not
+-- the current version, the @ConcurrentModificationException@ is returned.
+addApplicationInputProcessingConfiguration_currentApplicationVersionId :: Lens.Lens' AddApplicationInputProcessingConfiguration Prelude.Natural
+addApplicationInputProcessingConfiguration_currentApplicationVersionId = Lens.lens (\AddApplicationInputProcessingConfiguration' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@AddApplicationInputProcessingConfiguration' {} a -> s {currentApplicationVersionId = a} :: AddApplicationInputProcessingConfiguration)
+
+-- | The ID of the input configuration to add the input processing
+-- configuration to. You can get a list of the input IDs for an application
+-- using the DescribeApplication operation.
+addApplicationInputProcessingConfiguration_inputId :: Lens.Lens' AddApplicationInputProcessingConfiguration Prelude.Text
+addApplicationInputProcessingConfiguration_inputId = Lens.lens (\AddApplicationInputProcessingConfiguration' {inputId} -> inputId) (\s@AddApplicationInputProcessingConfiguration' {} a -> s {inputId = a} :: AddApplicationInputProcessingConfiguration)
+
+-- | The InputProcessingConfiguration to add to the application.
+addApplicationInputProcessingConfiguration_inputProcessingConfiguration :: Lens.Lens' AddApplicationInputProcessingConfiguration InputProcessingConfiguration
+addApplicationInputProcessingConfiguration_inputProcessingConfiguration = Lens.lens (\AddApplicationInputProcessingConfiguration' {inputProcessingConfiguration} -> inputProcessingConfiguration) (\s@AddApplicationInputProcessingConfiguration' {} a -> s {inputProcessingConfiguration = a} :: AddApplicationInputProcessingConfiguration)
+
+instance
+  Core.AWSRequest
+    AddApplicationInputProcessingConfiguration
+  where
+  type
+    AWSResponse
+      AddApplicationInputProcessingConfiguration =
+      AddApplicationInputProcessingConfigurationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          AddApplicationInputProcessingConfigurationResponse'
+            Prelude.<$> (x Data..?> "ApplicationARN")
+            Prelude.<*> (x Data..?> "ApplicationVersionId")
+            Prelude.<*> (x Data..?> "InputId")
+            Prelude.<*> ( x
+                            Data..?> "InputProcessingConfigurationDescription"
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    AddApplicationInputProcessingConfiguration
+  where
+  hashWithSalt
+    _salt
+    AddApplicationInputProcessingConfiguration' {..} =
+      _salt
+        `Prelude.hashWithSalt` applicationName
+        `Prelude.hashWithSalt` currentApplicationVersionId
+        `Prelude.hashWithSalt` inputId
+        `Prelude.hashWithSalt` inputProcessingConfiguration
+
+instance
+  Prelude.NFData
+    AddApplicationInputProcessingConfiguration
+  where
+  rnf AddApplicationInputProcessingConfiguration' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf currentApplicationVersionId
+      `Prelude.seq` Prelude.rnf inputId
+      `Prelude.seq` Prelude.rnf inputProcessingConfiguration
+
+instance
+  Data.ToHeaders
+    AddApplicationInputProcessingConfiguration
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.AddApplicationInputProcessingConfiguration" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    AddApplicationInputProcessingConfiguration
+  where
+  toJSON
+    AddApplicationInputProcessingConfiguration' {..} =
+      Data.object
+        ( Prelude.catMaybes
+            [ Prelude.Just
+                ("ApplicationName" Data..= applicationName),
+              Prelude.Just
+                ( "CurrentApplicationVersionId"
+                    Data..= currentApplicationVersionId
+                ),
+              Prelude.Just ("InputId" Data..= inputId),
+              Prelude.Just
+                ( "InputProcessingConfiguration"
+                    Data..= inputProcessingConfiguration
+                )
+            ]
+        )
+
+instance
+  Data.ToPath
+    AddApplicationInputProcessingConfiguration
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    AddApplicationInputProcessingConfiguration
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newAddApplicationInputProcessingConfigurationResponse' smart constructor.
+data AddApplicationInputProcessingConfigurationResponse = AddApplicationInputProcessingConfigurationResponse'
+  { -- | The Amazon Resource Name (ARN) of the application.
+    applicationARN :: Prelude.Maybe Prelude.Text,
+    -- | Provides the current application version.
+    applicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | The input ID that is associated with the application input. This is the
+    -- ID that Kinesis Data Analytics assigns to each input configuration that
+    -- you add to your application.
+    inputId :: Prelude.Maybe Prelude.Text,
+    -- | The description of the preprocessor that executes on records in this
+    -- input before the application\'s code is run.
+    inputProcessingConfigurationDescription :: Prelude.Maybe InputProcessingConfigurationDescription,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddApplicationInputProcessingConfigurationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationARN', 'addApplicationInputProcessingConfigurationResponse_applicationARN' - The Amazon Resource Name (ARN) of the application.
+--
+-- 'applicationVersionId', 'addApplicationInputProcessingConfigurationResponse_applicationVersionId' - Provides the current application version.
+--
+-- 'inputId', 'addApplicationInputProcessingConfigurationResponse_inputId' - The input ID that is associated with the application input. This is the
+-- ID that Kinesis Data Analytics assigns to each input configuration that
+-- you add to your application.
+--
+-- 'inputProcessingConfigurationDescription', 'addApplicationInputProcessingConfigurationResponse_inputProcessingConfigurationDescription' - The description of the preprocessor that executes on records in this
+-- input before the application\'s code is run.
+--
+-- 'httpStatus', 'addApplicationInputProcessingConfigurationResponse_httpStatus' - The response's http status code.
+newAddApplicationInputProcessingConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  AddApplicationInputProcessingConfigurationResponse
+newAddApplicationInputProcessingConfigurationResponse
+  pHttpStatus_ =
+    AddApplicationInputProcessingConfigurationResponse'
+      { applicationARN =
+          Prelude.Nothing,
+        applicationVersionId =
+          Prelude.Nothing,
+        inputId =
+          Prelude.Nothing,
+        inputProcessingConfigurationDescription =
+          Prelude.Nothing,
+        httpStatus =
+          pHttpStatus_
+      }
+
+-- | The Amazon Resource Name (ARN) of the application.
+addApplicationInputProcessingConfigurationResponse_applicationARN :: Lens.Lens' AddApplicationInputProcessingConfigurationResponse (Prelude.Maybe Prelude.Text)
+addApplicationInputProcessingConfigurationResponse_applicationARN = Lens.lens (\AddApplicationInputProcessingConfigurationResponse' {applicationARN} -> applicationARN) (\s@AddApplicationInputProcessingConfigurationResponse' {} a -> s {applicationARN = a} :: AddApplicationInputProcessingConfigurationResponse)
+
+-- | Provides the current application version.
+addApplicationInputProcessingConfigurationResponse_applicationVersionId :: Lens.Lens' AddApplicationInputProcessingConfigurationResponse (Prelude.Maybe Prelude.Natural)
+addApplicationInputProcessingConfigurationResponse_applicationVersionId = Lens.lens (\AddApplicationInputProcessingConfigurationResponse' {applicationVersionId} -> applicationVersionId) (\s@AddApplicationInputProcessingConfigurationResponse' {} a -> s {applicationVersionId = a} :: AddApplicationInputProcessingConfigurationResponse)
+
+-- | The input ID that is associated with the application input. This is the
+-- ID that Kinesis Data Analytics assigns to each input configuration that
+-- you add to your application.
+addApplicationInputProcessingConfigurationResponse_inputId :: Lens.Lens' AddApplicationInputProcessingConfigurationResponse (Prelude.Maybe Prelude.Text)
+addApplicationInputProcessingConfigurationResponse_inputId = Lens.lens (\AddApplicationInputProcessingConfigurationResponse' {inputId} -> inputId) (\s@AddApplicationInputProcessingConfigurationResponse' {} a -> s {inputId = a} :: AddApplicationInputProcessingConfigurationResponse)
+
+-- | The description of the preprocessor that executes on records in this
+-- input before the application\'s code is run.
+addApplicationInputProcessingConfigurationResponse_inputProcessingConfigurationDescription :: Lens.Lens' AddApplicationInputProcessingConfigurationResponse (Prelude.Maybe InputProcessingConfigurationDescription)
+addApplicationInputProcessingConfigurationResponse_inputProcessingConfigurationDescription = Lens.lens (\AddApplicationInputProcessingConfigurationResponse' {inputProcessingConfigurationDescription} -> inputProcessingConfigurationDescription) (\s@AddApplicationInputProcessingConfigurationResponse' {} a -> s {inputProcessingConfigurationDescription = a} :: AddApplicationInputProcessingConfigurationResponse)
+
+-- | The response's http status code.
+addApplicationInputProcessingConfigurationResponse_httpStatus :: Lens.Lens' AddApplicationInputProcessingConfigurationResponse Prelude.Int
+addApplicationInputProcessingConfigurationResponse_httpStatus = Lens.lens (\AddApplicationInputProcessingConfigurationResponse' {httpStatus} -> httpStatus) (\s@AddApplicationInputProcessingConfigurationResponse' {} a -> s {httpStatus = a} :: AddApplicationInputProcessingConfigurationResponse)
+
+instance
+  Prelude.NFData
+    AddApplicationInputProcessingConfigurationResponse
+  where
+  rnf
+    AddApplicationInputProcessingConfigurationResponse' {..} =
+      Prelude.rnf applicationARN
+        `Prelude.seq` Prelude.rnf applicationVersionId
+        `Prelude.seq` Prelude.rnf inputId
+        `Prelude.seq` Prelude.rnf inputProcessingConfigurationDescription
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/AddApplicationOutput.hs b/gen/Amazonka/KinesisAnalyticsV2/AddApplicationOutput.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/AddApplicationOutput.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.KinesisAnalyticsV2.AddApplicationOutput
+-- 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 external destination to your SQL-based Kinesis Data Analytics
+-- application.
+--
+-- If you want Kinesis Data Analytics to deliver data from an
+-- in-application stream within your application to an external destination
+-- (such as an Kinesis data stream, a Kinesis Data Firehose delivery
+-- stream, or an Amazon Lambda function), you add the relevant
+-- configuration to your application using this operation. You can
+-- configure one or more outputs for your application. Each output
+-- configuration maps an in-application stream and an external destination.
+--
+-- You can use one of the output configurations to deliver data from your
+-- in-application error stream to an external destination so that you can
+-- analyze the errors.
+--
+-- Any configuration update, including adding a streaming source using this
+-- operation, results in a new version of the application. You can use the
+-- DescribeApplication operation to find the current application version.
+module Amazonka.KinesisAnalyticsV2.AddApplicationOutput
+  ( -- * Creating a Request
+    AddApplicationOutput (..),
+    newAddApplicationOutput,
+
+    -- * Request Lenses
+    addApplicationOutput_applicationName,
+    addApplicationOutput_currentApplicationVersionId,
+    addApplicationOutput_output,
+
+    -- * Destructuring the Response
+    AddApplicationOutputResponse (..),
+    newAddApplicationOutputResponse,
+
+    -- * Response Lenses
+    addApplicationOutputResponse_applicationARN,
+    addApplicationOutputResponse_applicationVersionId,
+    addApplicationOutputResponse_outputDescriptions,
+    addApplicationOutputResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newAddApplicationOutput' smart constructor.
+data AddApplicationOutput = AddApplicationOutput'
+  { -- | The name of the application to which you want to add the output
+    -- configuration.
+    applicationName :: Prelude.Text,
+    -- | The version of the application to which you want to add the output
+    -- configuration. You can use the DescribeApplication operation to get the
+    -- current application version. If the version specified is not the current
+    -- version, the @ConcurrentModificationException@ is returned.
+    currentApplicationVersionId :: Prelude.Natural,
+    -- | An array of objects, each describing one output configuration. In the
+    -- output configuration, you specify the name of an in-application stream,
+    -- a destination (that is, a Kinesis data stream, a Kinesis Data Firehose
+    -- delivery stream, or an Amazon Lambda function), and record the formation
+    -- to use when writing to the destination.
+    output :: Output
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddApplicationOutput' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'addApplicationOutput_applicationName' - The name of the application to which you want to add the output
+-- configuration.
+--
+-- 'currentApplicationVersionId', 'addApplicationOutput_currentApplicationVersionId' - The version of the application to which you want to add the output
+-- configuration. You can use the DescribeApplication operation to get the
+-- current application version. If the version specified is not the current
+-- version, the @ConcurrentModificationException@ is returned.
+--
+-- 'output', 'addApplicationOutput_output' - An array of objects, each describing one output configuration. In the
+-- output configuration, you specify the name of an in-application stream,
+-- a destination (that is, a Kinesis data stream, a Kinesis Data Firehose
+-- delivery stream, or an Amazon Lambda function), and record the formation
+-- to use when writing to the destination.
+newAddApplicationOutput ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'currentApplicationVersionId'
+  Prelude.Natural ->
+  -- | 'output'
+  Output ->
+  AddApplicationOutput
+newAddApplicationOutput
+  pApplicationName_
+  pCurrentApplicationVersionId_
+  pOutput_ =
+    AddApplicationOutput'
+      { applicationName =
+          pApplicationName_,
+        currentApplicationVersionId =
+          pCurrentApplicationVersionId_,
+        output = pOutput_
+      }
+
+-- | The name of the application to which you want to add the output
+-- configuration.
+addApplicationOutput_applicationName :: Lens.Lens' AddApplicationOutput Prelude.Text
+addApplicationOutput_applicationName = Lens.lens (\AddApplicationOutput' {applicationName} -> applicationName) (\s@AddApplicationOutput' {} a -> s {applicationName = a} :: AddApplicationOutput)
+
+-- | The version of the application to which you want to add the output
+-- configuration. You can use the DescribeApplication operation to get the
+-- current application version. If the version specified is not the current
+-- version, the @ConcurrentModificationException@ is returned.
+addApplicationOutput_currentApplicationVersionId :: Lens.Lens' AddApplicationOutput Prelude.Natural
+addApplicationOutput_currentApplicationVersionId = Lens.lens (\AddApplicationOutput' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@AddApplicationOutput' {} a -> s {currentApplicationVersionId = a} :: AddApplicationOutput)
+
+-- | An array of objects, each describing one output configuration. In the
+-- output configuration, you specify the name of an in-application stream,
+-- a destination (that is, a Kinesis data stream, a Kinesis Data Firehose
+-- delivery stream, or an Amazon Lambda function), and record the formation
+-- to use when writing to the destination.
+addApplicationOutput_output :: Lens.Lens' AddApplicationOutput Output
+addApplicationOutput_output = Lens.lens (\AddApplicationOutput' {output} -> output) (\s@AddApplicationOutput' {} a -> s {output = a} :: AddApplicationOutput)
+
+instance Core.AWSRequest AddApplicationOutput where
+  type
+    AWSResponse AddApplicationOutput =
+      AddApplicationOutputResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          AddApplicationOutputResponse'
+            Prelude.<$> (x Data..?> "ApplicationARN")
+            Prelude.<*> (x Data..?> "ApplicationVersionId")
+            Prelude.<*> ( x
+                            Data..?> "OutputDescriptions"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable AddApplicationOutput where
+  hashWithSalt _salt AddApplicationOutput' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` currentApplicationVersionId
+      `Prelude.hashWithSalt` output
+
+instance Prelude.NFData AddApplicationOutput where
+  rnf AddApplicationOutput' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf currentApplicationVersionId
+      `Prelude.seq` Prelude.rnf output
+
+instance Data.ToHeaders AddApplicationOutput where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.AddApplicationOutput" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON AddApplicationOutput where
+  toJSON AddApplicationOutput' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ( "CurrentApplicationVersionId"
+                  Data..= currentApplicationVersionId
+              ),
+            Prelude.Just ("Output" Data..= output)
+          ]
+      )
+
+instance Data.ToPath AddApplicationOutput where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery AddApplicationOutput where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newAddApplicationOutputResponse' smart constructor.
+data AddApplicationOutputResponse = AddApplicationOutputResponse'
+  { -- | The application Amazon Resource Name (ARN).
+    applicationARN :: Prelude.Maybe Prelude.Text,
+    -- | The updated application version ID. Kinesis Data Analytics increments
+    -- this ID when the application is updated.
+    applicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | Describes the application output configuration. For more information,
+    -- see
+    -- <https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html Configuring Application Output>.
+    outputDescriptions :: Prelude.Maybe [OutputDescription],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddApplicationOutputResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationARN', 'addApplicationOutputResponse_applicationARN' - The application Amazon Resource Name (ARN).
+--
+-- 'applicationVersionId', 'addApplicationOutputResponse_applicationVersionId' - The updated application version ID. Kinesis Data Analytics increments
+-- this ID when the application is updated.
+--
+-- 'outputDescriptions', 'addApplicationOutputResponse_outputDescriptions' - Describes the application output configuration. For more information,
+-- see
+-- <https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html Configuring Application Output>.
+--
+-- 'httpStatus', 'addApplicationOutputResponse_httpStatus' - The response's http status code.
+newAddApplicationOutputResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  AddApplicationOutputResponse
+newAddApplicationOutputResponse pHttpStatus_ =
+  AddApplicationOutputResponse'
+    { applicationARN =
+        Prelude.Nothing,
+      applicationVersionId = Prelude.Nothing,
+      outputDescriptions = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The application Amazon Resource Name (ARN).
+addApplicationOutputResponse_applicationARN :: Lens.Lens' AddApplicationOutputResponse (Prelude.Maybe Prelude.Text)
+addApplicationOutputResponse_applicationARN = Lens.lens (\AddApplicationOutputResponse' {applicationARN} -> applicationARN) (\s@AddApplicationOutputResponse' {} a -> s {applicationARN = a} :: AddApplicationOutputResponse)
+
+-- | The updated application version ID. Kinesis Data Analytics increments
+-- this ID when the application is updated.
+addApplicationOutputResponse_applicationVersionId :: Lens.Lens' AddApplicationOutputResponse (Prelude.Maybe Prelude.Natural)
+addApplicationOutputResponse_applicationVersionId = Lens.lens (\AddApplicationOutputResponse' {applicationVersionId} -> applicationVersionId) (\s@AddApplicationOutputResponse' {} a -> s {applicationVersionId = a} :: AddApplicationOutputResponse)
+
+-- | Describes the application output configuration. For more information,
+-- see
+-- <https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html Configuring Application Output>.
+addApplicationOutputResponse_outputDescriptions :: Lens.Lens' AddApplicationOutputResponse (Prelude.Maybe [OutputDescription])
+addApplicationOutputResponse_outputDescriptions = Lens.lens (\AddApplicationOutputResponse' {outputDescriptions} -> outputDescriptions) (\s@AddApplicationOutputResponse' {} a -> s {outputDescriptions = a} :: AddApplicationOutputResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+addApplicationOutputResponse_httpStatus :: Lens.Lens' AddApplicationOutputResponse Prelude.Int
+addApplicationOutputResponse_httpStatus = Lens.lens (\AddApplicationOutputResponse' {httpStatus} -> httpStatus) (\s@AddApplicationOutputResponse' {} a -> s {httpStatus = a} :: AddApplicationOutputResponse)
+
+instance Prelude.NFData AddApplicationOutputResponse where
+  rnf AddApplicationOutputResponse' {..} =
+    Prelude.rnf applicationARN
+      `Prelude.seq` Prelude.rnf applicationVersionId
+      `Prelude.seq` Prelude.rnf outputDescriptions
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/AddApplicationReferenceDataSource.hs b/gen/Amazonka/KinesisAnalyticsV2/AddApplicationReferenceDataSource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/AddApplicationReferenceDataSource.hs
@@ -0,0 +1,299 @@
+{-# 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.KinesisAnalyticsV2.AddApplicationReferenceDataSource
+-- 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 reference data source to an existing SQL-based Kinesis Data
+-- Analytics application.
+--
+-- Kinesis Data Analytics reads reference data (that is, an Amazon S3
+-- object) and creates an in-application table within your application. In
+-- the request, you provide the source (S3 bucket name and object key
+-- name), name of the in-application table to create, and the necessary
+-- mapping information that describes how data in an Amazon S3 object maps
+-- to columns in the resulting in-application table.
+module Amazonka.KinesisAnalyticsV2.AddApplicationReferenceDataSource
+  ( -- * Creating a Request
+    AddApplicationReferenceDataSource (..),
+    newAddApplicationReferenceDataSource,
+
+    -- * Request Lenses
+    addApplicationReferenceDataSource_applicationName,
+    addApplicationReferenceDataSource_currentApplicationVersionId,
+    addApplicationReferenceDataSource_referenceDataSource,
+
+    -- * Destructuring the Response
+    AddApplicationReferenceDataSourceResponse (..),
+    newAddApplicationReferenceDataSourceResponse,
+
+    -- * Response Lenses
+    addApplicationReferenceDataSourceResponse_applicationARN,
+    addApplicationReferenceDataSourceResponse_applicationVersionId,
+    addApplicationReferenceDataSourceResponse_referenceDataSourceDescriptions,
+    addApplicationReferenceDataSourceResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newAddApplicationReferenceDataSource' smart constructor.
+data AddApplicationReferenceDataSource = AddApplicationReferenceDataSource'
+  { -- | The name of an existing application.
+    applicationName :: Prelude.Text,
+    -- | The version of the application for which you are adding the reference
+    -- data source. You can use the DescribeApplication operation to get the
+    -- current application version. If the version specified is not the current
+    -- version, the @ConcurrentModificationException@ is returned.
+    currentApplicationVersionId :: Prelude.Natural,
+    -- | The reference data source can be an object in your Amazon S3 bucket.
+    -- Kinesis Data Analytics reads the object and copies the data into the
+    -- in-application table that is created. You provide an S3 bucket, object
+    -- key name, and the resulting in-application table that is created.
+    referenceDataSource :: ReferenceDataSource
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddApplicationReferenceDataSource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'addApplicationReferenceDataSource_applicationName' - The name of an existing application.
+--
+-- 'currentApplicationVersionId', 'addApplicationReferenceDataSource_currentApplicationVersionId' - The version of the application for which you are adding the reference
+-- data source. You can use the DescribeApplication operation to get the
+-- current application version. If the version specified is not the current
+-- version, the @ConcurrentModificationException@ is returned.
+--
+-- 'referenceDataSource', 'addApplicationReferenceDataSource_referenceDataSource' - The reference data source can be an object in your Amazon S3 bucket.
+-- Kinesis Data Analytics reads the object and copies the data into the
+-- in-application table that is created. You provide an S3 bucket, object
+-- key name, and the resulting in-application table that is created.
+newAddApplicationReferenceDataSource ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'currentApplicationVersionId'
+  Prelude.Natural ->
+  -- | 'referenceDataSource'
+  ReferenceDataSource ->
+  AddApplicationReferenceDataSource
+newAddApplicationReferenceDataSource
+  pApplicationName_
+  pCurrentApplicationVersionId_
+  pReferenceDataSource_ =
+    AddApplicationReferenceDataSource'
+      { applicationName =
+          pApplicationName_,
+        currentApplicationVersionId =
+          pCurrentApplicationVersionId_,
+        referenceDataSource =
+          pReferenceDataSource_
+      }
+
+-- | The name of an existing application.
+addApplicationReferenceDataSource_applicationName :: Lens.Lens' AddApplicationReferenceDataSource Prelude.Text
+addApplicationReferenceDataSource_applicationName = Lens.lens (\AddApplicationReferenceDataSource' {applicationName} -> applicationName) (\s@AddApplicationReferenceDataSource' {} a -> s {applicationName = a} :: AddApplicationReferenceDataSource)
+
+-- | The version of the application for which you are adding the reference
+-- data source. You can use the DescribeApplication operation to get the
+-- current application version. If the version specified is not the current
+-- version, the @ConcurrentModificationException@ is returned.
+addApplicationReferenceDataSource_currentApplicationVersionId :: Lens.Lens' AddApplicationReferenceDataSource Prelude.Natural
+addApplicationReferenceDataSource_currentApplicationVersionId = Lens.lens (\AddApplicationReferenceDataSource' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@AddApplicationReferenceDataSource' {} a -> s {currentApplicationVersionId = a} :: AddApplicationReferenceDataSource)
+
+-- | The reference data source can be an object in your Amazon S3 bucket.
+-- Kinesis Data Analytics reads the object and copies the data into the
+-- in-application table that is created. You provide an S3 bucket, object
+-- key name, and the resulting in-application table that is created.
+addApplicationReferenceDataSource_referenceDataSource :: Lens.Lens' AddApplicationReferenceDataSource ReferenceDataSource
+addApplicationReferenceDataSource_referenceDataSource = Lens.lens (\AddApplicationReferenceDataSource' {referenceDataSource} -> referenceDataSource) (\s@AddApplicationReferenceDataSource' {} a -> s {referenceDataSource = a} :: AddApplicationReferenceDataSource)
+
+instance
+  Core.AWSRequest
+    AddApplicationReferenceDataSource
+  where
+  type
+    AWSResponse AddApplicationReferenceDataSource =
+      AddApplicationReferenceDataSourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          AddApplicationReferenceDataSourceResponse'
+            Prelude.<$> (x Data..?> "ApplicationARN")
+            Prelude.<*> (x Data..?> "ApplicationVersionId")
+            Prelude.<*> ( x
+                            Data..?> "ReferenceDataSourceDescriptions"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    AddApplicationReferenceDataSource
+  where
+  hashWithSalt
+    _salt
+    AddApplicationReferenceDataSource' {..} =
+      _salt
+        `Prelude.hashWithSalt` applicationName
+        `Prelude.hashWithSalt` currentApplicationVersionId
+        `Prelude.hashWithSalt` referenceDataSource
+
+instance
+  Prelude.NFData
+    AddApplicationReferenceDataSource
+  where
+  rnf AddApplicationReferenceDataSource' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf currentApplicationVersionId
+      `Prelude.seq` Prelude.rnf referenceDataSource
+
+instance
+  Data.ToHeaders
+    AddApplicationReferenceDataSource
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.AddApplicationReferenceDataSource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    AddApplicationReferenceDataSource
+  where
+  toJSON AddApplicationReferenceDataSource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ( "CurrentApplicationVersionId"
+                  Data..= currentApplicationVersionId
+              ),
+            Prelude.Just
+              ("ReferenceDataSource" Data..= referenceDataSource)
+          ]
+      )
+
+instance
+  Data.ToPath
+    AddApplicationReferenceDataSource
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    AddApplicationReferenceDataSource
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newAddApplicationReferenceDataSourceResponse' smart constructor.
+data AddApplicationReferenceDataSourceResponse = AddApplicationReferenceDataSourceResponse'
+  { -- | The application Amazon Resource Name (ARN).
+    applicationARN :: Prelude.Maybe Prelude.Text,
+    -- | The updated application version ID. Kinesis Data Analytics increments
+    -- this ID when the application is updated.
+    applicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | Describes reference data sources configured for the application.
+    referenceDataSourceDescriptions :: Prelude.Maybe [ReferenceDataSourceDescription],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddApplicationReferenceDataSourceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationARN', 'addApplicationReferenceDataSourceResponse_applicationARN' - The application Amazon Resource Name (ARN).
+--
+-- 'applicationVersionId', 'addApplicationReferenceDataSourceResponse_applicationVersionId' - The updated application version ID. Kinesis Data Analytics increments
+-- this ID when the application is updated.
+--
+-- 'referenceDataSourceDescriptions', 'addApplicationReferenceDataSourceResponse_referenceDataSourceDescriptions' - Describes reference data sources configured for the application.
+--
+-- 'httpStatus', 'addApplicationReferenceDataSourceResponse_httpStatus' - The response's http status code.
+newAddApplicationReferenceDataSourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  AddApplicationReferenceDataSourceResponse
+newAddApplicationReferenceDataSourceResponse
+  pHttpStatus_ =
+    AddApplicationReferenceDataSourceResponse'
+      { applicationARN =
+          Prelude.Nothing,
+        applicationVersionId =
+          Prelude.Nothing,
+        referenceDataSourceDescriptions =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The application Amazon Resource Name (ARN).
+addApplicationReferenceDataSourceResponse_applicationARN :: Lens.Lens' AddApplicationReferenceDataSourceResponse (Prelude.Maybe Prelude.Text)
+addApplicationReferenceDataSourceResponse_applicationARN = Lens.lens (\AddApplicationReferenceDataSourceResponse' {applicationARN} -> applicationARN) (\s@AddApplicationReferenceDataSourceResponse' {} a -> s {applicationARN = a} :: AddApplicationReferenceDataSourceResponse)
+
+-- | The updated application version ID. Kinesis Data Analytics increments
+-- this ID when the application is updated.
+addApplicationReferenceDataSourceResponse_applicationVersionId :: Lens.Lens' AddApplicationReferenceDataSourceResponse (Prelude.Maybe Prelude.Natural)
+addApplicationReferenceDataSourceResponse_applicationVersionId = Lens.lens (\AddApplicationReferenceDataSourceResponse' {applicationVersionId} -> applicationVersionId) (\s@AddApplicationReferenceDataSourceResponse' {} a -> s {applicationVersionId = a} :: AddApplicationReferenceDataSourceResponse)
+
+-- | Describes reference data sources configured for the application.
+addApplicationReferenceDataSourceResponse_referenceDataSourceDescriptions :: Lens.Lens' AddApplicationReferenceDataSourceResponse (Prelude.Maybe [ReferenceDataSourceDescription])
+addApplicationReferenceDataSourceResponse_referenceDataSourceDescriptions = Lens.lens (\AddApplicationReferenceDataSourceResponse' {referenceDataSourceDescriptions} -> referenceDataSourceDescriptions) (\s@AddApplicationReferenceDataSourceResponse' {} a -> s {referenceDataSourceDescriptions = a} :: AddApplicationReferenceDataSourceResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+addApplicationReferenceDataSourceResponse_httpStatus :: Lens.Lens' AddApplicationReferenceDataSourceResponse Prelude.Int
+addApplicationReferenceDataSourceResponse_httpStatus = Lens.lens (\AddApplicationReferenceDataSourceResponse' {httpStatus} -> httpStatus) (\s@AddApplicationReferenceDataSourceResponse' {} a -> s {httpStatus = a} :: AddApplicationReferenceDataSourceResponse)
+
+instance
+  Prelude.NFData
+    AddApplicationReferenceDataSourceResponse
+  where
+  rnf AddApplicationReferenceDataSourceResponse' {..} =
+    Prelude.rnf applicationARN
+      `Prelude.seq` Prelude.rnf applicationVersionId
+      `Prelude.seq` Prelude.rnf referenceDataSourceDescriptions
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/AddApplicationVpcConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/AddApplicationVpcConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/AddApplicationVpcConfiguration.hs
@@ -0,0 +1,310 @@
+{-# 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.KinesisAnalyticsV2.AddApplicationVpcConfiguration
+-- 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 Virtual Private Cloud (VPC) configuration to the application.
+-- Applications can use VPCs to store and access resources securely.
+--
+-- Note the following about VPC configurations for Kinesis Data Analytics
+-- applications:
+--
+-- -   VPC configurations are not supported for SQL applications.
+--
+-- -   When a VPC is added to a Kinesis Data Analytics application, the
+--     application can no longer be accessed from the Internet directly. To
+--     enable Internet access to the application, add an Internet gateway
+--     to your VPC.
+module Amazonka.KinesisAnalyticsV2.AddApplicationVpcConfiguration
+  ( -- * Creating a Request
+    AddApplicationVpcConfiguration (..),
+    newAddApplicationVpcConfiguration,
+
+    -- * Request Lenses
+    addApplicationVpcConfiguration_conditionalToken,
+    addApplicationVpcConfiguration_currentApplicationVersionId,
+    addApplicationVpcConfiguration_applicationName,
+    addApplicationVpcConfiguration_vpcConfiguration,
+
+    -- * Destructuring the Response
+    AddApplicationVpcConfigurationResponse (..),
+    newAddApplicationVpcConfigurationResponse,
+
+    -- * Response Lenses
+    addApplicationVpcConfigurationResponse_applicationARN,
+    addApplicationVpcConfigurationResponse_applicationVersionId,
+    addApplicationVpcConfigurationResponse_vpcConfigurationDescription,
+    addApplicationVpcConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newAddApplicationVpcConfiguration' smart constructor.
+data AddApplicationVpcConfiguration = AddApplicationVpcConfiguration'
+  { -- | A value you use to implement strong concurrency for application updates.
+    -- You must provide the @ApplicationVersionID@ or the @ConditionalToken@.
+    -- You get the application\'s current @ConditionalToken@ using
+    -- DescribeApplication. For better concurrency support, use the
+    -- @ConditionalToken@ parameter instead of @CurrentApplicationVersionId@.
+    conditionalToken :: Prelude.Maybe Prelude.Text,
+    -- | The version of the application to which you want to add the VPC
+    -- configuration. You must provide the @CurrentApplicationVersionId@ or the
+    -- @ConditionalToken@. You can use the DescribeApplication operation to get
+    -- the current application version. If the version specified is not the
+    -- current version, the @ConcurrentModificationException@ is returned. For
+    -- better concurrency support, use the @ConditionalToken@ parameter instead
+    -- of @CurrentApplicationVersionId@.
+    currentApplicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | The name of an existing application.
+    applicationName :: Prelude.Text,
+    -- | Description of the VPC to add to the application.
+    vpcConfiguration :: VpcConfiguration
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddApplicationVpcConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'conditionalToken', 'addApplicationVpcConfiguration_conditionalToken' - A value you use to implement strong concurrency for application updates.
+-- You must provide the @ApplicationVersionID@ or the @ConditionalToken@.
+-- You get the application\'s current @ConditionalToken@ using
+-- DescribeApplication. For better concurrency support, use the
+-- @ConditionalToken@ parameter instead of @CurrentApplicationVersionId@.
+--
+-- 'currentApplicationVersionId', 'addApplicationVpcConfiguration_currentApplicationVersionId' - The version of the application to which you want to add the VPC
+-- configuration. You must provide the @CurrentApplicationVersionId@ or the
+-- @ConditionalToken@. You can use the DescribeApplication operation to get
+-- the current application version. If the version specified is not the
+-- current version, the @ConcurrentModificationException@ is returned. For
+-- better concurrency support, use the @ConditionalToken@ parameter instead
+-- of @CurrentApplicationVersionId@.
+--
+-- 'applicationName', 'addApplicationVpcConfiguration_applicationName' - The name of an existing application.
+--
+-- 'vpcConfiguration', 'addApplicationVpcConfiguration_vpcConfiguration' - Description of the VPC to add to the application.
+newAddApplicationVpcConfiguration ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'vpcConfiguration'
+  VpcConfiguration ->
+  AddApplicationVpcConfiguration
+newAddApplicationVpcConfiguration
+  pApplicationName_
+  pVpcConfiguration_ =
+    AddApplicationVpcConfiguration'
+      { conditionalToken =
+          Prelude.Nothing,
+        currentApplicationVersionId =
+          Prelude.Nothing,
+        applicationName = pApplicationName_,
+        vpcConfiguration = pVpcConfiguration_
+      }
+
+-- | A value you use to implement strong concurrency for application updates.
+-- You must provide the @ApplicationVersionID@ or the @ConditionalToken@.
+-- You get the application\'s current @ConditionalToken@ using
+-- DescribeApplication. For better concurrency support, use the
+-- @ConditionalToken@ parameter instead of @CurrentApplicationVersionId@.
+addApplicationVpcConfiguration_conditionalToken :: Lens.Lens' AddApplicationVpcConfiguration (Prelude.Maybe Prelude.Text)
+addApplicationVpcConfiguration_conditionalToken = Lens.lens (\AddApplicationVpcConfiguration' {conditionalToken} -> conditionalToken) (\s@AddApplicationVpcConfiguration' {} a -> s {conditionalToken = a} :: AddApplicationVpcConfiguration)
+
+-- | The version of the application to which you want to add the VPC
+-- configuration. You must provide the @CurrentApplicationVersionId@ or the
+-- @ConditionalToken@. You can use the DescribeApplication operation to get
+-- the current application version. If the version specified is not the
+-- current version, the @ConcurrentModificationException@ is returned. For
+-- better concurrency support, use the @ConditionalToken@ parameter instead
+-- of @CurrentApplicationVersionId@.
+addApplicationVpcConfiguration_currentApplicationVersionId :: Lens.Lens' AddApplicationVpcConfiguration (Prelude.Maybe Prelude.Natural)
+addApplicationVpcConfiguration_currentApplicationVersionId = Lens.lens (\AddApplicationVpcConfiguration' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@AddApplicationVpcConfiguration' {} a -> s {currentApplicationVersionId = a} :: AddApplicationVpcConfiguration)
+
+-- | The name of an existing application.
+addApplicationVpcConfiguration_applicationName :: Lens.Lens' AddApplicationVpcConfiguration Prelude.Text
+addApplicationVpcConfiguration_applicationName = Lens.lens (\AddApplicationVpcConfiguration' {applicationName} -> applicationName) (\s@AddApplicationVpcConfiguration' {} a -> s {applicationName = a} :: AddApplicationVpcConfiguration)
+
+-- | Description of the VPC to add to the application.
+addApplicationVpcConfiguration_vpcConfiguration :: Lens.Lens' AddApplicationVpcConfiguration VpcConfiguration
+addApplicationVpcConfiguration_vpcConfiguration = Lens.lens (\AddApplicationVpcConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@AddApplicationVpcConfiguration' {} a -> s {vpcConfiguration = a} :: AddApplicationVpcConfiguration)
+
+instance
+  Core.AWSRequest
+    AddApplicationVpcConfiguration
+  where
+  type
+    AWSResponse AddApplicationVpcConfiguration =
+      AddApplicationVpcConfigurationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          AddApplicationVpcConfigurationResponse'
+            Prelude.<$> (x Data..?> "ApplicationARN")
+            Prelude.<*> (x Data..?> "ApplicationVersionId")
+            Prelude.<*> (x Data..?> "VpcConfigurationDescription")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    AddApplicationVpcConfiguration
+  where
+  hashWithSalt
+    _salt
+    AddApplicationVpcConfiguration' {..} =
+      _salt
+        `Prelude.hashWithSalt` conditionalToken
+        `Prelude.hashWithSalt` currentApplicationVersionId
+        `Prelude.hashWithSalt` applicationName
+        `Prelude.hashWithSalt` vpcConfiguration
+
+instance
+  Prelude.NFData
+    AddApplicationVpcConfiguration
+  where
+  rnf AddApplicationVpcConfiguration' {..} =
+    Prelude.rnf conditionalToken
+      `Prelude.seq` Prelude.rnf currentApplicationVersionId
+      `Prelude.seq` Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf vpcConfiguration
+
+instance
+  Data.ToHeaders
+    AddApplicationVpcConfiguration
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.AddApplicationVpcConfiguration" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON AddApplicationVpcConfiguration where
+  toJSON AddApplicationVpcConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ConditionalToken" Data..=)
+              Prelude.<$> conditionalToken,
+            ("CurrentApplicationVersionId" Data..=)
+              Prelude.<$> currentApplicationVersionId,
+            Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ("VpcConfiguration" Data..= vpcConfiguration)
+          ]
+      )
+
+instance Data.ToPath AddApplicationVpcConfiguration where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery AddApplicationVpcConfiguration where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newAddApplicationVpcConfigurationResponse' smart constructor.
+data AddApplicationVpcConfigurationResponse = AddApplicationVpcConfigurationResponse'
+  { -- | The ARN of the application.
+    applicationARN :: Prelude.Maybe Prelude.Text,
+    -- | Provides the current application version. Kinesis Data Analytics updates
+    -- the ApplicationVersionId each time you update the application.
+    applicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | The parameters of the new VPC configuration.
+    vpcConfigurationDescription :: Prelude.Maybe VpcConfigurationDescription,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AddApplicationVpcConfigurationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationARN', 'addApplicationVpcConfigurationResponse_applicationARN' - The ARN of the application.
+--
+-- 'applicationVersionId', 'addApplicationVpcConfigurationResponse_applicationVersionId' - Provides the current application version. Kinesis Data Analytics updates
+-- the ApplicationVersionId each time you update the application.
+--
+-- 'vpcConfigurationDescription', 'addApplicationVpcConfigurationResponse_vpcConfigurationDescription' - The parameters of the new VPC configuration.
+--
+-- 'httpStatus', 'addApplicationVpcConfigurationResponse_httpStatus' - The response's http status code.
+newAddApplicationVpcConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  AddApplicationVpcConfigurationResponse
+newAddApplicationVpcConfigurationResponse
+  pHttpStatus_ =
+    AddApplicationVpcConfigurationResponse'
+      { applicationARN =
+          Prelude.Nothing,
+        applicationVersionId =
+          Prelude.Nothing,
+        vpcConfigurationDescription =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The ARN of the application.
+addApplicationVpcConfigurationResponse_applicationARN :: Lens.Lens' AddApplicationVpcConfigurationResponse (Prelude.Maybe Prelude.Text)
+addApplicationVpcConfigurationResponse_applicationARN = Lens.lens (\AddApplicationVpcConfigurationResponse' {applicationARN} -> applicationARN) (\s@AddApplicationVpcConfigurationResponse' {} a -> s {applicationARN = a} :: AddApplicationVpcConfigurationResponse)
+
+-- | Provides the current application version. Kinesis Data Analytics updates
+-- the ApplicationVersionId each time you update the application.
+addApplicationVpcConfigurationResponse_applicationVersionId :: Lens.Lens' AddApplicationVpcConfigurationResponse (Prelude.Maybe Prelude.Natural)
+addApplicationVpcConfigurationResponse_applicationVersionId = Lens.lens (\AddApplicationVpcConfigurationResponse' {applicationVersionId} -> applicationVersionId) (\s@AddApplicationVpcConfigurationResponse' {} a -> s {applicationVersionId = a} :: AddApplicationVpcConfigurationResponse)
+
+-- | The parameters of the new VPC configuration.
+addApplicationVpcConfigurationResponse_vpcConfigurationDescription :: Lens.Lens' AddApplicationVpcConfigurationResponse (Prelude.Maybe VpcConfigurationDescription)
+addApplicationVpcConfigurationResponse_vpcConfigurationDescription = Lens.lens (\AddApplicationVpcConfigurationResponse' {vpcConfigurationDescription} -> vpcConfigurationDescription) (\s@AddApplicationVpcConfigurationResponse' {} a -> s {vpcConfigurationDescription = a} :: AddApplicationVpcConfigurationResponse)
+
+-- | The response's http status code.
+addApplicationVpcConfigurationResponse_httpStatus :: Lens.Lens' AddApplicationVpcConfigurationResponse Prelude.Int
+addApplicationVpcConfigurationResponse_httpStatus = Lens.lens (\AddApplicationVpcConfigurationResponse' {httpStatus} -> httpStatus) (\s@AddApplicationVpcConfigurationResponse' {} a -> s {httpStatus = a} :: AddApplicationVpcConfigurationResponse)
+
+instance
+  Prelude.NFData
+    AddApplicationVpcConfigurationResponse
+  where
+  rnf AddApplicationVpcConfigurationResponse' {..} =
+    Prelude.rnf applicationARN
+      `Prelude.seq` Prelude.rnf applicationVersionId
+      `Prelude.seq` Prelude.rnf vpcConfigurationDescription
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/CreateApplication.hs b/gen/Amazonka/KinesisAnalyticsV2/CreateApplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/CreateApplication.hs
@@ -0,0 +1,317 @@
+{-# 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.KinesisAnalyticsV2.CreateApplication
+-- 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 Kinesis Data Analytics application. For information about
+-- creating a Kinesis Data Analytics application, see
+-- <https://docs.aws.amazon.com/kinesisanalytics/latest/java/getting-started.html Creating an Application>.
+module Amazonka.KinesisAnalyticsV2.CreateApplication
+  ( -- * Creating a Request
+    CreateApplication (..),
+    newCreateApplication,
+
+    -- * Request Lenses
+    createApplication_applicationConfiguration,
+    createApplication_applicationDescription,
+    createApplication_applicationMode,
+    createApplication_cloudWatchLoggingOptions,
+    createApplication_tags,
+    createApplication_applicationName,
+    createApplication_runtimeEnvironment,
+    createApplication_serviceExecutionRole,
+
+    -- * Destructuring the Response
+    CreateApplicationResponse (..),
+    newCreateApplicationResponse,
+
+    -- * Response Lenses
+    createApplicationResponse_httpStatus,
+    createApplicationResponse_applicationDetail,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateApplication' smart constructor.
+data CreateApplication = CreateApplication'
+  { -- | Use this parameter to configure the application.
+    applicationConfiguration :: Prelude.Maybe ApplicationConfiguration,
+    -- | A summary description of the application.
+    applicationDescription :: Prelude.Maybe Prelude.Text,
+    -- | Use the @STREAMING@ mode to create a Kinesis Data Analytics For Flink
+    -- application. To create a Kinesis Data Analytics Studio notebook, use the
+    -- @INTERACTIVE@ mode.
+    applicationMode :: Prelude.Maybe ApplicationMode,
+    -- | Use this parameter to configure an Amazon CloudWatch log stream to
+    -- monitor application configuration errors.
+    cloudWatchLoggingOptions :: Prelude.Maybe [CloudWatchLoggingOption],
+    -- | A list of one or more tags to assign to the application. A tag is a
+    -- key-value pair that identifies an application. Note that the maximum
+    -- number of application tags includes system tags. The maximum number of
+    -- user-defined application tags is 50. For more information, see
+    -- <https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html Using Tagging>.
+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),
+    -- | The name of your application (for example, @sample-app@).
+    applicationName :: Prelude.Text,
+    -- | The runtime environment for the application.
+    runtimeEnvironment :: RuntimeEnvironment,
+    -- | The IAM role used by the application to access Kinesis data streams,
+    -- Kinesis Data Firehose delivery streams, Amazon S3 objects, and other
+    -- external resources.
+    serviceExecutionRole :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateApplication' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationConfiguration', 'createApplication_applicationConfiguration' - Use this parameter to configure the application.
+--
+-- 'applicationDescription', 'createApplication_applicationDescription' - A summary description of the application.
+--
+-- 'applicationMode', 'createApplication_applicationMode' - Use the @STREAMING@ mode to create a Kinesis Data Analytics For Flink
+-- application. To create a Kinesis Data Analytics Studio notebook, use the
+-- @INTERACTIVE@ mode.
+--
+-- 'cloudWatchLoggingOptions', 'createApplication_cloudWatchLoggingOptions' - Use this parameter to configure an Amazon CloudWatch log stream to
+-- monitor application configuration errors.
+--
+-- 'tags', 'createApplication_tags' - A list of one or more tags to assign to the application. A tag is a
+-- key-value pair that identifies an application. Note that the maximum
+-- number of application tags includes system tags. The maximum number of
+-- user-defined application tags is 50. For more information, see
+-- <https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html Using Tagging>.
+--
+-- 'applicationName', 'createApplication_applicationName' - The name of your application (for example, @sample-app@).
+--
+-- 'runtimeEnvironment', 'createApplication_runtimeEnvironment' - The runtime environment for the application.
+--
+-- 'serviceExecutionRole', 'createApplication_serviceExecutionRole' - The IAM role used by the application to access Kinesis data streams,
+-- Kinesis Data Firehose delivery streams, Amazon S3 objects, and other
+-- external resources.
+newCreateApplication ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'runtimeEnvironment'
+  RuntimeEnvironment ->
+  -- | 'serviceExecutionRole'
+  Prelude.Text ->
+  CreateApplication
+newCreateApplication
+  pApplicationName_
+  pRuntimeEnvironment_
+  pServiceExecutionRole_ =
+    CreateApplication'
+      { applicationConfiguration =
+          Prelude.Nothing,
+        applicationDescription = Prelude.Nothing,
+        applicationMode = Prelude.Nothing,
+        cloudWatchLoggingOptions = Prelude.Nothing,
+        tags = Prelude.Nothing,
+        applicationName = pApplicationName_,
+        runtimeEnvironment = pRuntimeEnvironment_,
+        serviceExecutionRole = pServiceExecutionRole_
+      }
+
+-- | Use this parameter to configure the application.
+createApplication_applicationConfiguration :: Lens.Lens' CreateApplication (Prelude.Maybe ApplicationConfiguration)
+createApplication_applicationConfiguration = Lens.lens (\CreateApplication' {applicationConfiguration} -> applicationConfiguration) (\s@CreateApplication' {} a -> s {applicationConfiguration = a} :: CreateApplication)
+
+-- | A summary description of the application.
+createApplication_applicationDescription :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)
+createApplication_applicationDescription = Lens.lens (\CreateApplication' {applicationDescription} -> applicationDescription) (\s@CreateApplication' {} a -> s {applicationDescription = a} :: CreateApplication)
+
+-- | Use the @STREAMING@ mode to create a Kinesis Data Analytics For Flink
+-- application. To create a Kinesis Data Analytics Studio notebook, use the
+-- @INTERACTIVE@ mode.
+createApplication_applicationMode :: Lens.Lens' CreateApplication (Prelude.Maybe ApplicationMode)
+createApplication_applicationMode = Lens.lens (\CreateApplication' {applicationMode} -> applicationMode) (\s@CreateApplication' {} a -> s {applicationMode = a} :: CreateApplication)
+
+-- | Use this parameter to configure an Amazon CloudWatch log stream to
+-- monitor application configuration errors.
+createApplication_cloudWatchLoggingOptions :: Lens.Lens' CreateApplication (Prelude.Maybe [CloudWatchLoggingOption])
+createApplication_cloudWatchLoggingOptions = Lens.lens (\CreateApplication' {cloudWatchLoggingOptions} -> cloudWatchLoggingOptions) (\s@CreateApplication' {} a -> s {cloudWatchLoggingOptions = a} :: CreateApplication) Prelude.. Lens.mapping Lens.coerced
+
+-- | A list of one or more tags to assign to the application. A tag is a
+-- key-value pair that identifies an application. Note that the maximum
+-- number of application tags includes system tags. The maximum number of
+-- user-defined application tags is 50. For more information, see
+-- <https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html Using Tagging>.
+createApplication_tags :: Lens.Lens' CreateApplication (Prelude.Maybe (Prelude.NonEmpty Tag))
+createApplication_tags = Lens.lens (\CreateApplication' {tags} -> tags) (\s@CreateApplication' {} a -> s {tags = a} :: CreateApplication) Prelude.. Lens.mapping Lens.coerced
+
+-- | The name of your application (for example, @sample-app@).
+createApplication_applicationName :: Lens.Lens' CreateApplication Prelude.Text
+createApplication_applicationName = Lens.lens (\CreateApplication' {applicationName} -> applicationName) (\s@CreateApplication' {} a -> s {applicationName = a} :: CreateApplication)
+
+-- | The runtime environment for the application.
+createApplication_runtimeEnvironment :: Lens.Lens' CreateApplication RuntimeEnvironment
+createApplication_runtimeEnvironment = Lens.lens (\CreateApplication' {runtimeEnvironment} -> runtimeEnvironment) (\s@CreateApplication' {} a -> s {runtimeEnvironment = a} :: CreateApplication)
+
+-- | The IAM role used by the application to access Kinesis data streams,
+-- Kinesis Data Firehose delivery streams, Amazon S3 objects, and other
+-- external resources.
+createApplication_serviceExecutionRole :: Lens.Lens' CreateApplication Prelude.Text
+createApplication_serviceExecutionRole = Lens.lens (\CreateApplication' {serviceExecutionRole} -> serviceExecutionRole) (\s@CreateApplication' {} a -> s {serviceExecutionRole = a} :: CreateApplication)
+
+instance Core.AWSRequest CreateApplication where
+  type
+    AWSResponse CreateApplication =
+      CreateApplicationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateApplicationResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "ApplicationDetail")
+      )
+
+instance Prelude.Hashable CreateApplication where
+  hashWithSalt _salt CreateApplication' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationConfiguration
+      `Prelude.hashWithSalt` applicationDescription
+      `Prelude.hashWithSalt` applicationMode
+      `Prelude.hashWithSalt` cloudWatchLoggingOptions
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` runtimeEnvironment
+      `Prelude.hashWithSalt` serviceExecutionRole
+
+instance Prelude.NFData CreateApplication where
+  rnf CreateApplication' {..} =
+    Prelude.rnf applicationConfiguration
+      `Prelude.seq` Prelude.rnf applicationDescription
+      `Prelude.seq` Prelude.rnf applicationMode
+      `Prelude.seq` Prelude.rnf cloudWatchLoggingOptions
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf runtimeEnvironment
+      `Prelude.seq` Prelude.rnf serviceExecutionRole
+
+instance Data.ToHeaders CreateApplication where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.CreateApplication" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateApplication where
+  toJSON CreateApplication' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ApplicationConfiguration" Data..=)
+              Prelude.<$> applicationConfiguration,
+            ("ApplicationDescription" Data..=)
+              Prelude.<$> applicationDescription,
+            ("ApplicationMode" Data..=)
+              Prelude.<$> applicationMode,
+            ("CloudWatchLoggingOptions" Data..=)
+              Prelude.<$> cloudWatchLoggingOptions,
+            ("Tags" Data..=) Prelude.<$> tags,
+            Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ("RuntimeEnvironment" Data..= runtimeEnvironment),
+            Prelude.Just
+              ( "ServiceExecutionRole"
+                  Data..= serviceExecutionRole
+              )
+          ]
+      )
+
+instance Data.ToPath CreateApplication where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateApplication where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateApplicationResponse' smart constructor.
+data CreateApplicationResponse = CreateApplicationResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | In response to your @CreateApplication@ request, Kinesis Data Analytics
+    -- returns a response with details of the application it created.
+    applicationDetail :: ApplicationDetail
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateApplicationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'createApplicationResponse_httpStatus' - The response's http status code.
+--
+-- 'applicationDetail', 'createApplicationResponse_applicationDetail' - In response to your @CreateApplication@ request, Kinesis Data Analytics
+-- returns a response with details of the application it created.
+newCreateApplicationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'applicationDetail'
+  ApplicationDetail ->
+  CreateApplicationResponse
+newCreateApplicationResponse
+  pHttpStatus_
+  pApplicationDetail_ =
+    CreateApplicationResponse'
+      { httpStatus =
+          pHttpStatus_,
+        applicationDetail = pApplicationDetail_
+      }
+
+-- | The response's http status code.
+createApplicationResponse_httpStatus :: Lens.Lens' CreateApplicationResponse Prelude.Int
+createApplicationResponse_httpStatus = Lens.lens (\CreateApplicationResponse' {httpStatus} -> httpStatus) (\s@CreateApplicationResponse' {} a -> s {httpStatus = a} :: CreateApplicationResponse)
+
+-- | In response to your @CreateApplication@ request, Kinesis Data Analytics
+-- returns a response with details of the application it created.
+createApplicationResponse_applicationDetail :: Lens.Lens' CreateApplicationResponse ApplicationDetail
+createApplicationResponse_applicationDetail = Lens.lens (\CreateApplicationResponse' {applicationDetail} -> applicationDetail) (\s@CreateApplicationResponse' {} a -> s {applicationDetail = a} :: CreateApplicationResponse)
+
+instance Prelude.NFData CreateApplicationResponse where
+  rnf CreateApplicationResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf applicationDetail
diff --git a/gen/Amazonka/KinesisAnalyticsV2/CreateApplicationPresignedUrl.hs b/gen/Amazonka/KinesisAnalyticsV2/CreateApplicationPresignedUrl.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/CreateApplicationPresignedUrl.hs
@@ -0,0 +1,234 @@
+{-# 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.KinesisAnalyticsV2.CreateApplicationPresignedUrl
+-- 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 and returns a URL that you can use to connect to an
+-- application\'s extension.
+--
+-- The IAM role or user used to call this API defines the permissions to
+-- access the extension. After the presigned URL is created, no additional
+-- permission is required to access this URL. IAM authorization policies
+-- for this API are also enforced for every HTTP request that attempts to
+-- connect to the extension.
+--
+-- You control the amount of time that the URL will be valid using the
+-- @SessionExpirationDurationInSeconds@ parameter. If you do not provide
+-- this parameter, the returned URL is valid for twelve hours.
+--
+-- The URL that you get from a call to CreateApplicationPresignedUrl must
+-- be used within 3 minutes to be valid. If you first try to use the URL
+-- after the 3-minute limit expires, the service returns an HTTP 403
+-- Forbidden error.
+module Amazonka.KinesisAnalyticsV2.CreateApplicationPresignedUrl
+  ( -- * Creating a Request
+    CreateApplicationPresignedUrl (..),
+    newCreateApplicationPresignedUrl,
+
+    -- * Request Lenses
+    createApplicationPresignedUrl_sessionExpirationDurationInSeconds,
+    createApplicationPresignedUrl_applicationName,
+    createApplicationPresignedUrl_urlType,
+
+    -- * Destructuring the Response
+    CreateApplicationPresignedUrlResponse (..),
+    newCreateApplicationPresignedUrlResponse,
+
+    -- * Response Lenses
+    createApplicationPresignedUrlResponse_authorizedUrl,
+    createApplicationPresignedUrlResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateApplicationPresignedUrl' smart constructor.
+data CreateApplicationPresignedUrl = CreateApplicationPresignedUrl'
+  { -- | The duration in seconds for which the returned URL will be valid.
+    sessionExpirationDurationInSeconds :: Prelude.Maybe Prelude.Natural,
+    -- | The name of the application.
+    applicationName :: Prelude.Text,
+    -- | The type of the extension for which to create and return a URL.
+    -- Currently, the only valid extension URL type is @FLINK_DASHBOARD_URL@.
+    urlType :: UrlType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateApplicationPresignedUrl' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'sessionExpirationDurationInSeconds', 'createApplicationPresignedUrl_sessionExpirationDurationInSeconds' - The duration in seconds for which the returned URL will be valid.
+--
+-- 'applicationName', 'createApplicationPresignedUrl_applicationName' - The name of the application.
+--
+-- 'urlType', 'createApplicationPresignedUrl_urlType' - The type of the extension for which to create and return a URL.
+-- Currently, the only valid extension URL type is @FLINK_DASHBOARD_URL@.
+newCreateApplicationPresignedUrl ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'urlType'
+  UrlType ->
+  CreateApplicationPresignedUrl
+newCreateApplicationPresignedUrl
+  pApplicationName_
+  pUrlType_ =
+    CreateApplicationPresignedUrl'
+      { sessionExpirationDurationInSeconds =
+          Prelude.Nothing,
+        applicationName = pApplicationName_,
+        urlType = pUrlType_
+      }
+
+-- | The duration in seconds for which the returned URL will be valid.
+createApplicationPresignedUrl_sessionExpirationDurationInSeconds :: Lens.Lens' CreateApplicationPresignedUrl (Prelude.Maybe Prelude.Natural)
+createApplicationPresignedUrl_sessionExpirationDurationInSeconds = Lens.lens (\CreateApplicationPresignedUrl' {sessionExpirationDurationInSeconds} -> sessionExpirationDurationInSeconds) (\s@CreateApplicationPresignedUrl' {} a -> s {sessionExpirationDurationInSeconds = a} :: CreateApplicationPresignedUrl)
+
+-- | The name of the application.
+createApplicationPresignedUrl_applicationName :: Lens.Lens' CreateApplicationPresignedUrl Prelude.Text
+createApplicationPresignedUrl_applicationName = Lens.lens (\CreateApplicationPresignedUrl' {applicationName} -> applicationName) (\s@CreateApplicationPresignedUrl' {} a -> s {applicationName = a} :: CreateApplicationPresignedUrl)
+
+-- | The type of the extension for which to create and return a URL.
+-- Currently, the only valid extension URL type is @FLINK_DASHBOARD_URL@.
+createApplicationPresignedUrl_urlType :: Lens.Lens' CreateApplicationPresignedUrl UrlType
+createApplicationPresignedUrl_urlType = Lens.lens (\CreateApplicationPresignedUrl' {urlType} -> urlType) (\s@CreateApplicationPresignedUrl' {} a -> s {urlType = a} :: CreateApplicationPresignedUrl)
+
+instance
+  Core.AWSRequest
+    CreateApplicationPresignedUrl
+  where
+  type
+    AWSResponse CreateApplicationPresignedUrl =
+      CreateApplicationPresignedUrlResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateApplicationPresignedUrlResponse'
+            Prelude.<$> (x Data..?> "AuthorizedUrl")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    CreateApplicationPresignedUrl
+  where
+  hashWithSalt _salt CreateApplicationPresignedUrl' {..} =
+    _salt
+      `Prelude.hashWithSalt` sessionExpirationDurationInSeconds
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` urlType
+
+instance Prelude.NFData CreateApplicationPresignedUrl where
+  rnf CreateApplicationPresignedUrl' {..} =
+    Prelude.rnf sessionExpirationDurationInSeconds
+      `Prelude.seq` Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf urlType
+
+instance Data.ToHeaders CreateApplicationPresignedUrl where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.CreateApplicationPresignedUrl" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateApplicationPresignedUrl where
+  toJSON CreateApplicationPresignedUrl' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("SessionExpirationDurationInSeconds" Data..=)
+              Prelude.<$> sessionExpirationDurationInSeconds,
+            Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just ("UrlType" Data..= urlType)
+          ]
+      )
+
+instance Data.ToPath CreateApplicationPresignedUrl where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateApplicationPresignedUrl where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateApplicationPresignedUrlResponse' smart constructor.
+data CreateApplicationPresignedUrlResponse = CreateApplicationPresignedUrlResponse'
+  { -- | The URL of the extension.
+    authorizedUrl :: 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 'CreateApplicationPresignedUrlResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authorizedUrl', 'createApplicationPresignedUrlResponse_authorizedUrl' - The URL of the extension.
+--
+-- 'httpStatus', 'createApplicationPresignedUrlResponse_httpStatus' - The response's http status code.
+newCreateApplicationPresignedUrlResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateApplicationPresignedUrlResponse
+newCreateApplicationPresignedUrlResponse pHttpStatus_ =
+  CreateApplicationPresignedUrlResponse'
+    { authorizedUrl =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The URL of the extension.
+createApplicationPresignedUrlResponse_authorizedUrl :: Lens.Lens' CreateApplicationPresignedUrlResponse (Prelude.Maybe Prelude.Text)
+createApplicationPresignedUrlResponse_authorizedUrl = Lens.lens (\CreateApplicationPresignedUrlResponse' {authorizedUrl} -> authorizedUrl) (\s@CreateApplicationPresignedUrlResponse' {} a -> s {authorizedUrl = a} :: CreateApplicationPresignedUrlResponse)
+
+-- | The response's http status code.
+createApplicationPresignedUrlResponse_httpStatus :: Lens.Lens' CreateApplicationPresignedUrlResponse Prelude.Int
+createApplicationPresignedUrlResponse_httpStatus = Lens.lens (\CreateApplicationPresignedUrlResponse' {httpStatus} -> httpStatus) (\s@CreateApplicationPresignedUrlResponse' {} a -> s {httpStatus = a} :: CreateApplicationPresignedUrlResponse)
+
+instance
+  Prelude.NFData
+    CreateApplicationPresignedUrlResponse
+  where
+  rnf CreateApplicationPresignedUrlResponse' {..} =
+    Prelude.rnf authorizedUrl
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/CreateApplicationSnapshot.hs b/gen/Amazonka/KinesisAnalyticsV2/CreateApplicationSnapshot.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/CreateApplicationSnapshot.hs
@@ -0,0 +1,183 @@
+{-# 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.KinesisAnalyticsV2.CreateApplicationSnapshot
+-- 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 the application\'s state data.
+module Amazonka.KinesisAnalyticsV2.CreateApplicationSnapshot
+  ( -- * Creating a Request
+    CreateApplicationSnapshot (..),
+    newCreateApplicationSnapshot,
+
+    -- * Request Lenses
+    createApplicationSnapshot_applicationName,
+    createApplicationSnapshot_snapshotName,
+
+    -- * Destructuring the Response
+    CreateApplicationSnapshotResponse (..),
+    newCreateApplicationSnapshotResponse,
+
+    -- * Response Lenses
+    createApplicationSnapshotResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newCreateApplicationSnapshot' smart constructor.
+data CreateApplicationSnapshot = CreateApplicationSnapshot'
+  { -- | The name of an existing application
+    applicationName :: Prelude.Text,
+    -- | An identifier for the application snapshot.
+    snapshotName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateApplicationSnapshot' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'createApplicationSnapshot_applicationName' - The name of an existing application
+--
+-- 'snapshotName', 'createApplicationSnapshot_snapshotName' - An identifier for the application snapshot.
+newCreateApplicationSnapshot ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'snapshotName'
+  Prelude.Text ->
+  CreateApplicationSnapshot
+newCreateApplicationSnapshot
+  pApplicationName_
+  pSnapshotName_ =
+    CreateApplicationSnapshot'
+      { applicationName =
+          pApplicationName_,
+        snapshotName = pSnapshotName_
+      }
+
+-- | The name of an existing application
+createApplicationSnapshot_applicationName :: Lens.Lens' CreateApplicationSnapshot Prelude.Text
+createApplicationSnapshot_applicationName = Lens.lens (\CreateApplicationSnapshot' {applicationName} -> applicationName) (\s@CreateApplicationSnapshot' {} a -> s {applicationName = a} :: CreateApplicationSnapshot)
+
+-- | An identifier for the application snapshot.
+createApplicationSnapshot_snapshotName :: Lens.Lens' CreateApplicationSnapshot Prelude.Text
+createApplicationSnapshot_snapshotName = Lens.lens (\CreateApplicationSnapshot' {snapshotName} -> snapshotName) (\s@CreateApplicationSnapshot' {} a -> s {snapshotName = a} :: CreateApplicationSnapshot)
+
+instance Core.AWSRequest CreateApplicationSnapshot where
+  type
+    AWSResponse CreateApplicationSnapshot =
+      CreateApplicationSnapshotResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          CreateApplicationSnapshotResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateApplicationSnapshot where
+  hashWithSalt _salt CreateApplicationSnapshot' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` snapshotName
+
+instance Prelude.NFData CreateApplicationSnapshot where
+  rnf CreateApplicationSnapshot' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf snapshotName
+
+instance Data.ToHeaders CreateApplicationSnapshot where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.CreateApplicationSnapshot" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateApplicationSnapshot where
+  toJSON CreateApplicationSnapshot' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just ("SnapshotName" Data..= snapshotName)
+          ]
+      )
+
+instance Data.ToPath CreateApplicationSnapshot where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateApplicationSnapshot where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateApplicationSnapshotResponse' smart constructor.
+data CreateApplicationSnapshotResponse = CreateApplicationSnapshotResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateApplicationSnapshotResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'createApplicationSnapshotResponse_httpStatus' - The response's http status code.
+newCreateApplicationSnapshotResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateApplicationSnapshotResponse
+newCreateApplicationSnapshotResponse pHttpStatus_ =
+  CreateApplicationSnapshotResponse'
+    { httpStatus =
+        pHttpStatus_
+    }
+
+-- | The response's http status code.
+createApplicationSnapshotResponse_httpStatus :: Lens.Lens' CreateApplicationSnapshotResponse Prelude.Int
+createApplicationSnapshotResponse_httpStatus = Lens.lens (\CreateApplicationSnapshotResponse' {httpStatus} -> httpStatus) (\s@CreateApplicationSnapshotResponse' {} a -> s {httpStatus = a} :: CreateApplicationSnapshotResponse)
+
+instance
+  Prelude.NFData
+    CreateApplicationSnapshotResponse
+  where
+  rnf CreateApplicationSnapshotResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/DeleteApplication.hs b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplication.hs
@@ -0,0 +1,183 @@
+{-# 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.KinesisAnalyticsV2.DeleteApplication
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified application. Kinesis Data Analytics halts
+-- application execution and deletes the application.
+module Amazonka.KinesisAnalyticsV2.DeleteApplication
+  ( -- * Creating a Request
+    DeleteApplication (..),
+    newDeleteApplication,
+
+    -- * Request Lenses
+    deleteApplication_applicationName,
+    deleteApplication_createTimestamp,
+
+    -- * Destructuring the Response
+    DeleteApplicationResponse (..),
+    newDeleteApplicationResponse,
+
+    -- * Response Lenses
+    deleteApplicationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteApplication' smart constructor.
+data DeleteApplication = DeleteApplication'
+  { -- | The name of the application to delete.
+    applicationName :: Prelude.Text,
+    -- | Use the @DescribeApplication@ operation to get this value.
+    createTimestamp :: Data.POSIX
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplication' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'deleteApplication_applicationName' - The name of the application to delete.
+--
+-- 'createTimestamp', 'deleteApplication_createTimestamp' - Use the @DescribeApplication@ operation to get this value.
+newDeleteApplication ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'createTimestamp'
+  Prelude.UTCTime ->
+  DeleteApplication
+newDeleteApplication
+  pApplicationName_
+  pCreateTimestamp_ =
+    DeleteApplication'
+      { applicationName =
+          pApplicationName_,
+        createTimestamp =
+          Data._Time Lens.# pCreateTimestamp_
+      }
+
+-- | The name of the application to delete.
+deleteApplication_applicationName :: Lens.Lens' DeleteApplication Prelude.Text
+deleteApplication_applicationName = Lens.lens (\DeleteApplication' {applicationName} -> applicationName) (\s@DeleteApplication' {} a -> s {applicationName = a} :: DeleteApplication)
+
+-- | Use the @DescribeApplication@ operation to get this value.
+deleteApplication_createTimestamp :: Lens.Lens' DeleteApplication Prelude.UTCTime
+deleteApplication_createTimestamp = Lens.lens (\DeleteApplication' {createTimestamp} -> createTimestamp) (\s@DeleteApplication' {} a -> s {createTimestamp = a} :: DeleteApplication) Prelude.. Data._Time
+
+instance Core.AWSRequest DeleteApplication where
+  type
+    AWSResponse DeleteApplication =
+      DeleteApplicationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DeleteApplicationResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteApplication where
+  hashWithSalt _salt DeleteApplication' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` createTimestamp
+
+instance Prelude.NFData DeleteApplication where
+  rnf DeleteApplication' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf createTimestamp
+
+instance Data.ToHeaders DeleteApplication where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.DeleteApplication" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeleteApplication where
+  toJSON DeleteApplication' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ("CreateTimestamp" Data..= createTimestamp)
+          ]
+      )
+
+instance Data.ToPath DeleteApplication where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteApplication where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteApplicationResponse' smart constructor.
+data DeleteApplicationResponse = DeleteApplicationResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'deleteApplicationResponse_httpStatus' - The response's http status code.
+newDeleteApplicationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteApplicationResponse
+newDeleteApplicationResponse pHttpStatus_ =
+  DeleteApplicationResponse'
+    { httpStatus =
+        pHttpStatus_
+    }
+
+-- | The response's http status code.
+deleteApplicationResponse_httpStatus :: Lens.Lens' DeleteApplicationResponse Prelude.Int
+deleteApplicationResponse_httpStatus = Lens.lens (\DeleteApplicationResponse' {httpStatus} -> httpStatus) (\s@DeleteApplicationResponse' {} a -> s {httpStatus = a} :: DeleteApplicationResponse)
+
+instance Prelude.NFData DeleteApplicationResponse where
+  rnf DeleteApplicationResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationCloudWatchLoggingOption.hs b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationCloudWatchLoggingOption.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationCloudWatchLoggingOption.hs
@@ -0,0 +1,327 @@
+{-# 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.KinesisAnalyticsV2.DeleteApplicationCloudWatchLoggingOption
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an Amazon CloudWatch log stream from an Kinesis Data Analytics
+-- application.
+module Amazonka.KinesisAnalyticsV2.DeleteApplicationCloudWatchLoggingOption
+  ( -- * Creating a Request
+    DeleteApplicationCloudWatchLoggingOption (..),
+    newDeleteApplicationCloudWatchLoggingOption,
+
+    -- * Request Lenses
+    deleteApplicationCloudWatchLoggingOption_conditionalToken,
+    deleteApplicationCloudWatchLoggingOption_currentApplicationVersionId,
+    deleteApplicationCloudWatchLoggingOption_applicationName,
+    deleteApplicationCloudWatchLoggingOption_cloudWatchLoggingOptionId,
+
+    -- * Destructuring the Response
+    DeleteApplicationCloudWatchLoggingOptionResponse (..),
+    newDeleteApplicationCloudWatchLoggingOptionResponse,
+
+    -- * Response Lenses
+    deleteApplicationCloudWatchLoggingOptionResponse_applicationARN,
+    deleteApplicationCloudWatchLoggingOptionResponse_applicationVersionId,
+    deleteApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions,
+    deleteApplicationCloudWatchLoggingOptionResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteApplicationCloudWatchLoggingOption' smart constructor.
+data DeleteApplicationCloudWatchLoggingOption = DeleteApplicationCloudWatchLoggingOption'
+  { -- | A value you use to implement strong concurrency for application updates.
+    -- You must provide the @CurrentApplicationVersionId@ or the
+    -- @ConditionalToken@. You get the application\'s current
+    -- @ConditionalToken@ using DescribeApplication. For better concurrency
+    -- support, use the @ConditionalToken@ parameter instead of
+    -- @CurrentApplicationVersionId@.
+    conditionalToken :: Prelude.Maybe Prelude.Text,
+    -- | The version ID of the application. You must provide the
+    -- @CurrentApplicationVersionId@ or the @ConditionalToken@. You can
+    -- retrieve the application version ID using DescribeApplication. For
+    -- better concurrency support, use the @ConditionalToken@ parameter instead
+    -- of @CurrentApplicationVersionId@.
+    currentApplicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | The application name.
+    applicationName :: Prelude.Text,
+    -- | The @CloudWatchLoggingOptionId@ of the Amazon CloudWatch logging option
+    -- to delete. You can get the @CloudWatchLoggingOptionId@ by using the
+    -- DescribeApplication operation.
+    cloudWatchLoggingOptionId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationCloudWatchLoggingOption' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'conditionalToken', 'deleteApplicationCloudWatchLoggingOption_conditionalToken' - A value you use to implement strong concurrency for application updates.
+-- You must provide the @CurrentApplicationVersionId@ or the
+-- @ConditionalToken@. You get the application\'s current
+-- @ConditionalToken@ using DescribeApplication. For better concurrency
+-- support, use the @ConditionalToken@ parameter instead of
+-- @CurrentApplicationVersionId@.
+--
+-- 'currentApplicationVersionId', 'deleteApplicationCloudWatchLoggingOption_currentApplicationVersionId' - The version ID of the application. You must provide the
+-- @CurrentApplicationVersionId@ or the @ConditionalToken@. You can
+-- retrieve the application version ID using DescribeApplication. For
+-- better concurrency support, use the @ConditionalToken@ parameter instead
+-- of @CurrentApplicationVersionId@.
+--
+-- 'applicationName', 'deleteApplicationCloudWatchLoggingOption_applicationName' - The application name.
+--
+-- 'cloudWatchLoggingOptionId', 'deleteApplicationCloudWatchLoggingOption_cloudWatchLoggingOptionId' - The @CloudWatchLoggingOptionId@ of the Amazon CloudWatch logging option
+-- to delete. You can get the @CloudWatchLoggingOptionId@ by using the
+-- DescribeApplication operation.
+newDeleteApplicationCloudWatchLoggingOption ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'cloudWatchLoggingOptionId'
+  Prelude.Text ->
+  DeleteApplicationCloudWatchLoggingOption
+newDeleteApplicationCloudWatchLoggingOption
+  pApplicationName_
+  pCloudWatchLoggingOptionId_ =
+    DeleteApplicationCloudWatchLoggingOption'
+      { conditionalToken =
+          Prelude.Nothing,
+        currentApplicationVersionId =
+          Prelude.Nothing,
+        applicationName =
+          pApplicationName_,
+        cloudWatchLoggingOptionId =
+          pCloudWatchLoggingOptionId_
+      }
+
+-- | A value you use to implement strong concurrency for application updates.
+-- You must provide the @CurrentApplicationVersionId@ or the
+-- @ConditionalToken@. You get the application\'s current
+-- @ConditionalToken@ using DescribeApplication. For better concurrency
+-- support, use the @ConditionalToken@ parameter instead of
+-- @CurrentApplicationVersionId@.
+deleteApplicationCloudWatchLoggingOption_conditionalToken :: Lens.Lens' DeleteApplicationCloudWatchLoggingOption (Prelude.Maybe Prelude.Text)
+deleteApplicationCloudWatchLoggingOption_conditionalToken = Lens.lens (\DeleteApplicationCloudWatchLoggingOption' {conditionalToken} -> conditionalToken) (\s@DeleteApplicationCloudWatchLoggingOption' {} a -> s {conditionalToken = a} :: DeleteApplicationCloudWatchLoggingOption)
+
+-- | The version ID of the application. You must provide the
+-- @CurrentApplicationVersionId@ or the @ConditionalToken@. You can
+-- retrieve the application version ID using DescribeApplication. For
+-- better concurrency support, use the @ConditionalToken@ parameter instead
+-- of @CurrentApplicationVersionId@.
+deleteApplicationCloudWatchLoggingOption_currentApplicationVersionId :: Lens.Lens' DeleteApplicationCloudWatchLoggingOption (Prelude.Maybe Prelude.Natural)
+deleteApplicationCloudWatchLoggingOption_currentApplicationVersionId = Lens.lens (\DeleteApplicationCloudWatchLoggingOption' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@DeleteApplicationCloudWatchLoggingOption' {} a -> s {currentApplicationVersionId = a} :: DeleteApplicationCloudWatchLoggingOption)
+
+-- | The application name.
+deleteApplicationCloudWatchLoggingOption_applicationName :: Lens.Lens' DeleteApplicationCloudWatchLoggingOption Prelude.Text
+deleteApplicationCloudWatchLoggingOption_applicationName = Lens.lens (\DeleteApplicationCloudWatchLoggingOption' {applicationName} -> applicationName) (\s@DeleteApplicationCloudWatchLoggingOption' {} a -> s {applicationName = a} :: DeleteApplicationCloudWatchLoggingOption)
+
+-- | The @CloudWatchLoggingOptionId@ of the Amazon CloudWatch logging option
+-- to delete. You can get the @CloudWatchLoggingOptionId@ by using the
+-- DescribeApplication operation.
+deleteApplicationCloudWatchLoggingOption_cloudWatchLoggingOptionId :: Lens.Lens' DeleteApplicationCloudWatchLoggingOption Prelude.Text
+deleteApplicationCloudWatchLoggingOption_cloudWatchLoggingOptionId = Lens.lens (\DeleteApplicationCloudWatchLoggingOption' {cloudWatchLoggingOptionId} -> cloudWatchLoggingOptionId) (\s@DeleteApplicationCloudWatchLoggingOption' {} a -> s {cloudWatchLoggingOptionId = a} :: DeleteApplicationCloudWatchLoggingOption)
+
+instance
+  Core.AWSRequest
+    DeleteApplicationCloudWatchLoggingOption
+  where
+  type
+    AWSResponse
+      DeleteApplicationCloudWatchLoggingOption =
+      DeleteApplicationCloudWatchLoggingOptionResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteApplicationCloudWatchLoggingOptionResponse'
+            Prelude.<$> (x Data..?> "ApplicationARN")
+            Prelude.<*> (x Data..?> "ApplicationVersionId")
+            Prelude.<*> ( x
+                            Data..?> "CloudWatchLoggingOptionDescriptions"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    DeleteApplicationCloudWatchLoggingOption
+  where
+  hashWithSalt
+    _salt
+    DeleteApplicationCloudWatchLoggingOption' {..} =
+      _salt
+        `Prelude.hashWithSalt` conditionalToken
+        `Prelude.hashWithSalt` currentApplicationVersionId
+        `Prelude.hashWithSalt` applicationName
+        `Prelude.hashWithSalt` cloudWatchLoggingOptionId
+
+instance
+  Prelude.NFData
+    DeleteApplicationCloudWatchLoggingOption
+  where
+  rnf DeleteApplicationCloudWatchLoggingOption' {..} =
+    Prelude.rnf conditionalToken
+      `Prelude.seq` Prelude.rnf currentApplicationVersionId
+      `Prelude.seq` Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf cloudWatchLoggingOptionId
+
+instance
+  Data.ToHeaders
+    DeleteApplicationCloudWatchLoggingOption
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.DeleteApplicationCloudWatchLoggingOption" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    DeleteApplicationCloudWatchLoggingOption
+  where
+  toJSON DeleteApplicationCloudWatchLoggingOption' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ConditionalToken" Data..=)
+              Prelude.<$> conditionalToken,
+            ("CurrentApplicationVersionId" Data..=)
+              Prelude.<$> currentApplicationVersionId,
+            Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ( "CloudWatchLoggingOptionId"
+                  Data..= cloudWatchLoggingOptionId
+              )
+          ]
+      )
+
+instance
+  Data.ToPath
+    DeleteApplicationCloudWatchLoggingOption
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    DeleteApplicationCloudWatchLoggingOption
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteApplicationCloudWatchLoggingOptionResponse' smart constructor.
+data DeleteApplicationCloudWatchLoggingOptionResponse = DeleteApplicationCloudWatchLoggingOptionResponse'
+  { -- | The application\'s Amazon Resource Name (ARN).
+    applicationARN :: Prelude.Maybe Prelude.Text,
+    -- | The version ID of the application. Kinesis Data Analytics updates the
+    -- @ApplicationVersionId@ each time you change the CloudWatch logging
+    -- options.
+    applicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | The descriptions of the remaining CloudWatch logging options for the
+    -- application.
+    cloudWatchLoggingOptionDescriptions :: Prelude.Maybe [CloudWatchLoggingOptionDescription],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationCloudWatchLoggingOptionResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationARN', 'deleteApplicationCloudWatchLoggingOptionResponse_applicationARN' - The application\'s Amazon Resource Name (ARN).
+--
+-- 'applicationVersionId', 'deleteApplicationCloudWatchLoggingOptionResponse_applicationVersionId' - The version ID of the application. Kinesis Data Analytics updates the
+-- @ApplicationVersionId@ each time you change the CloudWatch logging
+-- options.
+--
+-- 'cloudWatchLoggingOptionDescriptions', 'deleteApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions' - The descriptions of the remaining CloudWatch logging options for the
+-- application.
+--
+-- 'httpStatus', 'deleteApplicationCloudWatchLoggingOptionResponse_httpStatus' - The response's http status code.
+newDeleteApplicationCloudWatchLoggingOptionResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteApplicationCloudWatchLoggingOptionResponse
+newDeleteApplicationCloudWatchLoggingOptionResponse
+  pHttpStatus_ =
+    DeleteApplicationCloudWatchLoggingOptionResponse'
+      { applicationARN =
+          Prelude.Nothing,
+        applicationVersionId =
+          Prelude.Nothing,
+        cloudWatchLoggingOptionDescriptions =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The application\'s Amazon Resource Name (ARN).
+deleteApplicationCloudWatchLoggingOptionResponse_applicationARN :: Lens.Lens' DeleteApplicationCloudWatchLoggingOptionResponse (Prelude.Maybe Prelude.Text)
+deleteApplicationCloudWatchLoggingOptionResponse_applicationARN = Lens.lens (\DeleteApplicationCloudWatchLoggingOptionResponse' {applicationARN} -> applicationARN) (\s@DeleteApplicationCloudWatchLoggingOptionResponse' {} a -> s {applicationARN = a} :: DeleteApplicationCloudWatchLoggingOptionResponse)
+
+-- | The version ID of the application. Kinesis Data Analytics updates the
+-- @ApplicationVersionId@ each time you change the CloudWatch logging
+-- options.
+deleteApplicationCloudWatchLoggingOptionResponse_applicationVersionId :: Lens.Lens' DeleteApplicationCloudWatchLoggingOptionResponse (Prelude.Maybe Prelude.Natural)
+deleteApplicationCloudWatchLoggingOptionResponse_applicationVersionId = Lens.lens (\DeleteApplicationCloudWatchLoggingOptionResponse' {applicationVersionId} -> applicationVersionId) (\s@DeleteApplicationCloudWatchLoggingOptionResponse' {} a -> s {applicationVersionId = a} :: DeleteApplicationCloudWatchLoggingOptionResponse)
+
+-- | The descriptions of the remaining CloudWatch logging options for the
+-- application.
+deleteApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions :: Lens.Lens' DeleteApplicationCloudWatchLoggingOptionResponse (Prelude.Maybe [CloudWatchLoggingOptionDescription])
+deleteApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions = Lens.lens (\DeleteApplicationCloudWatchLoggingOptionResponse' {cloudWatchLoggingOptionDescriptions} -> cloudWatchLoggingOptionDescriptions) (\s@DeleteApplicationCloudWatchLoggingOptionResponse' {} a -> s {cloudWatchLoggingOptionDescriptions = a} :: DeleteApplicationCloudWatchLoggingOptionResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+deleteApplicationCloudWatchLoggingOptionResponse_httpStatus :: Lens.Lens' DeleteApplicationCloudWatchLoggingOptionResponse Prelude.Int
+deleteApplicationCloudWatchLoggingOptionResponse_httpStatus = Lens.lens (\DeleteApplicationCloudWatchLoggingOptionResponse' {httpStatus} -> httpStatus) (\s@DeleteApplicationCloudWatchLoggingOptionResponse' {} a -> s {httpStatus = a} :: DeleteApplicationCloudWatchLoggingOptionResponse)
+
+instance
+  Prelude.NFData
+    DeleteApplicationCloudWatchLoggingOptionResponse
+  where
+  rnf
+    DeleteApplicationCloudWatchLoggingOptionResponse' {..} =
+      Prelude.rnf applicationARN
+        `Prelude.seq` Prelude.rnf applicationVersionId
+        `Prelude.seq` Prelude.rnf cloudWatchLoggingOptionDescriptions
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationInputProcessingConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationInputProcessingConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationInputProcessingConfiguration.hs
@@ -0,0 +1,269 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.DeleteApplicationInputProcessingConfiguration
+-- 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 InputProcessingConfiguration from an input.
+module Amazonka.KinesisAnalyticsV2.DeleteApplicationInputProcessingConfiguration
+  ( -- * Creating a Request
+    DeleteApplicationInputProcessingConfiguration (..),
+    newDeleteApplicationInputProcessingConfiguration,
+
+    -- * Request Lenses
+    deleteApplicationInputProcessingConfiguration_applicationName,
+    deleteApplicationInputProcessingConfiguration_currentApplicationVersionId,
+    deleteApplicationInputProcessingConfiguration_inputId,
+
+    -- * Destructuring the Response
+    DeleteApplicationInputProcessingConfigurationResponse (..),
+    newDeleteApplicationInputProcessingConfigurationResponse,
+
+    -- * Response Lenses
+    deleteApplicationInputProcessingConfigurationResponse_applicationARN,
+    deleteApplicationInputProcessingConfigurationResponse_applicationVersionId,
+    deleteApplicationInputProcessingConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteApplicationInputProcessingConfiguration' smart constructor.
+data DeleteApplicationInputProcessingConfiguration = DeleteApplicationInputProcessingConfiguration'
+  { -- | The name of the application.
+    applicationName :: Prelude.Text,
+    -- | The application version. You can use the DescribeApplication operation
+    -- to get the current application version. If the version specified is not
+    -- the current version, the @ConcurrentModificationException@ is returned.
+    currentApplicationVersionId :: Prelude.Natural,
+    -- | The ID of the input configuration from which to delete the input
+    -- processing configuration. You can get a list of the input IDs for an
+    -- application by using the DescribeApplication operation.
+    inputId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationInputProcessingConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'deleteApplicationInputProcessingConfiguration_applicationName' - The name of the application.
+--
+-- 'currentApplicationVersionId', 'deleteApplicationInputProcessingConfiguration_currentApplicationVersionId' - The application version. You can use the DescribeApplication operation
+-- to get the current application version. If the version specified is not
+-- the current version, the @ConcurrentModificationException@ is returned.
+--
+-- 'inputId', 'deleteApplicationInputProcessingConfiguration_inputId' - The ID of the input configuration from which to delete the input
+-- processing configuration. You can get a list of the input IDs for an
+-- application by using the DescribeApplication operation.
+newDeleteApplicationInputProcessingConfiguration ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'currentApplicationVersionId'
+  Prelude.Natural ->
+  -- | 'inputId'
+  Prelude.Text ->
+  DeleteApplicationInputProcessingConfiguration
+newDeleteApplicationInputProcessingConfiguration
+  pApplicationName_
+  pCurrentApplicationVersionId_
+  pInputId_ =
+    DeleteApplicationInputProcessingConfiguration'
+      { applicationName =
+          pApplicationName_,
+        currentApplicationVersionId =
+          pCurrentApplicationVersionId_,
+        inputId = pInputId_
+      }
+
+-- | The name of the application.
+deleteApplicationInputProcessingConfiguration_applicationName :: Lens.Lens' DeleteApplicationInputProcessingConfiguration Prelude.Text
+deleteApplicationInputProcessingConfiguration_applicationName = Lens.lens (\DeleteApplicationInputProcessingConfiguration' {applicationName} -> applicationName) (\s@DeleteApplicationInputProcessingConfiguration' {} a -> s {applicationName = a} :: DeleteApplicationInputProcessingConfiguration)
+
+-- | The application version. You can use the DescribeApplication operation
+-- to get the current application version. If the version specified is not
+-- the current version, the @ConcurrentModificationException@ is returned.
+deleteApplicationInputProcessingConfiguration_currentApplicationVersionId :: Lens.Lens' DeleteApplicationInputProcessingConfiguration Prelude.Natural
+deleteApplicationInputProcessingConfiguration_currentApplicationVersionId = Lens.lens (\DeleteApplicationInputProcessingConfiguration' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@DeleteApplicationInputProcessingConfiguration' {} a -> s {currentApplicationVersionId = a} :: DeleteApplicationInputProcessingConfiguration)
+
+-- | The ID of the input configuration from which to delete the input
+-- processing configuration. You can get a list of the input IDs for an
+-- application by using the DescribeApplication operation.
+deleteApplicationInputProcessingConfiguration_inputId :: Lens.Lens' DeleteApplicationInputProcessingConfiguration Prelude.Text
+deleteApplicationInputProcessingConfiguration_inputId = Lens.lens (\DeleteApplicationInputProcessingConfiguration' {inputId} -> inputId) (\s@DeleteApplicationInputProcessingConfiguration' {} a -> s {inputId = a} :: DeleteApplicationInputProcessingConfiguration)
+
+instance
+  Core.AWSRequest
+    DeleteApplicationInputProcessingConfiguration
+  where
+  type
+    AWSResponse
+      DeleteApplicationInputProcessingConfiguration =
+      DeleteApplicationInputProcessingConfigurationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteApplicationInputProcessingConfigurationResponse'
+            Prelude.<$> (x Data..?> "ApplicationARN")
+            Prelude.<*> (x Data..?> "ApplicationVersionId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    DeleteApplicationInputProcessingConfiguration
+  where
+  hashWithSalt
+    _salt
+    DeleteApplicationInputProcessingConfiguration' {..} =
+      _salt
+        `Prelude.hashWithSalt` applicationName
+        `Prelude.hashWithSalt` currentApplicationVersionId
+        `Prelude.hashWithSalt` inputId
+
+instance
+  Prelude.NFData
+    DeleteApplicationInputProcessingConfiguration
+  where
+  rnf
+    DeleteApplicationInputProcessingConfiguration' {..} =
+      Prelude.rnf applicationName
+        `Prelude.seq` Prelude.rnf currentApplicationVersionId
+        `Prelude.seq` Prelude.rnf inputId
+
+instance
+  Data.ToHeaders
+    DeleteApplicationInputProcessingConfiguration
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.DeleteApplicationInputProcessingConfiguration" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    DeleteApplicationInputProcessingConfiguration
+  where
+  toJSON
+    DeleteApplicationInputProcessingConfiguration' {..} =
+      Data.object
+        ( Prelude.catMaybes
+            [ Prelude.Just
+                ("ApplicationName" Data..= applicationName),
+              Prelude.Just
+                ( "CurrentApplicationVersionId"
+                    Data..= currentApplicationVersionId
+                ),
+              Prelude.Just ("InputId" Data..= inputId)
+            ]
+        )
+
+instance
+  Data.ToPath
+    DeleteApplicationInputProcessingConfiguration
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    DeleteApplicationInputProcessingConfiguration
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteApplicationInputProcessingConfigurationResponse' smart constructor.
+data DeleteApplicationInputProcessingConfigurationResponse = DeleteApplicationInputProcessingConfigurationResponse'
+  { -- | The Amazon Resource Name (ARN) of the application.
+    applicationARN :: Prelude.Maybe Prelude.Text,
+    -- | The current application version ID.
+    applicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationInputProcessingConfigurationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationARN', 'deleteApplicationInputProcessingConfigurationResponse_applicationARN' - The Amazon Resource Name (ARN) of the application.
+--
+-- 'applicationVersionId', 'deleteApplicationInputProcessingConfigurationResponse_applicationVersionId' - The current application version ID.
+--
+-- 'httpStatus', 'deleteApplicationInputProcessingConfigurationResponse_httpStatus' - The response's http status code.
+newDeleteApplicationInputProcessingConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteApplicationInputProcessingConfigurationResponse
+newDeleteApplicationInputProcessingConfigurationResponse
+  pHttpStatus_ =
+    DeleteApplicationInputProcessingConfigurationResponse'
+      { applicationARN =
+          Prelude.Nothing,
+        applicationVersionId =
+          Prelude.Nothing,
+        httpStatus =
+          pHttpStatus_
+      }
+
+-- | The Amazon Resource Name (ARN) of the application.
+deleteApplicationInputProcessingConfigurationResponse_applicationARN :: Lens.Lens' DeleteApplicationInputProcessingConfigurationResponse (Prelude.Maybe Prelude.Text)
+deleteApplicationInputProcessingConfigurationResponse_applicationARN = Lens.lens (\DeleteApplicationInputProcessingConfigurationResponse' {applicationARN} -> applicationARN) (\s@DeleteApplicationInputProcessingConfigurationResponse' {} a -> s {applicationARN = a} :: DeleteApplicationInputProcessingConfigurationResponse)
+
+-- | The current application version ID.
+deleteApplicationInputProcessingConfigurationResponse_applicationVersionId :: Lens.Lens' DeleteApplicationInputProcessingConfigurationResponse (Prelude.Maybe Prelude.Natural)
+deleteApplicationInputProcessingConfigurationResponse_applicationVersionId = Lens.lens (\DeleteApplicationInputProcessingConfigurationResponse' {applicationVersionId} -> applicationVersionId) (\s@DeleteApplicationInputProcessingConfigurationResponse' {} a -> s {applicationVersionId = a} :: DeleteApplicationInputProcessingConfigurationResponse)
+
+-- | The response's http status code.
+deleteApplicationInputProcessingConfigurationResponse_httpStatus :: Lens.Lens' DeleteApplicationInputProcessingConfigurationResponse Prelude.Int
+deleteApplicationInputProcessingConfigurationResponse_httpStatus = Lens.lens (\DeleteApplicationInputProcessingConfigurationResponse' {httpStatus} -> httpStatus) (\s@DeleteApplicationInputProcessingConfigurationResponse' {} a -> s {httpStatus = a} :: DeleteApplicationInputProcessingConfigurationResponse)
+
+instance
+  Prelude.NFData
+    DeleteApplicationInputProcessingConfigurationResponse
+  where
+  rnf
+    DeleteApplicationInputProcessingConfigurationResponse' {..} =
+      Prelude.rnf applicationARN
+        `Prelude.seq` Prelude.rnf applicationVersionId
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationOutput.hs b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationOutput.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationOutput.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.KinesisAnalyticsV2.DeleteApplicationOutput
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the output destination configuration from your SQL-based Kinesis
+-- Data Analytics application\'s configuration. Kinesis Data Analytics will
+-- no longer write data from the corresponding in-application stream to the
+-- external output destination.
+module Amazonka.KinesisAnalyticsV2.DeleteApplicationOutput
+  ( -- * Creating a Request
+    DeleteApplicationOutput (..),
+    newDeleteApplicationOutput,
+
+    -- * Request Lenses
+    deleteApplicationOutput_applicationName,
+    deleteApplicationOutput_currentApplicationVersionId,
+    deleteApplicationOutput_outputId,
+
+    -- * Destructuring the Response
+    DeleteApplicationOutputResponse (..),
+    newDeleteApplicationOutputResponse,
+
+    -- * Response Lenses
+    deleteApplicationOutputResponse_applicationARN,
+    deleteApplicationOutputResponse_applicationVersionId,
+    deleteApplicationOutputResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteApplicationOutput' smart constructor.
+data DeleteApplicationOutput = DeleteApplicationOutput'
+  { -- | The application name.
+    applicationName :: Prelude.Text,
+    -- | The application version. You can use the DescribeApplication operation
+    -- to get the current application version. If the version specified is not
+    -- the current version, the @ConcurrentModificationException@ is returned.
+    currentApplicationVersionId :: Prelude.Natural,
+    -- | The ID of the configuration to delete. Each output configuration that is
+    -- added to the application (either when the application is created or
+    -- later) using the AddApplicationOutput operation has a unique ID. You
+    -- need to provide the ID to uniquely identify the output configuration
+    -- that you want to delete from the application configuration. You can use
+    -- the DescribeApplication operation to get the specific @OutputId@.
+    outputId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationOutput' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'deleteApplicationOutput_applicationName' - The application name.
+--
+-- 'currentApplicationVersionId', 'deleteApplicationOutput_currentApplicationVersionId' - The application version. You can use the DescribeApplication operation
+-- to get the current application version. If the version specified is not
+-- the current version, the @ConcurrentModificationException@ is returned.
+--
+-- 'outputId', 'deleteApplicationOutput_outputId' - The ID of the configuration to delete. Each output configuration that is
+-- added to the application (either when the application is created or
+-- later) using the AddApplicationOutput operation has a unique ID. You
+-- need to provide the ID to uniquely identify the output configuration
+-- that you want to delete from the application configuration. You can use
+-- the DescribeApplication operation to get the specific @OutputId@.
+newDeleteApplicationOutput ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'currentApplicationVersionId'
+  Prelude.Natural ->
+  -- | 'outputId'
+  Prelude.Text ->
+  DeleteApplicationOutput
+newDeleteApplicationOutput
+  pApplicationName_
+  pCurrentApplicationVersionId_
+  pOutputId_ =
+    DeleteApplicationOutput'
+      { applicationName =
+          pApplicationName_,
+        currentApplicationVersionId =
+          pCurrentApplicationVersionId_,
+        outputId = pOutputId_
+      }
+
+-- | The application name.
+deleteApplicationOutput_applicationName :: Lens.Lens' DeleteApplicationOutput Prelude.Text
+deleteApplicationOutput_applicationName = Lens.lens (\DeleteApplicationOutput' {applicationName} -> applicationName) (\s@DeleteApplicationOutput' {} a -> s {applicationName = a} :: DeleteApplicationOutput)
+
+-- | The application version. You can use the DescribeApplication operation
+-- to get the current application version. If the version specified is not
+-- the current version, the @ConcurrentModificationException@ is returned.
+deleteApplicationOutput_currentApplicationVersionId :: Lens.Lens' DeleteApplicationOutput Prelude.Natural
+deleteApplicationOutput_currentApplicationVersionId = Lens.lens (\DeleteApplicationOutput' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@DeleteApplicationOutput' {} a -> s {currentApplicationVersionId = a} :: DeleteApplicationOutput)
+
+-- | The ID of the configuration to delete. Each output configuration that is
+-- added to the application (either when the application is created or
+-- later) using the AddApplicationOutput operation has a unique ID. You
+-- need to provide the ID to uniquely identify the output configuration
+-- that you want to delete from the application configuration. You can use
+-- the DescribeApplication operation to get the specific @OutputId@.
+deleteApplicationOutput_outputId :: Lens.Lens' DeleteApplicationOutput Prelude.Text
+deleteApplicationOutput_outputId = Lens.lens (\DeleteApplicationOutput' {outputId} -> outputId) (\s@DeleteApplicationOutput' {} a -> s {outputId = a} :: DeleteApplicationOutput)
+
+instance Core.AWSRequest DeleteApplicationOutput where
+  type
+    AWSResponse DeleteApplicationOutput =
+      DeleteApplicationOutputResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteApplicationOutputResponse'
+            Prelude.<$> (x Data..?> "ApplicationARN")
+            Prelude.<*> (x Data..?> "ApplicationVersionId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteApplicationOutput where
+  hashWithSalt _salt DeleteApplicationOutput' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` currentApplicationVersionId
+      `Prelude.hashWithSalt` outputId
+
+instance Prelude.NFData DeleteApplicationOutput where
+  rnf DeleteApplicationOutput' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf currentApplicationVersionId
+      `Prelude.seq` Prelude.rnf outputId
+
+instance Data.ToHeaders DeleteApplicationOutput where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.DeleteApplicationOutput" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeleteApplicationOutput where
+  toJSON DeleteApplicationOutput' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ( "CurrentApplicationVersionId"
+                  Data..= currentApplicationVersionId
+              ),
+            Prelude.Just ("OutputId" Data..= outputId)
+          ]
+      )
+
+instance Data.ToPath DeleteApplicationOutput where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteApplicationOutput where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteApplicationOutputResponse' smart constructor.
+data DeleteApplicationOutputResponse = DeleteApplicationOutputResponse'
+  { -- | The application Amazon Resource Name (ARN).
+    applicationARN :: Prelude.Maybe Prelude.Text,
+    -- | The current application version ID.
+    applicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationOutputResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationARN', 'deleteApplicationOutputResponse_applicationARN' - The application Amazon Resource Name (ARN).
+--
+-- 'applicationVersionId', 'deleteApplicationOutputResponse_applicationVersionId' - The current application version ID.
+--
+-- 'httpStatus', 'deleteApplicationOutputResponse_httpStatus' - The response's http status code.
+newDeleteApplicationOutputResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteApplicationOutputResponse
+newDeleteApplicationOutputResponse pHttpStatus_ =
+  DeleteApplicationOutputResponse'
+    { applicationARN =
+        Prelude.Nothing,
+      applicationVersionId = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The application Amazon Resource Name (ARN).
+deleteApplicationOutputResponse_applicationARN :: Lens.Lens' DeleteApplicationOutputResponse (Prelude.Maybe Prelude.Text)
+deleteApplicationOutputResponse_applicationARN = Lens.lens (\DeleteApplicationOutputResponse' {applicationARN} -> applicationARN) (\s@DeleteApplicationOutputResponse' {} a -> s {applicationARN = a} :: DeleteApplicationOutputResponse)
+
+-- | The current application version ID.
+deleteApplicationOutputResponse_applicationVersionId :: Lens.Lens' DeleteApplicationOutputResponse (Prelude.Maybe Prelude.Natural)
+deleteApplicationOutputResponse_applicationVersionId = Lens.lens (\DeleteApplicationOutputResponse' {applicationVersionId} -> applicationVersionId) (\s@DeleteApplicationOutputResponse' {} a -> s {applicationVersionId = a} :: DeleteApplicationOutputResponse)
+
+-- | The response's http status code.
+deleteApplicationOutputResponse_httpStatus :: Lens.Lens' DeleteApplicationOutputResponse Prelude.Int
+deleteApplicationOutputResponse_httpStatus = Lens.lens (\DeleteApplicationOutputResponse' {httpStatus} -> httpStatus) (\s@DeleteApplicationOutputResponse' {} a -> s {httpStatus = a} :: DeleteApplicationOutputResponse)
+
+instance
+  Prelude.NFData
+    DeleteApplicationOutputResponse
+  where
+  rnf DeleteApplicationOutputResponse' {..} =
+    Prelude.rnf applicationARN
+      `Prelude.seq` Prelude.rnf applicationVersionId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationReferenceDataSource.hs b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationReferenceDataSource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationReferenceDataSource.hs
@@ -0,0 +1,275 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.DeleteApplicationReferenceDataSource
+-- 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 reference data source configuration from the specified
+-- SQL-based Kinesis Data Analytics application\'s configuration.
+--
+-- If the application is running, Kinesis Data Analytics immediately
+-- removes the in-application table that you created using the
+-- AddApplicationReferenceDataSource operation.
+module Amazonka.KinesisAnalyticsV2.DeleteApplicationReferenceDataSource
+  ( -- * Creating a Request
+    DeleteApplicationReferenceDataSource (..),
+    newDeleteApplicationReferenceDataSource,
+
+    -- * Request Lenses
+    deleteApplicationReferenceDataSource_applicationName,
+    deleteApplicationReferenceDataSource_currentApplicationVersionId,
+    deleteApplicationReferenceDataSource_referenceId,
+
+    -- * Destructuring the Response
+    DeleteApplicationReferenceDataSourceResponse (..),
+    newDeleteApplicationReferenceDataSourceResponse,
+
+    -- * Response Lenses
+    deleteApplicationReferenceDataSourceResponse_applicationARN,
+    deleteApplicationReferenceDataSourceResponse_applicationVersionId,
+    deleteApplicationReferenceDataSourceResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteApplicationReferenceDataSource' smart constructor.
+data DeleteApplicationReferenceDataSource = DeleteApplicationReferenceDataSource'
+  { -- | The name of an existing application.
+    applicationName :: Prelude.Text,
+    -- | The current application version. You can use the DescribeApplication
+    -- operation to get the current application version. If the version
+    -- specified is not the current version, the
+    -- @ConcurrentModificationException@ is returned.
+    currentApplicationVersionId :: Prelude.Natural,
+    -- | The ID of the reference data source. When you add a reference data
+    -- source to your application using the AddApplicationReferenceDataSource,
+    -- Kinesis Data Analytics assigns an ID. You can use the
+    -- DescribeApplication operation to get the reference ID.
+    referenceId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationReferenceDataSource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'deleteApplicationReferenceDataSource_applicationName' - The name of an existing application.
+--
+-- 'currentApplicationVersionId', 'deleteApplicationReferenceDataSource_currentApplicationVersionId' - The current application version. You can use the DescribeApplication
+-- operation to get the current application version. If the version
+-- specified is not the current version, the
+-- @ConcurrentModificationException@ is returned.
+--
+-- 'referenceId', 'deleteApplicationReferenceDataSource_referenceId' - The ID of the reference data source. When you add a reference data
+-- source to your application using the AddApplicationReferenceDataSource,
+-- Kinesis Data Analytics assigns an ID. You can use the
+-- DescribeApplication operation to get the reference ID.
+newDeleteApplicationReferenceDataSource ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'currentApplicationVersionId'
+  Prelude.Natural ->
+  -- | 'referenceId'
+  Prelude.Text ->
+  DeleteApplicationReferenceDataSource
+newDeleteApplicationReferenceDataSource
+  pApplicationName_
+  pCurrentApplicationVersionId_
+  pReferenceId_ =
+    DeleteApplicationReferenceDataSource'
+      { applicationName =
+          pApplicationName_,
+        currentApplicationVersionId =
+          pCurrentApplicationVersionId_,
+        referenceId = pReferenceId_
+      }
+
+-- | The name of an existing application.
+deleteApplicationReferenceDataSource_applicationName :: Lens.Lens' DeleteApplicationReferenceDataSource Prelude.Text
+deleteApplicationReferenceDataSource_applicationName = Lens.lens (\DeleteApplicationReferenceDataSource' {applicationName} -> applicationName) (\s@DeleteApplicationReferenceDataSource' {} a -> s {applicationName = a} :: DeleteApplicationReferenceDataSource)
+
+-- | The current application version. You can use the DescribeApplication
+-- operation to get the current application version. If the version
+-- specified is not the current version, the
+-- @ConcurrentModificationException@ is returned.
+deleteApplicationReferenceDataSource_currentApplicationVersionId :: Lens.Lens' DeleteApplicationReferenceDataSource Prelude.Natural
+deleteApplicationReferenceDataSource_currentApplicationVersionId = Lens.lens (\DeleteApplicationReferenceDataSource' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@DeleteApplicationReferenceDataSource' {} a -> s {currentApplicationVersionId = a} :: DeleteApplicationReferenceDataSource)
+
+-- | The ID of the reference data source. When you add a reference data
+-- source to your application using the AddApplicationReferenceDataSource,
+-- Kinesis Data Analytics assigns an ID. You can use the
+-- DescribeApplication operation to get the reference ID.
+deleteApplicationReferenceDataSource_referenceId :: Lens.Lens' DeleteApplicationReferenceDataSource Prelude.Text
+deleteApplicationReferenceDataSource_referenceId = Lens.lens (\DeleteApplicationReferenceDataSource' {referenceId} -> referenceId) (\s@DeleteApplicationReferenceDataSource' {} a -> s {referenceId = a} :: DeleteApplicationReferenceDataSource)
+
+instance
+  Core.AWSRequest
+    DeleteApplicationReferenceDataSource
+  where
+  type
+    AWSResponse DeleteApplicationReferenceDataSource =
+      DeleteApplicationReferenceDataSourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteApplicationReferenceDataSourceResponse'
+            Prelude.<$> (x Data..?> "ApplicationARN")
+            Prelude.<*> (x Data..?> "ApplicationVersionId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    DeleteApplicationReferenceDataSource
+  where
+  hashWithSalt
+    _salt
+    DeleteApplicationReferenceDataSource' {..} =
+      _salt
+        `Prelude.hashWithSalt` applicationName
+        `Prelude.hashWithSalt` currentApplicationVersionId
+        `Prelude.hashWithSalt` referenceId
+
+instance
+  Prelude.NFData
+    DeleteApplicationReferenceDataSource
+  where
+  rnf DeleteApplicationReferenceDataSource' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf currentApplicationVersionId
+      `Prelude.seq` Prelude.rnf referenceId
+
+instance
+  Data.ToHeaders
+    DeleteApplicationReferenceDataSource
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.DeleteApplicationReferenceDataSource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    DeleteApplicationReferenceDataSource
+  where
+  toJSON DeleteApplicationReferenceDataSource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ( "CurrentApplicationVersionId"
+                  Data..= currentApplicationVersionId
+              ),
+            Prelude.Just ("ReferenceId" Data..= referenceId)
+          ]
+      )
+
+instance
+  Data.ToPath
+    DeleteApplicationReferenceDataSource
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    DeleteApplicationReferenceDataSource
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteApplicationReferenceDataSourceResponse' smart constructor.
+data DeleteApplicationReferenceDataSourceResponse = DeleteApplicationReferenceDataSourceResponse'
+  { -- | The application Amazon Resource Name (ARN).
+    applicationARN :: Prelude.Maybe Prelude.Text,
+    -- | The updated version ID of the application.
+    applicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationReferenceDataSourceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationARN', 'deleteApplicationReferenceDataSourceResponse_applicationARN' - The application Amazon Resource Name (ARN).
+--
+-- 'applicationVersionId', 'deleteApplicationReferenceDataSourceResponse_applicationVersionId' - The updated version ID of the application.
+--
+-- 'httpStatus', 'deleteApplicationReferenceDataSourceResponse_httpStatus' - The response's http status code.
+newDeleteApplicationReferenceDataSourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteApplicationReferenceDataSourceResponse
+newDeleteApplicationReferenceDataSourceResponse
+  pHttpStatus_ =
+    DeleteApplicationReferenceDataSourceResponse'
+      { applicationARN =
+          Prelude.Nothing,
+        applicationVersionId =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The application Amazon Resource Name (ARN).
+deleteApplicationReferenceDataSourceResponse_applicationARN :: Lens.Lens' DeleteApplicationReferenceDataSourceResponse (Prelude.Maybe Prelude.Text)
+deleteApplicationReferenceDataSourceResponse_applicationARN = Lens.lens (\DeleteApplicationReferenceDataSourceResponse' {applicationARN} -> applicationARN) (\s@DeleteApplicationReferenceDataSourceResponse' {} a -> s {applicationARN = a} :: DeleteApplicationReferenceDataSourceResponse)
+
+-- | The updated version ID of the application.
+deleteApplicationReferenceDataSourceResponse_applicationVersionId :: Lens.Lens' DeleteApplicationReferenceDataSourceResponse (Prelude.Maybe Prelude.Natural)
+deleteApplicationReferenceDataSourceResponse_applicationVersionId = Lens.lens (\DeleteApplicationReferenceDataSourceResponse' {applicationVersionId} -> applicationVersionId) (\s@DeleteApplicationReferenceDataSourceResponse' {} a -> s {applicationVersionId = a} :: DeleteApplicationReferenceDataSourceResponse)
+
+-- | The response's http status code.
+deleteApplicationReferenceDataSourceResponse_httpStatus :: Lens.Lens' DeleteApplicationReferenceDataSourceResponse Prelude.Int
+deleteApplicationReferenceDataSourceResponse_httpStatus = Lens.lens (\DeleteApplicationReferenceDataSourceResponse' {httpStatus} -> httpStatus) (\s@DeleteApplicationReferenceDataSourceResponse' {} a -> s {httpStatus = a} :: DeleteApplicationReferenceDataSourceResponse)
+
+instance
+  Prelude.NFData
+    DeleteApplicationReferenceDataSourceResponse
+  where
+  rnf DeleteApplicationReferenceDataSourceResponse' {..} =
+    Prelude.rnf applicationARN
+      `Prelude.seq` Prelude.rnf applicationVersionId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationSnapshot.hs b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationSnapshot.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationSnapshot.hs
@@ -0,0 +1,206 @@
+{-# 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.KinesisAnalyticsV2.DeleteApplicationSnapshot
+-- 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 snapshot of application state.
+module Amazonka.KinesisAnalyticsV2.DeleteApplicationSnapshot
+  ( -- * Creating a Request
+    DeleteApplicationSnapshot (..),
+    newDeleteApplicationSnapshot,
+
+    -- * Request Lenses
+    deleteApplicationSnapshot_applicationName,
+    deleteApplicationSnapshot_snapshotName,
+    deleteApplicationSnapshot_snapshotCreationTimestamp,
+
+    -- * Destructuring the Response
+    DeleteApplicationSnapshotResponse (..),
+    newDeleteApplicationSnapshotResponse,
+
+    -- * Response Lenses
+    deleteApplicationSnapshotResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteApplicationSnapshot' smart constructor.
+data DeleteApplicationSnapshot = DeleteApplicationSnapshot'
+  { -- | The name of an existing application.
+    applicationName :: Prelude.Text,
+    -- | The identifier for the snapshot delete.
+    snapshotName :: Prelude.Text,
+    -- | The creation timestamp of the application snapshot to delete. You can
+    -- retrieve this value using or .
+    snapshotCreationTimestamp :: Data.POSIX
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationSnapshot' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'deleteApplicationSnapshot_applicationName' - The name of an existing application.
+--
+-- 'snapshotName', 'deleteApplicationSnapshot_snapshotName' - The identifier for the snapshot delete.
+--
+-- 'snapshotCreationTimestamp', 'deleteApplicationSnapshot_snapshotCreationTimestamp' - The creation timestamp of the application snapshot to delete. You can
+-- retrieve this value using or .
+newDeleteApplicationSnapshot ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'snapshotName'
+  Prelude.Text ->
+  -- | 'snapshotCreationTimestamp'
+  Prelude.UTCTime ->
+  DeleteApplicationSnapshot
+newDeleteApplicationSnapshot
+  pApplicationName_
+  pSnapshotName_
+  pSnapshotCreationTimestamp_ =
+    DeleteApplicationSnapshot'
+      { applicationName =
+          pApplicationName_,
+        snapshotName = pSnapshotName_,
+        snapshotCreationTimestamp =
+          Data._Time Lens.# pSnapshotCreationTimestamp_
+      }
+
+-- | The name of an existing application.
+deleteApplicationSnapshot_applicationName :: Lens.Lens' DeleteApplicationSnapshot Prelude.Text
+deleteApplicationSnapshot_applicationName = Lens.lens (\DeleteApplicationSnapshot' {applicationName} -> applicationName) (\s@DeleteApplicationSnapshot' {} a -> s {applicationName = a} :: DeleteApplicationSnapshot)
+
+-- | The identifier for the snapshot delete.
+deleteApplicationSnapshot_snapshotName :: Lens.Lens' DeleteApplicationSnapshot Prelude.Text
+deleteApplicationSnapshot_snapshotName = Lens.lens (\DeleteApplicationSnapshot' {snapshotName} -> snapshotName) (\s@DeleteApplicationSnapshot' {} a -> s {snapshotName = a} :: DeleteApplicationSnapshot)
+
+-- | The creation timestamp of the application snapshot to delete. You can
+-- retrieve this value using or .
+deleteApplicationSnapshot_snapshotCreationTimestamp :: Lens.Lens' DeleteApplicationSnapshot Prelude.UTCTime
+deleteApplicationSnapshot_snapshotCreationTimestamp = Lens.lens (\DeleteApplicationSnapshot' {snapshotCreationTimestamp} -> snapshotCreationTimestamp) (\s@DeleteApplicationSnapshot' {} a -> s {snapshotCreationTimestamp = a} :: DeleteApplicationSnapshot) Prelude.. Data._Time
+
+instance Core.AWSRequest DeleteApplicationSnapshot where
+  type
+    AWSResponse DeleteApplicationSnapshot =
+      DeleteApplicationSnapshotResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DeleteApplicationSnapshotResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteApplicationSnapshot where
+  hashWithSalt _salt DeleteApplicationSnapshot' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` snapshotName
+      `Prelude.hashWithSalt` snapshotCreationTimestamp
+
+instance Prelude.NFData DeleteApplicationSnapshot where
+  rnf DeleteApplicationSnapshot' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf snapshotName
+      `Prelude.seq` Prelude.rnf snapshotCreationTimestamp
+
+instance Data.ToHeaders DeleteApplicationSnapshot where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.DeleteApplicationSnapshot" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeleteApplicationSnapshot where
+  toJSON DeleteApplicationSnapshot' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just ("SnapshotName" Data..= snapshotName),
+            Prelude.Just
+              ( "SnapshotCreationTimestamp"
+                  Data..= snapshotCreationTimestamp
+              )
+          ]
+      )
+
+instance Data.ToPath DeleteApplicationSnapshot where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteApplicationSnapshot where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteApplicationSnapshotResponse' smart constructor.
+data DeleteApplicationSnapshotResponse = DeleteApplicationSnapshotResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationSnapshotResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'deleteApplicationSnapshotResponse_httpStatus' - The response's http status code.
+newDeleteApplicationSnapshotResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteApplicationSnapshotResponse
+newDeleteApplicationSnapshotResponse pHttpStatus_ =
+  DeleteApplicationSnapshotResponse'
+    { httpStatus =
+        pHttpStatus_
+    }
+
+-- | The response's http status code.
+deleteApplicationSnapshotResponse_httpStatus :: Lens.Lens' DeleteApplicationSnapshotResponse Prelude.Int
+deleteApplicationSnapshotResponse_httpStatus = Lens.lens (\DeleteApplicationSnapshotResponse' {httpStatus} -> httpStatus) (\s@DeleteApplicationSnapshotResponse' {} a -> s {httpStatus = a} :: DeleteApplicationSnapshotResponse)
+
+instance
+  Prelude.NFData
+    DeleteApplicationSnapshotResponse
+  where
+  rnf DeleteApplicationSnapshotResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationVpcConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationVpcConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/DeleteApplicationVpcConfiguration.hs
@@ -0,0 +1,290 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.DeleteApplicationVpcConfiguration
+-- 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 VPC configuration from a Kinesis Data Analytics application.
+module Amazonka.KinesisAnalyticsV2.DeleteApplicationVpcConfiguration
+  ( -- * Creating a Request
+    DeleteApplicationVpcConfiguration (..),
+    newDeleteApplicationVpcConfiguration,
+
+    -- * Request Lenses
+    deleteApplicationVpcConfiguration_conditionalToken,
+    deleteApplicationVpcConfiguration_currentApplicationVersionId,
+    deleteApplicationVpcConfiguration_applicationName,
+    deleteApplicationVpcConfiguration_vpcConfigurationId,
+
+    -- * Destructuring the Response
+    DeleteApplicationVpcConfigurationResponse (..),
+    newDeleteApplicationVpcConfigurationResponse,
+
+    -- * Response Lenses
+    deleteApplicationVpcConfigurationResponse_applicationARN,
+    deleteApplicationVpcConfigurationResponse_applicationVersionId,
+    deleteApplicationVpcConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteApplicationVpcConfiguration' smart constructor.
+data DeleteApplicationVpcConfiguration = DeleteApplicationVpcConfiguration'
+  { -- | A value you use to implement strong concurrency for application updates.
+    -- You must provide the @CurrentApplicationVersionId@ or the
+    -- @ConditionalToken@. You get the application\'s current
+    -- @ConditionalToken@ using DescribeApplication. For better concurrency
+    -- support, use the @ConditionalToken@ parameter instead of
+    -- @CurrentApplicationVersionId@.
+    conditionalToken :: Prelude.Maybe Prelude.Text,
+    -- | The current application version ID. You must provide the
+    -- @CurrentApplicationVersionId@ or the @ConditionalToken@. You can
+    -- retrieve the application version ID using DescribeApplication. For
+    -- better concurrency support, use the @ConditionalToken@ parameter instead
+    -- of @CurrentApplicationVersionId@.
+    currentApplicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | The name of an existing application.
+    applicationName :: Prelude.Text,
+    -- | The ID of the VPC configuration to delete.
+    vpcConfigurationId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationVpcConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'conditionalToken', 'deleteApplicationVpcConfiguration_conditionalToken' - A value you use to implement strong concurrency for application updates.
+-- You must provide the @CurrentApplicationVersionId@ or the
+-- @ConditionalToken@. You get the application\'s current
+-- @ConditionalToken@ using DescribeApplication. For better concurrency
+-- support, use the @ConditionalToken@ parameter instead of
+-- @CurrentApplicationVersionId@.
+--
+-- 'currentApplicationVersionId', 'deleteApplicationVpcConfiguration_currentApplicationVersionId' - The current application version ID. You must provide the
+-- @CurrentApplicationVersionId@ or the @ConditionalToken@. You can
+-- retrieve the application version ID using DescribeApplication. For
+-- better concurrency support, use the @ConditionalToken@ parameter instead
+-- of @CurrentApplicationVersionId@.
+--
+-- 'applicationName', 'deleteApplicationVpcConfiguration_applicationName' - The name of an existing application.
+--
+-- 'vpcConfigurationId', 'deleteApplicationVpcConfiguration_vpcConfigurationId' - The ID of the VPC configuration to delete.
+newDeleteApplicationVpcConfiguration ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'vpcConfigurationId'
+  Prelude.Text ->
+  DeleteApplicationVpcConfiguration
+newDeleteApplicationVpcConfiguration
+  pApplicationName_
+  pVpcConfigurationId_ =
+    DeleteApplicationVpcConfiguration'
+      { conditionalToken =
+          Prelude.Nothing,
+        currentApplicationVersionId =
+          Prelude.Nothing,
+        applicationName = pApplicationName_,
+        vpcConfigurationId =
+          pVpcConfigurationId_
+      }
+
+-- | A value you use to implement strong concurrency for application updates.
+-- You must provide the @CurrentApplicationVersionId@ or the
+-- @ConditionalToken@. You get the application\'s current
+-- @ConditionalToken@ using DescribeApplication. For better concurrency
+-- support, use the @ConditionalToken@ parameter instead of
+-- @CurrentApplicationVersionId@.
+deleteApplicationVpcConfiguration_conditionalToken :: Lens.Lens' DeleteApplicationVpcConfiguration (Prelude.Maybe Prelude.Text)
+deleteApplicationVpcConfiguration_conditionalToken = Lens.lens (\DeleteApplicationVpcConfiguration' {conditionalToken} -> conditionalToken) (\s@DeleteApplicationVpcConfiguration' {} a -> s {conditionalToken = a} :: DeleteApplicationVpcConfiguration)
+
+-- | The current application version ID. You must provide the
+-- @CurrentApplicationVersionId@ or the @ConditionalToken@. You can
+-- retrieve the application version ID using DescribeApplication. For
+-- better concurrency support, use the @ConditionalToken@ parameter instead
+-- of @CurrentApplicationVersionId@.
+deleteApplicationVpcConfiguration_currentApplicationVersionId :: Lens.Lens' DeleteApplicationVpcConfiguration (Prelude.Maybe Prelude.Natural)
+deleteApplicationVpcConfiguration_currentApplicationVersionId = Lens.lens (\DeleteApplicationVpcConfiguration' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@DeleteApplicationVpcConfiguration' {} a -> s {currentApplicationVersionId = a} :: DeleteApplicationVpcConfiguration)
+
+-- | The name of an existing application.
+deleteApplicationVpcConfiguration_applicationName :: Lens.Lens' DeleteApplicationVpcConfiguration Prelude.Text
+deleteApplicationVpcConfiguration_applicationName = Lens.lens (\DeleteApplicationVpcConfiguration' {applicationName} -> applicationName) (\s@DeleteApplicationVpcConfiguration' {} a -> s {applicationName = a} :: DeleteApplicationVpcConfiguration)
+
+-- | The ID of the VPC configuration to delete.
+deleteApplicationVpcConfiguration_vpcConfigurationId :: Lens.Lens' DeleteApplicationVpcConfiguration Prelude.Text
+deleteApplicationVpcConfiguration_vpcConfigurationId = Lens.lens (\DeleteApplicationVpcConfiguration' {vpcConfigurationId} -> vpcConfigurationId) (\s@DeleteApplicationVpcConfiguration' {} a -> s {vpcConfigurationId = a} :: DeleteApplicationVpcConfiguration)
+
+instance
+  Core.AWSRequest
+    DeleteApplicationVpcConfiguration
+  where
+  type
+    AWSResponse DeleteApplicationVpcConfiguration =
+      DeleteApplicationVpcConfigurationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteApplicationVpcConfigurationResponse'
+            Prelude.<$> (x Data..?> "ApplicationARN")
+            Prelude.<*> (x Data..?> "ApplicationVersionId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    DeleteApplicationVpcConfiguration
+  where
+  hashWithSalt
+    _salt
+    DeleteApplicationVpcConfiguration' {..} =
+      _salt
+        `Prelude.hashWithSalt` conditionalToken
+        `Prelude.hashWithSalt` currentApplicationVersionId
+        `Prelude.hashWithSalt` applicationName
+        `Prelude.hashWithSalt` vpcConfigurationId
+
+instance
+  Prelude.NFData
+    DeleteApplicationVpcConfiguration
+  where
+  rnf DeleteApplicationVpcConfiguration' {..} =
+    Prelude.rnf conditionalToken
+      `Prelude.seq` Prelude.rnf currentApplicationVersionId
+      `Prelude.seq` Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf vpcConfigurationId
+
+instance
+  Data.ToHeaders
+    DeleteApplicationVpcConfiguration
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.DeleteApplicationVpcConfiguration" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    DeleteApplicationVpcConfiguration
+  where
+  toJSON DeleteApplicationVpcConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ConditionalToken" Data..=)
+              Prelude.<$> conditionalToken,
+            ("CurrentApplicationVersionId" Data..=)
+              Prelude.<$> currentApplicationVersionId,
+            Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ("VpcConfigurationId" Data..= vpcConfigurationId)
+          ]
+      )
+
+instance
+  Data.ToPath
+    DeleteApplicationVpcConfiguration
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    DeleteApplicationVpcConfiguration
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteApplicationVpcConfigurationResponse' smart constructor.
+data DeleteApplicationVpcConfigurationResponse = DeleteApplicationVpcConfigurationResponse'
+  { -- | The ARN of the Kinesis Data Analytics application.
+    applicationARN :: Prelude.Maybe Prelude.Text,
+    -- | The updated version ID of the application.
+    applicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApplicationVpcConfigurationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationARN', 'deleteApplicationVpcConfigurationResponse_applicationARN' - The ARN of the Kinesis Data Analytics application.
+--
+-- 'applicationVersionId', 'deleteApplicationVpcConfigurationResponse_applicationVersionId' - The updated version ID of the application.
+--
+-- 'httpStatus', 'deleteApplicationVpcConfigurationResponse_httpStatus' - The response's http status code.
+newDeleteApplicationVpcConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteApplicationVpcConfigurationResponse
+newDeleteApplicationVpcConfigurationResponse
+  pHttpStatus_ =
+    DeleteApplicationVpcConfigurationResponse'
+      { applicationARN =
+          Prelude.Nothing,
+        applicationVersionId =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The ARN of the Kinesis Data Analytics application.
+deleteApplicationVpcConfigurationResponse_applicationARN :: Lens.Lens' DeleteApplicationVpcConfigurationResponse (Prelude.Maybe Prelude.Text)
+deleteApplicationVpcConfigurationResponse_applicationARN = Lens.lens (\DeleteApplicationVpcConfigurationResponse' {applicationARN} -> applicationARN) (\s@DeleteApplicationVpcConfigurationResponse' {} a -> s {applicationARN = a} :: DeleteApplicationVpcConfigurationResponse)
+
+-- | The updated version ID of the application.
+deleteApplicationVpcConfigurationResponse_applicationVersionId :: Lens.Lens' DeleteApplicationVpcConfigurationResponse (Prelude.Maybe Prelude.Natural)
+deleteApplicationVpcConfigurationResponse_applicationVersionId = Lens.lens (\DeleteApplicationVpcConfigurationResponse' {applicationVersionId} -> applicationVersionId) (\s@DeleteApplicationVpcConfigurationResponse' {} a -> s {applicationVersionId = a} :: DeleteApplicationVpcConfigurationResponse)
+
+-- | The response's http status code.
+deleteApplicationVpcConfigurationResponse_httpStatus :: Lens.Lens' DeleteApplicationVpcConfigurationResponse Prelude.Int
+deleteApplicationVpcConfigurationResponse_httpStatus = Lens.lens (\DeleteApplicationVpcConfigurationResponse' {httpStatus} -> httpStatus) (\s@DeleteApplicationVpcConfigurationResponse' {} a -> s {httpStatus = a} :: DeleteApplicationVpcConfigurationResponse)
+
+instance
+  Prelude.NFData
+    DeleteApplicationVpcConfigurationResponse
+  where
+  rnf DeleteApplicationVpcConfigurationResponse' {..} =
+    Prelude.rnf applicationARN
+      `Prelude.seq` Prelude.rnf applicationVersionId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/DescribeApplication.hs b/gen/Amazonka/KinesisAnalyticsV2/DescribeApplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/DescribeApplication.hs
@@ -0,0 +1,202 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.DescribeApplication
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about a specific Kinesis Data Analytics application.
+--
+-- If you want to retrieve a list of all applications in your account, use
+-- the ListApplications operation.
+module Amazonka.KinesisAnalyticsV2.DescribeApplication
+  ( -- * Creating a Request
+    DescribeApplication (..),
+    newDescribeApplication,
+
+    -- * Request Lenses
+    describeApplication_includeAdditionalDetails,
+    describeApplication_applicationName,
+
+    -- * Destructuring the Response
+    DescribeApplicationResponse (..),
+    newDescribeApplicationResponse,
+
+    -- * Response Lenses
+    describeApplicationResponse_httpStatus,
+    describeApplicationResponse_applicationDetail,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeApplication' smart constructor.
+data DescribeApplication = DescribeApplication'
+  { -- | Displays verbose information about a Kinesis Data Analytics application,
+    -- including the application\'s job plan.
+    includeAdditionalDetails :: Prelude.Maybe Prelude.Bool,
+    -- | The name of the application.
+    applicationName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeApplication' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'includeAdditionalDetails', 'describeApplication_includeAdditionalDetails' - Displays verbose information about a Kinesis Data Analytics application,
+-- including the application\'s job plan.
+--
+-- 'applicationName', 'describeApplication_applicationName' - The name of the application.
+newDescribeApplication ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  DescribeApplication
+newDescribeApplication pApplicationName_ =
+  DescribeApplication'
+    { includeAdditionalDetails =
+        Prelude.Nothing,
+      applicationName = pApplicationName_
+    }
+
+-- | Displays verbose information about a Kinesis Data Analytics application,
+-- including the application\'s job plan.
+describeApplication_includeAdditionalDetails :: Lens.Lens' DescribeApplication (Prelude.Maybe Prelude.Bool)
+describeApplication_includeAdditionalDetails = Lens.lens (\DescribeApplication' {includeAdditionalDetails} -> includeAdditionalDetails) (\s@DescribeApplication' {} a -> s {includeAdditionalDetails = a} :: DescribeApplication)
+
+-- | The name of the application.
+describeApplication_applicationName :: Lens.Lens' DescribeApplication Prelude.Text
+describeApplication_applicationName = Lens.lens (\DescribeApplication' {applicationName} -> applicationName) (\s@DescribeApplication' {} a -> s {applicationName = a} :: DescribeApplication)
+
+instance Core.AWSRequest DescribeApplication where
+  type
+    AWSResponse DescribeApplication =
+      DescribeApplicationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DescribeApplicationResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "ApplicationDetail")
+      )
+
+instance Prelude.Hashable DescribeApplication where
+  hashWithSalt _salt DescribeApplication' {..} =
+    _salt
+      `Prelude.hashWithSalt` includeAdditionalDetails
+      `Prelude.hashWithSalt` applicationName
+
+instance Prelude.NFData DescribeApplication where
+  rnf DescribeApplication' {..} =
+    Prelude.rnf includeAdditionalDetails
+      `Prelude.seq` Prelude.rnf applicationName
+
+instance Data.ToHeaders DescribeApplication where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.DescribeApplication" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DescribeApplication where
+  toJSON DescribeApplication' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("IncludeAdditionalDetails" Data..=)
+              Prelude.<$> includeAdditionalDetails,
+            Prelude.Just
+              ("ApplicationName" Data..= applicationName)
+          ]
+      )
+
+instance Data.ToPath DescribeApplication where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DescribeApplication where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDescribeApplicationResponse' smart constructor.
+data DescribeApplicationResponse = DescribeApplicationResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | Provides a description of the application, such as the application\'s
+    -- Amazon Resource Name (ARN), status, and latest version.
+    applicationDetail :: ApplicationDetail
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeApplicationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'describeApplicationResponse_httpStatus' - The response's http status code.
+--
+-- 'applicationDetail', 'describeApplicationResponse_applicationDetail' - Provides a description of the application, such as the application\'s
+-- Amazon Resource Name (ARN), status, and latest version.
+newDescribeApplicationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'applicationDetail'
+  ApplicationDetail ->
+  DescribeApplicationResponse
+newDescribeApplicationResponse
+  pHttpStatus_
+  pApplicationDetail_ =
+    DescribeApplicationResponse'
+      { httpStatus =
+          pHttpStatus_,
+        applicationDetail = pApplicationDetail_
+      }
+
+-- | The response's http status code.
+describeApplicationResponse_httpStatus :: Lens.Lens' DescribeApplicationResponse Prelude.Int
+describeApplicationResponse_httpStatus = Lens.lens (\DescribeApplicationResponse' {httpStatus} -> httpStatus) (\s@DescribeApplicationResponse' {} a -> s {httpStatus = a} :: DescribeApplicationResponse)
+
+-- | Provides a description of the application, such as the application\'s
+-- Amazon Resource Name (ARN), status, and latest version.
+describeApplicationResponse_applicationDetail :: Lens.Lens' DescribeApplicationResponse ApplicationDetail
+describeApplicationResponse_applicationDetail = Lens.lens (\DescribeApplicationResponse' {applicationDetail} -> applicationDetail) (\s@DescribeApplicationResponse' {} a -> s {applicationDetail = a} :: DescribeApplicationResponse)
+
+instance Prelude.NFData DescribeApplicationResponse where
+  rnf DescribeApplicationResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf applicationDetail
diff --git a/gen/Amazonka/KinesisAnalyticsV2/DescribeApplicationSnapshot.hs b/gen/Amazonka/KinesisAnalyticsV2/DescribeApplicationSnapshot.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/DescribeApplicationSnapshot.hs
@@ -0,0 +1,202 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.DescribeApplicationSnapshot
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about a snapshot of application state data.
+module Amazonka.KinesisAnalyticsV2.DescribeApplicationSnapshot
+  ( -- * Creating a Request
+    DescribeApplicationSnapshot (..),
+    newDescribeApplicationSnapshot,
+
+    -- * Request Lenses
+    describeApplicationSnapshot_applicationName,
+    describeApplicationSnapshot_snapshotName,
+
+    -- * Destructuring the Response
+    DescribeApplicationSnapshotResponse (..),
+    newDescribeApplicationSnapshotResponse,
+
+    -- * Response Lenses
+    describeApplicationSnapshotResponse_httpStatus,
+    describeApplicationSnapshotResponse_snapshotDetails,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeApplicationSnapshot' smart constructor.
+data DescribeApplicationSnapshot = DescribeApplicationSnapshot'
+  { -- | The name of an existing application.
+    applicationName :: Prelude.Text,
+    -- | The identifier of an application snapshot. You can retrieve this value
+    -- using .
+    snapshotName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeApplicationSnapshot' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'describeApplicationSnapshot_applicationName' - The name of an existing application.
+--
+-- 'snapshotName', 'describeApplicationSnapshot_snapshotName' - The identifier of an application snapshot. You can retrieve this value
+-- using .
+newDescribeApplicationSnapshot ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'snapshotName'
+  Prelude.Text ->
+  DescribeApplicationSnapshot
+newDescribeApplicationSnapshot
+  pApplicationName_
+  pSnapshotName_ =
+    DescribeApplicationSnapshot'
+      { applicationName =
+          pApplicationName_,
+        snapshotName = pSnapshotName_
+      }
+
+-- | The name of an existing application.
+describeApplicationSnapshot_applicationName :: Lens.Lens' DescribeApplicationSnapshot Prelude.Text
+describeApplicationSnapshot_applicationName = Lens.lens (\DescribeApplicationSnapshot' {applicationName} -> applicationName) (\s@DescribeApplicationSnapshot' {} a -> s {applicationName = a} :: DescribeApplicationSnapshot)
+
+-- | The identifier of an application snapshot. You can retrieve this value
+-- using .
+describeApplicationSnapshot_snapshotName :: Lens.Lens' DescribeApplicationSnapshot Prelude.Text
+describeApplicationSnapshot_snapshotName = Lens.lens (\DescribeApplicationSnapshot' {snapshotName} -> snapshotName) (\s@DescribeApplicationSnapshot' {} a -> s {snapshotName = a} :: DescribeApplicationSnapshot)
+
+instance Core.AWSRequest DescribeApplicationSnapshot where
+  type
+    AWSResponse DescribeApplicationSnapshot =
+      DescribeApplicationSnapshotResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DescribeApplicationSnapshotResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "SnapshotDetails")
+      )
+
+instance Prelude.Hashable DescribeApplicationSnapshot where
+  hashWithSalt _salt DescribeApplicationSnapshot' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` snapshotName
+
+instance Prelude.NFData DescribeApplicationSnapshot where
+  rnf DescribeApplicationSnapshot' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf snapshotName
+
+instance Data.ToHeaders DescribeApplicationSnapshot where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.DescribeApplicationSnapshot" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DescribeApplicationSnapshot where
+  toJSON DescribeApplicationSnapshot' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just ("SnapshotName" Data..= snapshotName)
+          ]
+      )
+
+instance Data.ToPath DescribeApplicationSnapshot where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DescribeApplicationSnapshot where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDescribeApplicationSnapshotResponse' smart constructor.
+data DescribeApplicationSnapshotResponse = DescribeApplicationSnapshotResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | An object containing information about the application snapshot.
+    snapshotDetails :: SnapshotDetails
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeApplicationSnapshotResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'describeApplicationSnapshotResponse_httpStatus' - The response's http status code.
+--
+-- 'snapshotDetails', 'describeApplicationSnapshotResponse_snapshotDetails' - An object containing information about the application snapshot.
+newDescribeApplicationSnapshotResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'snapshotDetails'
+  SnapshotDetails ->
+  DescribeApplicationSnapshotResponse
+newDescribeApplicationSnapshotResponse
+  pHttpStatus_
+  pSnapshotDetails_ =
+    DescribeApplicationSnapshotResponse'
+      { httpStatus =
+          pHttpStatus_,
+        snapshotDetails = pSnapshotDetails_
+      }
+
+-- | The response's http status code.
+describeApplicationSnapshotResponse_httpStatus :: Lens.Lens' DescribeApplicationSnapshotResponse Prelude.Int
+describeApplicationSnapshotResponse_httpStatus = Lens.lens (\DescribeApplicationSnapshotResponse' {httpStatus} -> httpStatus) (\s@DescribeApplicationSnapshotResponse' {} a -> s {httpStatus = a} :: DescribeApplicationSnapshotResponse)
+
+-- | An object containing information about the application snapshot.
+describeApplicationSnapshotResponse_snapshotDetails :: Lens.Lens' DescribeApplicationSnapshotResponse SnapshotDetails
+describeApplicationSnapshotResponse_snapshotDetails = Lens.lens (\DescribeApplicationSnapshotResponse' {snapshotDetails} -> snapshotDetails) (\s@DescribeApplicationSnapshotResponse' {} a -> s {snapshotDetails = a} :: DescribeApplicationSnapshotResponse)
+
+instance
+  Prelude.NFData
+    DescribeApplicationSnapshotResponse
+  where
+  rnf DescribeApplicationSnapshotResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf snapshotDetails
diff --git a/gen/Amazonka/KinesisAnalyticsV2/DescribeApplicationVersion.hs b/gen/Amazonka/KinesisAnalyticsV2/DescribeApplicationVersion.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/DescribeApplicationVersion.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.KinesisAnalyticsV2.DescribeApplicationVersion
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Provides a detailed description of a specified version of the
+-- application. To see a list of all the versions of an application, invoke
+-- the ListApplicationVersions operation.
+--
+-- This operation is supported only for Amazon Kinesis Data Analytics for
+-- Apache Flink.
+module Amazonka.KinesisAnalyticsV2.DescribeApplicationVersion
+  ( -- * Creating a Request
+    DescribeApplicationVersion (..),
+    newDescribeApplicationVersion,
+
+    -- * Request Lenses
+    describeApplicationVersion_applicationName,
+    describeApplicationVersion_applicationVersionId,
+
+    -- * Destructuring the Response
+    DescribeApplicationVersionResponse (..),
+    newDescribeApplicationVersionResponse,
+
+    -- * Response Lenses
+    describeApplicationVersionResponse_applicationVersionDetail,
+    describeApplicationVersionResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeApplicationVersion' smart constructor.
+data DescribeApplicationVersion = DescribeApplicationVersion'
+  { -- | The name of the application for which you want to get the version
+    -- description.
+    applicationName :: Prelude.Text,
+    -- | The ID of the application version for which you want to get the
+    -- description.
+    applicationVersionId :: Prelude.Natural
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeApplicationVersion' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'describeApplicationVersion_applicationName' - The name of the application for which you want to get the version
+-- description.
+--
+-- 'applicationVersionId', 'describeApplicationVersion_applicationVersionId' - The ID of the application version for which you want to get the
+-- description.
+newDescribeApplicationVersion ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'applicationVersionId'
+  Prelude.Natural ->
+  DescribeApplicationVersion
+newDescribeApplicationVersion
+  pApplicationName_
+  pApplicationVersionId_ =
+    DescribeApplicationVersion'
+      { applicationName =
+          pApplicationName_,
+        applicationVersionId = pApplicationVersionId_
+      }
+
+-- | The name of the application for which you want to get the version
+-- description.
+describeApplicationVersion_applicationName :: Lens.Lens' DescribeApplicationVersion Prelude.Text
+describeApplicationVersion_applicationName = Lens.lens (\DescribeApplicationVersion' {applicationName} -> applicationName) (\s@DescribeApplicationVersion' {} a -> s {applicationName = a} :: DescribeApplicationVersion)
+
+-- | The ID of the application version for which you want to get the
+-- description.
+describeApplicationVersion_applicationVersionId :: Lens.Lens' DescribeApplicationVersion Prelude.Natural
+describeApplicationVersion_applicationVersionId = Lens.lens (\DescribeApplicationVersion' {applicationVersionId} -> applicationVersionId) (\s@DescribeApplicationVersion' {} a -> s {applicationVersionId = a} :: DescribeApplicationVersion)
+
+instance Core.AWSRequest DescribeApplicationVersion where
+  type
+    AWSResponse DescribeApplicationVersion =
+      DescribeApplicationVersionResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DescribeApplicationVersionResponse'
+            Prelude.<$> (x Data..?> "ApplicationVersionDetail")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DescribeApplicationVersion where
+  hashWithSalt _salt DescribeApplicationVersion' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` applicationVersionId
+
+instance Prelude.NFData DescribeApplicationVersion where
+  rnf DescribeApplicationVersion' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf applicationVersionId
+
+instance Data.ToHeaders DescribeApplicationVersion where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.DescribeApplicationVersion" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DescribeApplicationVersion where
+  toJSON DescribeApplicationVersion' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ( "ApplicationVersionId"
+                  Data..= applicationVersionId
+              )
+          ]
+      )
+
+instance Data.ToPath DescribeApplicationVersion where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DescribeApplicationVersion where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDescribeApplicationVersionResponse' smart constructor.
+data DescribeApplicationVersionResponse = DescribeApplicationVersionResponse'
+  { applicationVersionDetail :: Prelude.Maybe ApplicationDetail,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeApplicationVersionResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationVersionDetail', 'describeApplicationVersionResponse_applicationVersionDetail' - Undocumented member.
+--
+-- 'httpStatus', 'describeApplicationVersionResponse_httpStatus' - The response's http status code.
+newDescribeApplicationVersionResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribeApplicationVersionResponse
+newDescribeApplicationVersionResponse pHttpStatus_ =
+  DescribeApplicationVersionResponse'
+    { applicationVersionDetail =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Undocumented member.
+describeApplicationVersionResponse_applicationVersionDetail :: Lens.Lens' DescribeApplicationVersionResponse (Prelude.Maybe ApplicationDetail)
+describeApplicationVersionResponse_applicationVersionDetail = Lens.lens (\DescribeApplicationVersionResponse' {applicationVersionDetail} -> applicationVersionDetail) (\s@DescribeApplicationVersionResponse' {} a -> s {applicationVersionDetail = a} :: DescribeApplicationVersionResponse)
+
+-- | The response's http status code.
+describeApplicationVersionResponse_httpStatus :: Lens.Lens' DescribeApplicationVersionResponse Prelude.Int
+describeApplicationVersionResponse_httpStatus = Lens.lens (\DescribeApplicationVersionResponse' {httpStatus} -> httpStatus) (\s@DescribeApplicationVersionResponse' {} a -> s {httpStatus = a} :: DescribeApplicationVersionResponse)
+
+instance
+  Prelude.NFData
+    DescribeApplicationVersionResponse
+  where
+  rnf DescribeApplicationVersionResponse' {..} =
+    Prelude.rnf applicationVersionDetail
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/DiscoverInputSchema.hs b/gen/Amazonka/KinesisAnalyticsV2/DiscoverInputSchema.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/DiscoverInputSchema.hs
@@ -0,0 +1,307 @@
+{-# 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.KinesisAnalyticsV2.DiscoverInputSchema
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Infers a schema for a SQL-based Kinesis Data Analytics application by
+-- evaluating sample records on the specified streaming source (Kinesis
+-- data stream or Kinesis Data Firehose delivery stream) or Amazon S3
+-- object. In the response, the operation returns the inferred schema and
+-- also the sample records that the operation used to infer the schema.
+--
+-- You can use the inferred schema when configuring a streaming source for
+-- your application. When you create an application using the Kinesis Data
+-- Analytics console, the console uses this operation to infer a schema and
+-- show it in the console user interface.
+module Amazonka.KinesisAnalyticsV2.DiscoverInputSchema
+  ( -- * Creating a Request
+    DiscoverInputSchema (..),
+    newDiscoverInputSchema,
+
+    -- * Request Lenses
+    discoverInputSchema_inputProcessingConfiguration,
+    discoverInputSchema_inputStartingPositionConfiguration,
+    discoverInputSchema_resourceARN,
+    discoverInputSchema_s3Configuration,
+    discoverInputSchema_serviceExecutionRole,
+
+    -- * Destructuring the Response
+    DiscoverInputSchemaResponse (..),
+    newDiscoverInputSchemaResponse,
+
+    -- * Response Lenses
+    discoverInputSchemaResponse_inputSchema,
+    discoverInputSchemaResponse_parsedInputRecords,
+    discoverInputSchemaResponse_processedInputRecords,
+    discoverInputSchemaResponse_rawInputRecords,
+    discoverInputSchemaResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDiscoverInputSchema' smart constructor.
+data DiscoverInputSchema = DiscoverInputSchema'
+  { -- | The InputProcessingConfiguration to use to preprocess the records before
+    -- discovering the schema of the records.
+    inputProcessingConfiguration :: Prelude.Maybe InputProcessingConfiguration,
+    -- | The point at which you want Kinesis Data Analytics to start reading
+    -- records from the specified streaming source discovery purposes.
+    inputStartingPositionConfiguration :: Prelude.Maybe InputStartingPositionConfiguration,
+    -- | The Amazon Resource Name (ARN) of the streaming source.
+    resourceARN :: Prelude.Maybe Prelude.Text,
+    -- | Specify this parameter to discover a schema from data in an Amazon S3
+    -- object.
+    s3Configuration :: Prelude.Maybe S3Configuration,
+    -- | The ARN of the role that is used to access the streaming source.
+    serviceExecutionRole :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DiscoverInputSchema' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inputProcessingConfiguration', 'discoverInputSchema_inputProcessingConfiguration' - The InputProcessingConfiguration to use to preprocess the records before
+-- discovering the schema of the records.
+--
+-- 'inputStartingPositionConfiguration', 'discoverInputSchema_inputStartingPositionConfiguration' - The point at which you want Kinesis Data Analytics to start reading
+-- records from the specified streaming source discovery purposes.
+--
+-- 'resourceARN', 'discoverInputSchema_resourceARN' - The Amazon Resource Name (ARN) of the streaming source.
+--
+-- 's3Configuration', 'discoverInputSchema_s3Configuration' - Specify this parameter to discover a schema from data in an Amazon S3
+-- object.
+--
+-- 'serviceExecutionRole', 'discoverInputSchema_serviceExecutionRole' - The ARN of the role that is used to access the streaming source.
+newDiscoverInputSchema ::
+  -- | 'serviceExecutionRole'
+  Prelude.Text ->
+  DiscoverInputSchema
+newDiscoverInputSchema pServiceExecutionRole_ =
+  DiscoverInputSchema'
+    { inputProcessingConfiguration =
+        Prelude.Nothing,
+      inputStartingPositionConfiguration = Prelude.Nothing,
+      resourceARN = Prelude.Nothing,
+      s3Configuration = Prelude.Nothing,
+      serviceExecutionRole = pServiceExecutionRole_
+    }
+
+-- | The InputProcessingConfiguration to use to preprocess the records before
+-- discovering the schema of the records.
+discoverInputSchema_inputProcessingConfiguration :: Lens.Lens' DiscoverInputSchema (Prelude.Maybe InputProcessingConfiguration)
+discoverInputSchema_inputProcessingConfiguration = Lens.lens (\DiscoverInputSchema' {inputProcessingConfiguration} -> inputProcessingConfiguration) (\s@DiscoverInputSchema' {} a -> s {inputProcessingConfiguration = a} :: DiscoverInputSchema)
+
+-- | The point at which you want Kinesis Data Analytics to start reading
+-- records from the specified streaming source discovery purposes.
+discoverInputSchema_inputStartingPositionConfiguration :: Lens.Lens' DiscoverInputSchema (Prelude.Maybe InputStartingPositionConfiguration)
+discoverInputSchema_inputStartingPositionConfiguration = Lens.lens (\DiscoverInputSchema' {inputStartingPositionConfiguration} -> inputStartingPositionConfiguration) (\s@DiscoverInputSchema' {} a -> s {inputStartingPositionConfiguration = a} :: DiscoverInputSchema)
+
+-- | The Amazon Resource Name (ARN) of the streaming source.
+discoverInputSchema_resourceARN :: Lens.Lens' DiscoverInputSchema (Prelude.Maybe Prelude.Text)
+discoverInputSchema_resourceARN = Lens.lens (\DiscoverInputSchema' {resourceARN} -> resourceARN) (\s@DiscoverInputSchema' {} a -> s {resourceARN = a} :: DiscoverInputSchema)
+
+-- | Specify this parameter to discover a schema from data in an Amazon S3
+-- object.
+discoverInputSchema_s3Configuration :: Lens.Lens' DiscoverInputSchema (Prelude.Maybe S3Configuration)
+discoverInputSchema_s3Configuration = Lens.lens (\DiscoverInputSchema' {s3Configuration} -> s3Configuration) (\s@DiscoverInputSchema' {} a -> s {s3Configuration = a} :: DiscoverInputSchema)
+
+-- | The ARN of the role that is used to access the streaming source.
+discoverInputSchema_serviceExecutionRole :: Lens.Lens' DiscoverInputSchema Prelude.Text
+discoverInputSchema_serviceExecutionRole = Lens.lens (\DiscoverInputSchema' {serviceExecutionRole} -> serviceExecutionRole) (\s@DiscoverInputSchema' {} a -> s {serviceExecutionRole = a} :: DiscoverInputSchema)
+
+instance Core.AWSRequest DiscoverInputSchema where
+  type
+    AWSResponse DiscoverInputSchema =
+      DiscoverInputSchemaResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DiscoverInputSchemaResponse'
+            Prelude.<$> (x Data..?> "InputSchema")
+            Prelude.<*> ( x
+                            Data..?> "ParsedInputRecords"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> ( x
+                            Data..?> "ProcessedInputRecords"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> ( x
+                            Data..?> "RawInputRecords"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DiscoverInputSchema where
+  hashWithSalt _salt DiscoverInputSchema' {..} =
+    _salt
+      `Prelude.hashWithSalt` inputProcessingConfiguration
+      `Prelude.hashWithSalt` inputStartingPositionConfiguration
+      `Prelude.hashWithSalt` resourceARN
+      `Prelude.hashWithSalt` s3Configuration
+      `Prelude.hashWithSalt` serviceExecutionRole
+
+instance Prelude.NFData DiscoverInputSchema where
+  rnf DiscoverInputSchema' {..} =
+    Prelude.rnf inputProcessingConfiguration
+      `Prelude.seq` Prelude.rnf inputStartingPositionConfiguration
+      `Prelude.seq` Prelude.rnf resourceARN
+      `Prelude.seq` Prelude.rnf s3Configuration
+      `Prelude.seq` Prelude.rnf serviceExecutionRole
+
+instance Data.ToHeaders DiscoverInputSchema where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.DiscoverInputSchema" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DiscoverInputSchema where
+  toJSON DiscoverInputSchema' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("InputProcessingConfiguration" Data..=)
+              Prelude.<$> inputProcessingConfiguration,
+            ("InputStartingPositionConfiguration" Data..=)
+              Prelude.<$> inputStartingPositionConfiguration,
+            ("ResourceARN" Data..=) Prelude.<$> resourceARN,
+            ("S3Configuration" Data..=)
+              Prelude.<$> s3Configuration,
+            Prelude.Just
+              ( "ServiceExecutionRole"
+                  Data..= serviceExecutionRole
+              )
+          ]
+      )
+
+instance Data.ToPath DiscoverInputSchema where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DiscoverInputSchema where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDiscoverInputSchemaResponse' smart constructor.
+data DiscoverInputSchemaResponse = DiscoverInputSchemaResponse'
+  { -- | The schema inferred from the streaming source. It identifies the format
+    -- of the data in the streaming source and how each data element maps to
+    -- corresponding columns in the in-application stream that you can create.
+    inputSchema :: Prelude.Maybe SourceSchema,
+    -- | An array of elements, where each element corresponds to a row in a
+    -- stream record (a stream record can have more than one row).
+    parsedInputRecords :: Prelude.Maybe [[Prelude.Text]],
+    -- | The stream data that was modified by the processor specified in the
+    -- @InputProcessingConfiguration@ parameter.
+    processedInputRecords :: Prelude.Maybe [Prelude.Text],
+    -- | The raw stream data that was sampled to infer the schema.
+    rawInputRecords :: 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 'DiscoverInputSchemaResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inputSchema', 'discoverInputSchemaResponse_inputSchema' - The schema inferred from the streaming source. It identifies the format
+-- of the data in the streaming source and how each data element maps to
+-- corresponding columns in the in-application stream that you can create.
+--
+-- 'parsedInputRecords', 'discoverInputSchemaResponse_parsedInputRecords' - An array of elements, where each element corresponds to a row in a
+-- stream record (a stream record can have more than one row).
+--
+-- 'processedInputRecords', 'discoverInputSchemaResponse_processedInputRecords' - The stream data that was modified by the processor specified in the
+-- @InputProcessingConfiguration@ parameter.
+--
+-- 'rawInputRecords', 'discoverInputSchemaResponse_rawInputRecords' - The raw stream data that was sampled to infer the schema.
+--
+-- 'httpStatus', 'discoverInputSchemaResponse_httpStatus' - The response's http status code.
+newDiscoverInputSchemaResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DiscoverInputSchemaResponse
+newDiscoverInputSchemaResponse pHttpStatus_ =
+  DiscoverInputSchemaResponse'
+    { inputSchema =
+        Prelude.Nothing,
+      parsedInputRecords = Prelude.Nothing,
+      processedInputRecords = Prelude.Nothing,
+      rawInputRecords = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The schema inferred from the streaming source. It identifies the format
+-- of the data in the streaming source and how each data element maps to
+-- corresponding columns in the in-application stream that you can create.
+discoverInputSchemaResponse_inputSchema :: Lens.Lens' DiscoverInputSchemaResponse (Prelude.Maybe SourceSchema)
+discoverInputSchemaResponse_inputSchema = Lens.lens (\DiscoverInputSchemaResponse' {inputSchema} -> inputSchema) (\s@DiscoverInputSchemaResponse' {} a -> s {inputSchema = a} :: DiscoverInputSchemaResponse)
+
+-- | An array of elements, where each element corresponds to a row in a
+-- stream record (a stream record can have more than one row).
+discoverInputSchemaResponse_parsedInputRecords :: Lens.Lens' DiscoverInputSchemaResponse (Prelude.Maybe [[Prelude.Text]])
+discoverInputSchemaResponse_parsedInputRecords = Lens.lens (\DiscoverInputSchemaResponse' {parsedInputRecords} -> parsedInputRecords) (\s@DiscoverInputSchemaResponse' {} a -> s {parsedInputRecords = a} :: DiscoverInputSchemaResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The stream data that was modified by the processor specified in the
+-- @InputProcessingConfiguration@ parameter.
+discoverInputSchemaResponse_processedInputRecords :: Lens.Lens' DiscoverInputSchemaResponse (Prelude.Maybe [Prelude.Text])
+discoverInputSchemaResponse_processedInputRecords = Lens.lens (\DiscoverInputSchemaResponse' {processedInputRecords} -> processedInputRecords) (\s@DiscoverInputSchemaResponse' {} a -> s {processedInputRecords = a} :: DiscoverInputSchemaResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The raw stream data that was sampled to infer the schema.
+discoverInputSchemaResponse_rawInputRecords :: Lens.Lens' DiscoverInputSchemaResponse (Prelude.Maybe [Prelude.Text])
+discoverInputSchemaResponse_rawInputRecords = Lens.lens (\DiscoverInputSchemaResponse' {rawInputRecords} -> rawInputRecords) (\s@DiscoverInputSchemaResponse' {} a -> s {rawInputRecords = a} :: DiscoverInputSchemaResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+discoverInputSchemaResponse_httpStatus :: Lens.Lens' DiscoverInputSchemaResponse Prelude.Int
+discoverInputSchemaResponse_httpStatus = Lens.lens (\DiscoverInputSchemaResponse' {httpStatus} -> httpStatus) (\s@DiscoverInputSchemaResponse' {} a -> s {httpStatus = a} :: DiscoverInputSchemaResponse)
+
+instance Prelude.NFData DiscoverInputSchemaResponse where
+  rnf DiscoverInputSchemaResponse' {..} =
+    Prelude.rnf inputSchema
+      `Prelude.seq` Prelude.rnf parsedInputRecords
+      `Prelude.seq` Prelude.rnf processedInputRecords
+      `Prelude.seq` Prelude.rnf rawInputRecords
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Lens.hs b/gen/Amazonka/KinesisAnalyticsV2/Lens.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Lens.hs
@@ -0,0 +1,960 @@
+{-# 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.KinesisAnalyticsV2.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.KinesisAnalyticsV2.Lens
+  ( -- * Operations
+
+    -- ** AddApplicationCloudWatchLoggingOption
+    addApplicationCloudWatchLoggingOption_conditionalToken,
+    addApplicationCloudWatchLoggingOption_currentApplicationVersionId,
+    addApplicationCloudWatchLoggingOption_applicationName,
+    addApplicationCloudWatchLoggingOption_cloudWatchLoggingOption,
+    addApplicationCloudWatchLoggingOptionResponse_applicationARN,
+    addApplicationCloudWatchLoggingOptionResponse_applicationVersionId,
+    addApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions,
+    addApplicationCloudWatchLoggingOptionResponse_httpStatus,
+
+    -- ** AddApplicationInput
+    addApplicationInput_applicationName,
+    addApplicationInput_currentApplicationVersionId,
+    addApplicationInput_input,
+    addApplicationInputResponse_applicationARN,
+    addApplicationInputResponse_applicationVersionId,
+    addApplicationInputResponse_inputDescriptions,
+    addApplicationInputResponse_httpStatus,
+
+    -- ** AddApplicationInputProcessingConfiguration
+    addApplicationInputProcessingConfiguration_applicationName,
+    addApplicationInputProcessingConfiguration_currentApplicationVersionId,
+    addApplicationInputProcessingConfiguration_inputId,
+    addApplicationInputProcessingConfiguration_inputProcessingConfiguration,
+    addApplicationInputProcessingConfigurationResponse_applicationARN,
+    addApplicationInputProcessingConfigurationResponse_applicationVersionId,
+    addApplicationInputProcessingConfigurationResponse_inputId,
+    addApplicationInputProcessingConfigurationResponse_inputProcessingConfigurationDescription,
+    addApplicationInputProcessingConfigurationResponse_httpStatus,
+
+    -- ** AddApplicationOutput
+    addApplicationOutput_applicationName,
+    addApplicationOutput_currentApplicationVersionId,
+    addApplicationOutput_output,
+    addApplicationOutputResponse_applicationARN,
+    addApplicationOutputResponse_applicationVersionId,
+    addApplicationOutputResponse_outputDescriptions,
+    addApplicationOutputResponse_httpStatus,
+
+    -- ** AddApplicationReferenceDataSource
+    addApplicationReferenceDataSource_applicationName,
+    addApplicationReferenceDataSource_currentApplicationVersionId,
+    addApplicationReferenceDataSource_referenceDataSource,
+    addApplicationReferenceDataSourceResponse_applicationARN,
+    addApplicationReferenceDataSourceResponse_applicationVersionId,
+    addApplicationReferenceDataSourceResponse_referenceDataSourceDescriptions,
+    addApplicationReferenceDataSourceResponse_httpStatus,
+
+    -- ** AddApplicationVpcConfiguration
+    addApplicationVpcConfiguration_conditionalToken,
+    addApplicationVpcConfiguration_currentApplicationVersionId,
+    addApplicationVpcConfiguration_applicationName,
+    addApplicationVpcConfiguration_vpcConfiguration,
+    addApplicationVpcConfigurationResponse_applicationARN,
+    addApplicationVpcConfigurationResponse_applicationVersionId,
+    addApplicationVpcConfigurationResponse_vpcConfigurationDescription,
+    addApplicationVpcConfigurationResponse_httpStatus,
+
+    -- ** CreateApplication
+    createApplication_applicationConfiguration,
+    createApplication_applicationDescription,
+    createApplication_applicationMode,
+    createApplication_cloudWatchLoggingOptions,
+    createApplication_tags,
+    createApplication_applicationName,
+    createApplication_runtimeEnvironment,
+    createApplication_serviceExecutionRole,
+    createApplicationResponse_httpStatus,
+    createApplicationResponse_applicationDetail,
+
+    -- ** CreateApplicationPresignedUrl
+    createApplicationPresignedUrl_sessionExpirationDurationInSeconds,
+    createApplicationPresignedUrl_applicationName,
+    createApplicationPresignedUrl_urlType,
+    createApplicationPresignedUrlResponse_authorizedUrl,
+    createApplicationPresignedUrlResponse_httpStatus,
+
+    -- ** CreateApplicationSnapshot
+    createApplicationSnapshot_applicationName,
+    createApplicationSnapshot_snapshotName,
+    createApplicationSnapshotResponse_httpStatus,
+
+    -- ** DeleteApplication
+    deleteApplication_applicationName,
+    deleteApplication_createTimestamp,
+    deleteApplicationResponse_httpStatus,
+
+    -- ** DeleteApplicationCloudWatchLoggingOption
+    deleteApplicationCloudWatchLoggingOption_conditionalToken,
+    deleteApplicationCloudWatchLoggingOption_currentApplicationVersionId,
+    deleteApplicationCloudWatchLoggingOption_applicationName,
+    deleteApplicationCloudWatchLoggingOption_cloudWatchLoggingOptionId,
+    deleteApplicationCloudWatchLoggingOptionResponse_applicationARN,
+    deleteApplicationCloudWatchLoggingOptionResponse_applicationVersionId,
+    deleteApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions,
+    deleteApplicationCloudWatchLoggingOptionResponse_httpStatus,
+
+    -- ** DeleteApplicationInputProcessingConfiguration
+    deleteApplicationInputProcessingConfiguration_applicationName,
+    deleteApplicationInputProcessingConfiguration_currentApplicationVersionId,
+    deleteApplicationInputProcessingConfiguration_inputId,
+    deleteApplicationInputProcessingConfigurationResponse_applicationARN,
+    deleteApplicationInputProcessingConfigurationResponse_applicationVersionId,
+    deleteApplicationInputProcessingConfigurationResponse_httpStatus,
+
+    -- ** DeleteApplicationOutput
+    deleteApplicationOutput_applicationName,
+    deleteApplicationOutput_currentApplicationVersionId,
+    deleteApplicationOutput_outputId,
+    deleteApplicationOutputResponse_applicationARN,
+    deleteApplicationOutputResponse_applicationVersionId,
+    deleteApplicationOutputResponse_httpStatus,
+
+    -- ** DeleteApplicationReferenceDataSource
+    deleteApplicationReferenceDataSource_applicationName,
+    deleteApplicationReferenceDataSource_currentApplicationVersionId,
+    deleteApplicationReferenceDataSource_referenceId,
+    deleteApplicationReferenceDataSourceResponse_applicationARN,
+    deleteApplicationReferenceDataSourceResponse_applicationVersionId,
+    deleteApplicationReferenceDataSourceResponse_httpStatus,
+
+    -- ** DeleteApplicationSnapshot
+    deleteApplicationSnapshot_applicationName,
+    deleteApplicationSnapshot_snapshotName,
+    deleteApplicationSnapshot_snapshotCreationTimestamp,
+    deleteApplicationSnapshotResponse_httpStatus,
+
+    -- ** DeleteApplicationVpcConfiguration
+    deleteApplicationVpcConfiguration_conditionalToken,
+    deleteApplicationVpcConfiguration_currentApplicationVersionId,
+    deleteApplicationVpcConfiguration_applicationName,
+    deleteApplicationVpcConfiguration_vpcConfigurationId,
+    deleteApplicationVpcConfigurationResponse_applicationARN,
+    deleteApplicationVpcConfigurationResponse_applicationVersionId,
+    deleteApplicationVpcConfigurationResponse_httpStatus,
+
+    -- ** DescribeApplication
+    describeApplication_includeAdditionalDetails,
+    describeApplication_applicationName,
+    describeApplicationResponse_httpStatus,
+    describeApplicationResponse_applicationDetail,
+
+    -- ** DescribeApplicationSnapshot
+    describeApplicationSnapshot_applicationName,
+    describeApplicationSnapshot_snapshotName,
+    describeApplicationSnapshotResponse_httpStatus,
+    describeApplicationSnapshotResponse_snapshotDetails,
+
+    -- ** DescribeApplicationVersion
+    describeApplicationVersion_applicationName,
+    describeApplicationVersion_applicationVersionId,
+    describeApplicationVersionResponse_applicationVersionDetail,
+    describeApplicationVersionResponse_httpStatus,
+
+    -- ** DiscoverInputSchema
+    discoverInputSchema_inputProcessingConfiguration,
+    discoverInputSchema_inputStartingPositionConfiguration,
+    discoverInputSchema_resourceARN,
+    discoverInputSchema_s3Configuration,
+    discoverInputSchema_serviceExecutionRole,
+    discoverInputSchemaResponse_inputSchema,
+    discoverInputSchemaResponse_parsedInputRecords,
+    discoverInputSchemaResponse_processedInputRecords,
+    discoverInputSchemaResponse_rawInputRecords,
+    discoverInputSchemaResponse_httpStatus,
+
+    -- ** ListApplicationSnapshots
+    listApplicationSnapshots_limit,
+    listApplicationSnapshots_nextToken,
+    listApplicationSnapshots_applicationName,
+    listApplicationSnapshotsResponse_nextToken,
+    listApplicationSnapshotsResponse_snapshotSummaries,
+    listApplicationSnapshotsResponse_httpStatus,
+
+    -- ** ListApplicationVersions
+    listApplicationVersions_limit,
+    listApplicationVersions_nextToken,
+    listApplicationVersions_applicationName,
+    listApplicationVersionsResponse_applicationVersionSummaries,
+    listApplicationVersionsResponse_nextToken,
+    listApplicationVersionsResponse_httpStatus,
+
+    -- ** ListApplications
+    listApplications_limit,
+    listApplications_nextToken,
+    listApplicationsResponse_nextToken,
+    listApplicationsResponse_httpStatus,
+    listApplicationsResponse_applicationSummaries,
+
+    -- ** ListTagsForResource
+    listTagsForResource_resourceARN,
+    listTagsForResourceResponse_tags,
+    listTagsForResourceResponse_httpStatus,
+
+    -- ** RollbackApplication
+    rollbackApplication_applicationName,
+    rollbackApplication_currentApplicationVersionId,
+    rollbackApplicationResponse_httpStatus,
+    rollbackApplicationResponse_applicationDetail,
+
+    -- ** StartApplication
+    startApplication_runConfiguration,
+    startApplication_applicationName,
+    startApplicationResponse_httpStatus,
+
+    -- ** StopApplication
+    stopApplication_force,
+    stopApplication_applicationName,
+    stopApplicationResponse_httpStatus,
+
+    -- ** TagResource
+    tagResource_resourceARN,
+    tagResource_tags,
+    tagResourceResponse_httpStatus,
+
+    -- ** UntagResource
+    untagResource_resourceARN,
+    untagResource_tagKeys,
+    untagResourceResponse_httpStatus,
+
+    -- ** UpdateApplication
+    updateApplication_applicationConfigurationUpdate,
+    updateApplication_cloudWatchLoggingOptionUpdates,
+    updateApplication_conditionalToken,
+    updateApplication_currentApplicationVersionId,
+    updateApplication_runConfigurationUpdate,
+    updateApplication_serviceExecutionRoleUpdate,
+    updateApplication_applicationName,
+    updateApplicationResponse_httpStatus,
+    updateApplicationResponse_applicationDetail,
+
+    -- ** UpdateApplicationMaintenanceConfiguration
+    updateApplicationMaintenanceConfiguration_applicationName,
+    updateApplicationMaintenanceConfiguration_applicationMaintenanceConfigurationUpdate,
+    updateApplicationMaintenanceConfigurationResponse_applicationARN,
+    updateApplicationMaintenanceConfigurationResponse_applicationMaintenanceConfigurationDescription,
+    updateApplicationMaintenanceConfigurationResponse_httpStatus,
+
+    -- * Types
+
+    -- ** ApplicationCodeConfiguration
+    applicationCodeConfiguration_codeContent,
+    applicationCodeConfiguration_codeContentType,
+
+    -- ** ApplicationCodeConfigurationDescription
+    applicationCodeConfigurationDescription_codeContentDescription,
+    applicationCodeConfigurationDescription_codeContentType,
+
+    -- ** ApplicationCodeConfigurationUpdate
+    applicationCodeConfigurationUpdate_codeContentTypeUpdate,
+    applicationCodeConfigurationUpdate_codeContentUpdate,
+
+    -- ** ApplicationConfiguration
+    applicationConfiguration_applicationCodeConfiguration,
+    applicationConfiguration_applicationSnapshotConfiguration,
+    applicationConfiguration_environmentProperties,
+    applicationConfiguration_flinkApplicationConfiguration,
+    applicationConfiguration_sqlApplicationConfiguration,
+    applicationConfiguration_vpcConfigurations,
+    applicationConfiguration_zeppelinApplicationConfiguration,
+
+    -- ** ApplicationConfigurationDescription
+    applicationConfigurationDescription_applicationCodeConfigurationDescription,
+    applicationConfigurationDescription_applicationSnapshotConfigurationDescription,
+    applicationConfigurationDescription_environmentPropertyDescriptions,
+    applicationConfigurationDescription_flinkApplicationConfigurationDescription,
+    applicationConfigurationDescription_runConfigurationDescription,
+    applicationConfigurationDescription_sqlApplicationConfigurationDescription,
+    applicationConfigurationDescription_vpcConfigurationDescriptions,
+    applicationConfigurationDescription_zeppelinApplicationConfigurationDescription,
+
+    -- ** ApplicationConfigurationUpdate
+    applicationConfigurationUpdate_applicationCodeConfigurationUpdate,
+    applicationConfigurationUpdate_applicationSnapshotConfigurationUpdate,
+    applicationConfigurationUpdate_environmentPropertyUpdates,
+    applicationConfigurationUpdate_flinkApplicationConfigurationUpdate,
+    applicationConfigurationUpdate_sqlApplicationConfigurationUpdate,
+    applicationConfigurationUpdate_vpcConfigurationUpdates,
+    applicationConfigurationUpdate_zeppelinApplicationConfigurationUpdate,
+
+    -- ** ApplicationDetail
+    applicationDetail_applicationConfigurationDescription,
+    applicationDetail_applicationDescription,
+    applicationDetail_applicationMaintenanceConfigurationDescription,
+    applicationDetail_applicationMode,
+    applicationDetail_applicationVersionRolledBackFrom,
+    applicationDetail_applicationVersionRolledBackTo,
+    applicationDetail_applicationVersionUpdatedFrom,
+    applicationDetail_cloudWatchLoggingOptionDescriptions,
+    applicationDetail_conditionalToken,
+    applicationDetail_createTimestamp,
+    applicationDetail_lastUpdateTimestamp,
+    applicationDetail_serviceExecutionRole,
+    applicationDetail_applicationARN,
+    applicationDetail_applicationName,
+    applicationDetail_runtimeEnvironment,
+    applicationDetail_applicationStatus,
+    applicationDetail_applicationVersionId,
+
+    -- ** ApplicationMaintenanceConfigurationDescription
+    applicationMaintenanceConfigurationDescription_applicationMaintenanceWindowStartTime,
+    applicationMaintenanceConfigurationDescription_applicationMaintenanceWindowEndTime,
+
+    -- ** ApplicationMaintenanceConfigurationUpdate
+    applicationMaintenanceConfigurationUpdate_applicationMaintenanceWindowStartTimeUpdate,
+
+    -- ** ApplicationRestoreConfiguration
+    applicationRestoreConfiguration_snapshotName,
+    applicationRestoreConfiguration_applicationRestoreType,
+
+    -- ** ApplicationSnapshotConfiguration
+    applicationSnapshotConfiguration_snapshotsEnabled,
+
+    -- ** ApplicationSnapshotConfigurationDescription
+    applicationSnapshotConfigurationDescription_snapshotsEnabled,
+
+    -- ** ApplicationSnapshotConfigurationUpdate
+    applicationSnapshotConfigurationUpdate_snapshotsEnabledUpdate,
+
+    -- ** ApplicationSummary
+    applicationSummary_applicationMode,
+    applicationSummary_applicationName,
+    applicationSummary_applicationARN,
+    applicationSummary_applicationStatus,
+    applicationSummary_applicationVersionId,
+    applicationSummary_runtimeEnvironment,
+
+    -- ** ApplicationVersionSummary
+    applicationVersionSummary_applicationVersionId,
+    applicationVersionSummary_applicationStatus,
+
+    -- ** CSVMappingParameters
+    cSVMappingParameters_recordRowDelimiter,
+    cSVMappingParameters_recordColumnDelimiter,
+
+    -- ** CatalogConfiguration
+    catalogConfiguration_glueDataCatalogConfiguration,
+
+    -- ** CatalogConfigurationDescription
+    catalogConfigurationDescription_glueDataCatalogConfigurationDescription,
+
+    -- ** CatalogConfigurationUpdate
+    catalogConfigurationUpdate_glueDataCatalogConfigurationUpdate,
+
+    -- ** CheckpointConfiguration
+    checkpointConfiguration_checkpointInterval,
+    checkpointConfiguration_checkpointingEnabled,
+    checkpointConfiguration_minPauseBetweenCheckpoints,
+    checkpointConfiguration_configurationType,
+
+    -- ** CheckpointConfigurationDescription
+    checkpointConfigurationDescription_checkpointInterval,
+    checkpointConfigurationDescription_checkpointingEnabled,
+    checkpointConfigurationDescription_configurationType,
+    checkpointConfigurationDescription_minPauseBetweenCheckpoints,
+
+    -- ** CheckpointConfigurationUpdate
+    checkpointConfigurationUpdate_checkpointIntervalUpdate,
+    checkpointConfigurationUpdate_checkpointingEnabledUpdate,
+    checkpointConfigurationUpdate_configurationTypeUpdate,
+    checkpointConfigurationUpdate_minPauseBetweenCheckpointsUpdate,
+
+    -- ** CloudWatchLoggingOption
+    cloudWatchLoggingOption_logStreamARN,
+
+    -- ** CloudWatchLoggingOptionDescription
+    cloudWatchLoggingOptionDescription_cloudWatchLoggingOptionId,
+    cloudWatchLoggingOptionDescription_roleARN,
+    cloudWatchLoggingOptionDescription_logStreamARN,
+
+    -- ** CloudWatchLoggingOptionUpdate
+    cloudWatchLoggingOptionUpdate_logStreamARNUpdate,
+    cloudWatchLoggingOptionUpdate_cloudWatchLoggingOptionId,
+
+    -- ** CodeContent
+    codeContent_s3ContentLocation,
+    codeContent_textContent,
+    codeContent_zipFileContent,
+
+    -- ** CodeContentDescription
+    codeContentDescription_codeMD5,
+    codeContentDescription_codeSize,
+    codeContentDescription_s3ApplicationCodeLocationDescription,
+    codeContentDescription_textContent,
+
+    -- ** CodeContentUpdate
+    codeContentUpdate_s3ContentLocationUpdate,
+    codeContentUpdate_textContentUpdate,
+    codeContentUpdate_zipFileContentUpdate,
+
+    -- ** CustomArtifactConfiguration
+    customArtifactConfiguration_mavenReference,
+    customArtifactConfiguration_s3ContentLocation,
+    customArtifactConfiguration_artifactType,
+
+    -- ** CustomArtifactConfigurationDescription
+    customArtifactConfigurationDescription_artifactType,
+    customArtifactConfigurationDescription_mavenReferenceDescription,
+    customArtifactConfigurationDescription_s3ContentLocationDescription,
+
+    -- ** DeployAsApplicationConfiguration
+    deployAsApplicationConfiguration_s3ContentLocation,
+
+    -- ** DeployAsApplicationConfigurationDescription
+    deployAsApplicationConfigurationDescription_s3ContentLocationDescription,
+
+    -- ** DeployAsApplicationConfigurationUpdate
+    deployAsApplicationConfigurationUpdate_s3ContentLocationUpdate,
+
+    -- ** DestinationSchema
+    destinationSchema_recordFormatType,
+
+    -- ** EnvironmentProperties
+    environmentProperties_propertyGroups,
+
+    -- ** EnvironmentPropertyDescriptions
+    environmentPropertyDescriptions_propertyGroupDescriptions,
+
+    -- ** EnvironmentPropertyUpdates
+    environmentPropertyUpdates_propertyGroups,
+
+    -- ** FlinkApplicationConfiguration
+    flinkApplicationConfiguration_checkpointConfiguration,
+    flinkApplicationConfiguration_monitoringConfiguration,
+    flinkApplicationConfiguration_parallelismConfiguration,
+
+    -- ** FlinkApplicationConfigurationDescription
+    flinkApplicationConfigurationDescription_checkpointConfigurationDescription,
+    flinkApplicationConfigurationDescription_jobPlanDescription,
+    flinkApplicationConfigurationDescription_monitoringConfigurationDescription,
+    flinkApplicationConfigurationDescription_parallelismConfigurationDescription,
+
+    -- ** FlinkApplicationConfigurationUpdate
+    flinkApplicationConfigurationUpdate_checkpointConfigurationUpdate,
+    flinkApplicationConfigurationUpdate_monitoringConfigurationUpdate,
+    flinkApplicationConfigurationUpdate_parallelismConfigurationUpdate,
+
+    -- ** FlinkRunConfiguration
+    flinkRunConfiguration_allowNonRestoredState,
+
+    -- ** GlueDataCatalogConfiguration
+    glueDataCatalogConfiguration_databaseARN,
+
+    -- ** GlueDataCatalogConfigurationDescription
+    glueDataCatalogConfigurationDescription_databaseARN,
+
+    -- ** GlueDataCatalogConfigurationUpdate
+    glueDataCatalogConfigurationUpdate_databaseARNUpdate,
+
+    -- ** Input
+    input_inputParallelism,
+    input_inputProcessingConfiguration,
+    input_kinesisFirehoseInput,
+    input_kinesisStreamsInput,
+    input_namePrefix,
+    input_inputSchema,
+
+    -- ** InputDescription
+    inputDescription_inAppStreamNames,
+    inputDescription_inputId,
+    inputDescription_inputParallelism,
+    inputDescription_inputProcessingConfigurationDescription,
+    inputDescription_inputSchema,
+    inputDescription_inputStartingPositionConfiguration,
+    inputDescription_kinesisFirehoseInputDescription,
+    inputDescription_kinesisStreamsInputDescription,
+    inputDescription_namePrefix,
+
+    -- ** InputLambdaProcessor
+    inputLambdaProcessor_resourceARN,
+
+    -- ** InputLambdaProcessorDescription
+    inputLambdaProcessorDescription_roleARN,
+    inputLambdaProcessorDescription_resourceARN,
+
+    -- ** InputLambdaProcessorUpdate
+    inputLambdaProcessorUpdate_resourceARNUpdate,
+
+    -- ** InputParallelism
+    inputParallelism_count,
+
+    -- ** InputParallelismUpdate
+    inputParallelismUpdate_countUpdate,
+
+    -- ** InputProcessingConfiguration
+    inputProcessingConfiguration_inputLambdaProcessor,
+
+    -- ** InputProcessingConfigurationDescription
+    inputProcessingConfigurationDescription_inputLambdaProcessorDescription,
+
+    -- ** InputProcessingConfigurationUpdate
+    inputProcessingConfigurationUpdate_inputLambdaProcessorUpdate,
+
+    -- ** InputSchemaUpdate
+    inputSchemaUpdate_recordColumnUpdates,
+    inputSchemaUpdate_recordEncodingUpdate,
+    inputSchemaUpdate_recordFormatUpdate,
+
+    -- ** InputStartingPositionConfiguration
+    inputStartingPositionConfiguration_inputStartingPosition,
+
+    -- ** InputUpdate
+    inputUpdate_inputParallelismUpdate,
+    inputUpdate_inputProcessingConfigurationUpdate,
+    inputUpdate_inputSchemaUpdate,
+    inputUpdate_kinesisFirehoseInputUpdate,
+    inputUpdate_kinesisStreamsInputUpdate,
+    inputUpdate_namePrefixUpdate,
+    inputUpdate_inputId,
+
+    -- ** JSONMappingParameters
+    jSONMappingParameters_recordRowPath,
+
+    -- ** KinesisFirehoseInput
+    kinesisFirehoseInput_resourceARN,
+
+    -- ** KinesisFirehoseInputDescription
+    kinesisFirehoseInputDescription_roleARN,
+    kinesisFirehoseInputDescription_resourceARN,
+
+    -- ** KinesisFirehoseInputUpdate
+    kinesisFirehoseInputUpdate_resourceARNUpdate,
+
+    -- ** KinesisFirehoseOutput
+    kinesisFirehoseOutput_resourceARN,
+
+    -- ** KinesisFirehoseOutputDescription
+    kinesisFirehoseOutputDescription_roleARN,
+    kinesisFirehoseOutputDescription_resourceARN,
+
+    -- ** KinesisFirehoseOutputUpdate
+    kinesisFirehoseOutputUpdate_resourceARNUpdate,
+
+    -- ** KinesisStreamsInput
+    kinesisStreamsInput_resourceARN,
+
+    -- ** KinesisStreamsInputDescription
+    kinesisStreamsInputDescription_roleARN,
+    kinesisStreamsInputDescription_resourceARN,
+
+    -- ** KinesisStreamsInputUpdate
+    kinesisStreamsInputUpdate_resourceARNUpdate,
+
+    -- ** KinesisStreamsOutput
+    kinesisStreamsOutput_resourceARN,
+
+    -- ** KinesisStreamsOutputDescription
+    kinesisStreamsOutputDescription_roleARN,
+    kinesisStreamsOutputDescription_resourceARN,
+
+    -- ** KinesisStreamsOutputUpdate
+    kinesisStreamsOutputUpdate_resourceARNUpdate,
+
+    -- ** LambdaOutput
+    lambdaOutput_resourceARN,
+
+    -- ** LambdaOutputDescription
+    lambdaOutputDescription_roleARN,
+    lambdaOutputDescription_resourceARN,
+
+    -- ** LambdaOutputUpdate
+    lambdaOutputUpdate_resourceARNUpdate,
+
+    -- ** MappingParameters
+    mappingParameters_cSVMappingParameters,
+    mappingParameters_jSONMappingParameters,
+
+    -- ** MavenReference
+    mavenReference_groupId,
+    mavenReference_artifactId,
+    mavenReference_version,
+
+    -- ** MonitoringConfiguration
+    monitoringConfiguration_logLevel,
+    monitoringConfiguration_metricsLevel,
+    monitoringConfiguration_configurationType,
+
+    -- ** MonitoringConfigurationDescription
+    monitoringConfigurationDescription_configurationType,
+    monitoringConfigurationDescription_logLevel,
+    monitoringConfigurationDescription_metricsLevel,
+
+    -- ** MonitoringConfigurationUpdate
+    monitoringConfigurationUpdate_configurationTypeUpdate,
+    monitoringConfigurationUpdate_logLevelUpdate,
+    monitoringConfigurationUpdate_metricsLevelUpdate,
+
+    -- ** Output
+    output_kinesisFirehoseOutput,
+    output_kinesisStreamsOutput,
+    output_lambdaOutput,
+    output_name,
+    output_destinationSchema,
+
+    -- ** OutputDescription
+    outputDescription_destinationSchema,
+    outputDescription_kinesisFirehoseOutputDescription,
+    outputDescription_kinesisStreamsOutputDescription,
+    outputDescription_lambdaOutputDescription,
+    outputDescription_name,
+    outputDescription_outputId,
+
+    -- ** OutputUpdate
+    outputUpdate_destinationSchemaUpdate,
+    outputUpdate_kinesisFirehoseOutputUpdate,
+    outputUpdate_kinesisStreamsOutputUpdate,
+    outputUpdate_lambdaOutputUpdate,
+    outputUpdate_nameUpdate,
+    outputUpdate_outputId,
+
+    -- ** ParallelismConfiguration
+    parallelismConfiguration_autoScalingEnabled,
+    parallelismConfiguration_parallelism,
+    parallelismConfiguration_parallelismPerKPU,
+    parallelismConfiguration_configurationType,
+
+    -- ** ParallelismConfigurationDescription
+    parallelismConfigurationDescription_autoScalingEnabled,
+    parallelismConfigurationDescription_configurationType,
+    parallelismConfigurationDescription_currentParallelism,
+    parallelismConfigurationDescription_parallelism,
+    parallelismConfigurationDescription_parallelismPerKPU,
+
+    -- ** ParallelismConfigurationUpdate
+    parallelismConfigurationUpdate_autoScalingEnabledUpdate,
+    parallelismConfigurationUpdate_configurationTypeUpdate,
+    parallelismConfigurationUpdate_parallelismPerKPUUpdate,
+    parallelismConfigurationUpdate_parallelismUpdate,
+
+    -- ** PropertyGroup
+    propertyGroup_propertyGroupId,
+    propertyGroup_propertyMap,
+
+    -- ** RecordColumn
+    recordColumn_mapping,
+    recordColumn_name,
+    recordColumn_sqlType,
+
+    -- ** RecordFormat
+    recordFormat_mappingParameters,
+    recordFormat_recordFormatType,
+
+    -- ** ReferenceDataSource
+    referenceDataSource_s3ReferenceDataSource,
+    referenceDataSource_tableName,
+    referenceDataSource_referenceSchema,
+
+    -- ** ReferenceDataSourceDescription
+    referenceDataSourceDescription_referenceSchema,
+    referenceDataSourceDescription_referenceId,
+    referenceDataSourceDescription_tableName,
+    referenceDataSourceDescription_s3ReferenceDataSourceDescription,
+
+    -- ** ReferenceDataSourceUpdate
+    referenceDataSourceUpdate_referenceSchemaUpdate,
+    referenceDataSourceUpdate_s3ReferenceDataSourceUpdate,
+    referenceDataSourceUpdate_tableNameUpdate,
+    referenceDataSourceUpdate_referenceId,
+
+    -- ** RunConfiguration
+    runConfiguration_applicationRestoreConfiguration,
+    runConfiguration_flinkRunConfiguration,
+    runConfiguration_sqlRunConfigurations,
+
+    -- ** RunConfigurationDescription
+    runConfigurationDescription_applicationRestoreConfigurationDescription,
+    runConfigurationDescription_flinkRunConfigurationDescription,
+
+    -- ** RunConfigurationUpdate
+    runConfigurationUpdate_applicationRestoreConfiguration,
+    runConfigurationUpdate_flinkRunConfiguration,
+
+    -- ** S3ApplicationCodeLocationDescription
+    s3ApplicationCodeLocationDescription_objectVersion,
+    s3ApplicationCodeLocationDescription_bucketARN,
+    s3ApplicationCodeLocationDescription_fileKey,
+
+    -- ** S3Configuration
+    s3Configuration_bucketARN,
+    s3Configuration_fileKey,
+
+    -- ** S3ContentBaseLocation
+    s3ContentBaseLocation_basePath,
+    s3ContentBaseLocation_bucketARN,
+
+    -- ** S3ContentBaseLocationDescription
+    s3ContentBaseLocationDescription_basePath,
+    s3ContentBaseLocationDescription_bucketARN,
+
+    -- ** S3ContentBaseLocationUpdate
+    s3ContentBaseLocationUpdate_basePathUpdate,
+    s3ContentBaseLocationUpdate_bucketARNUpdate,
+
+    -- ** S3ContentLocation
+    s3ContentLocation_objectVersion,
+    s3ContentLocation_bucketARN,
+    s3ContentLocation_fileKey,
+
+    -- ** S3ContentLocationUpdate
+    s3ContentLocationUpdate_bucketARNUpdate,
+    s3ContentLocationUpdate_fileKeyUpdate,
+    s3ContentLocationUpdate_objectVersionUpdate,
+
+    -- ** S3ReferenceDataSource
+    s3ReferenceDataSource_bucketARN,
+    s3ReferenceDataSource_fileKey,
+
+    -- ** S3ReferenceDataSourceDescription
+    s3ReferenceDataSourceDescription_referenceRoleARN,
+    s3ReferenceDataSourceDescription_bucketARN,
+    s3ReferenceDataSourceDescription_fileKey,
+
+    -- ** S3ReferenceDataSourceUpdate
+    s3ReferenceDataSourceUpdate_bucketARNUpdate,
+    s3ReferenceDataSourceUpdate_fileKeyUpdate,
+
+    -- ** SnapshotDetails
+    snapshotDetails_snapshotCreationTimestamp,
+    snapshotDetails_snapshotName,
+    snapshotDetails_snapshotStatus,
+    snapshotDetails_applicationVersionId,
+
+    -- ** SourceSchema
+    sourceSchema_recordEncoding,
+    sourceSchema_recordFormat,
+    sourceSchema_recordColumns,
+
+    -- ** SqlApplicationConfiguration
+    sqlApplicationConfiguration_inputs,
+    sqlApplicationConfiguration_outputs,
+    sqlApplicationConfiguration_referenceDataSources,
+
+    -- ** SqlApplicationConfigurationDescription
+    sqlApplicationConfigurationDescription_inputDescriptions,
+    sqlApplicationConfigurationDescription_outputDescriptions,
+    sqlApplicationConfigurationDescription_referenceDataSourceDescriptions,
+
+    -- ** SqlApplicationConfigurationUpdate
+    sqlApplicationConfigurationUpdate_inputUpdates,
+    sqlApplicationConfigurationUpdate_outputUpdates,
+    sqlApplicationConfigurationUpdate_referenceDataSourceUpdates,
+
+    -- ** SqlRunConfiguration
+    sqlRunConfiguration_inputId,
+    sqlRunConfiguration_inputStartingPositionConfiguration,
+
+    -- ** Tag
+    tag_value,
+    tag_key,
+
+    -- ** VpcConfiguration
+    vpcConfiguration_subnetIds,
+    vpcConfiguration_securityGroupIds,
+
+    -- ** VpcConfigurationDescription
+    vpcConfigurationDescription_vpcConfigurationId,
+    vpcConfigurationDescription_vpcId,
+    vpcConfigurationDescription_subnetIds,
+    vpcConfigurationDescription_securityGroupIds,
+
+    -- ** VpcConfigurationUpdate
+    vpcConfigurationUpdate_securityGroupIdUpdates,
+    vpcConfigurationUpdate_subnetIdUpdates,
+    vpcConfigurationUpdate_vpcConfigurationId,
+
+    -- ** ZeppelinApplicationConfiguration
+    zeppelinApplicationConfiguration_catalogConfiguration,
+    zeppelinApplicationConfiguration_customArtifactsConfiguration,
+    zeppelinApplicationConfiguration_deployAsApplicationConfiguration,
+    zeppelinApplicationConfiguration_monitoringConfiguration,
+
+    -- ** ZeppelinApplicationConfigurationDescription
+    zeppelinApplicationConfigurationDescription_catalogConfigurationDescription,
+    zeppelinApplicationConfigurationDescription_customArtifactsConfigurationDescription,
+    zeppelinApplicationConfigurationDescription_deployAsApplicationConfigurationDescription,
+    zeppelinApplicationConfigurationDescription_monitoringConfigurationDescription,
+
+    -- ** ZeppelinApplicationConfigurationUpdate
+    zeppelinApplicationConfigurationUpdate_catalogConfigurationUpdate,
+    zeppelinApplicationConfigurationUpdate_customArtifactsConfigurationUpdate,
+    zeppelinApplicationConfigurationUpdate_deployAsApplicationConfigurationUpdate,
+    zeppelinApplicationConfigurationUpdate_monitoringConfigurationUpdate,
+
+    -- ** ZeppelinMonitoringConfiguration
+    zeppelinMonitoringConfiguration_logLevel,
+
+    -- ** ZeppelinMonitoringConfigurationDescription
+    zeppelinMonitoringConfigurationDescription_logLevel,
+
+    -- ** ZeppelinMonitoringConfigurationUpdate
+    zeppelinMonitoringConfigurationUpdate_logLevelUpdate,
+  )
+where
+
+import Amazonka.KinesisAnalyticsV2.AddApplicationCloudWatchLoggingOption
+import Amazonka.KinesisAnalyticsV2.AddApplicationInput
+import Amazonka.KinesisAnalyticsV2.AddApplicationInputProcessingConfiguration
+import Amazonka.KinesisAnalyticsV2.AddApplicationOutput
+import Amazonka.KinesisAnalyticsV2.AddApplicationReferenceDataSource
+import Amazonka.KinesisAnalyticsV2.AddApplicationVpcConfiguration
+import Amazonka.KinesisAnalyticsV2.CreateApplication
+import Amazonka.KinesisAnalyticsV2.CreateApplicationPresignedUrl
+import Amazonka.KinesisAnalyticsV2.CreateApplicationSnapshot
+import Amazonka.KinesisAnalyticsV2.DeleteApplication
+import Amazonka.KinesisAnalyticsV2.DeleteApplicationCloudWatchLoggingOption
+import Amazonka.KinesisAnalyticsV2.DeleteApplicationInputProcessingConfiguration
+import Amazonka.KinesisAnalyticsV2.DeleteApplicationOutput
+import Amazonka.KinesisAnalyticsV2.DeleteApplicationReferenceDataSource
+import Amazonka.KinesisAnalyticsV2.DeleteApplicationSnapshot
+import Amazonka.KinesisAnalyticsV2.DeleteApplicationVpcConfiguration
+import Amazonka.KinesisAnalyticsV2.DescribeApplication
+import Amazonka.KinesisAnalyticsV2.DescribeApplicationSnapshot
+import Amazonka.KinesisAnalyticsV2.DescribeApplicationVersion
+import Amazonka.KinesisAnalyticsV2.DiscoverInputSchema
+import Amazonka.KinesisAnalyticsV2.ListApplicationSnapshots
+import Amazonka.KinesisAnalyticsV2.ListApplicationVersions
+import Amazonka.KinesisAnalyticsV2.ListApplications
+import Amazonka.KinesisAnalyticsV2.ListTagsForResource
+import Amazonka.KinesisAnalyticsV2.RollbackApplication
+import Amazonka.KinesisAnalyticsV2.StartApplication
+import Amazonka.KinesisAnalyticsV2.StopApplication
+import Amazonka.KinesisAnalyticsV2.TagResource
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationDetail
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationMaintenanceConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationMaintenanceConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationRestoreConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationSummary
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationVersionSummary
+import Amazonka.KinesisAnalyticsV2.Types.CSVMappingParameters
+import Amazonka.KinesisAnalyticsV2.Types.CatalogConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.CatalogConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.CatalogConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.CheckpointConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.CheckpointConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.CheckpointConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.CloudWatchLoggingOption
+import Amazonka.KinesisAnalyticsV2.Types.CloudWatchLoggingOptionDescription
+import Amazonka.KinesisAnalyticsV2.Types.CloudWatchLoggingOptionUpdate
+import Amazonka.KinesisAnalyticsV2.Types.CodeContent
+import Amazonka.KinesisAnalyticsV2.Types.CodeContentDescription
+import Amazonka.KinesisAnalyticsV2.Types.CodeContentUpdate
+import Amazonka.KinesisAnalyticsV2.Types.CustomArtifactConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.CustomArtifactConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.DeployAsApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.DeployAsApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.DeployAsApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.DestinationSchema
+import Amazonka.KinesisAnalyticsV2.Types.EnvironmentProperties
+import Amazonka.KinesisAnalyticsV2.Types.EnvironmentPropertyDescriptions
+import Amazonka.KinesisAnalyticsV2.Types.EnvironmentPropertyUpdates
+import Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.FlinkRunConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.GlueDataCatalogConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.GlueDataCatalogConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.GlueDataCatalogConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.Input
+import Amazonka.KinesisAnalyticsV2.Types.InputDescription
+import Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessor
+import Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessorDescription
+import Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessorUpdate
+import Amazonka.KinesisAnalyticsV2.Types.InputParallelism
+import Amazonka.KinesisAnalyticsV2.Types.InputParallelismUpdate
+import Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.InputSchemaUpdate
+import Amazonka.KinesisAnalyticsV2.Types.InputStartingPositionConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.InputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.JSONMappingParameters
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInput
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInputDescription
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutput
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutputDescription
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInput
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInputDescription
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsOutput
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsOutputDescription
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsOutputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.LambdaOutput
+import Amazonka.KinesisAnalyticsV2.Types.LambdaOutputDescription
+import Amazonka.KinesisAnalyticsV2.Types.LambdaOutputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.MappingParameters
+import Amazonka.KinesisAnalyticsV2.Types.MavenReference
+import Amazonka.KinesisAnalyticsV2.Types.MonitoringConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.MonitoringConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.MonitoringConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.Output
+import Amazonka.KinesisAnalyticsV2.Types.OutputDescription
+import Amazonka.KinesisAnalyticsV2.Types.OutputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ParallelismConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ParallelismConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ParallelismConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.PropertyGroup
+import Amazonka.KinesisAnalyticsV2.Types.RecordColumn
+import Amazonka.KinesisAnalyticsV2.Types.RecordFormat
+import Amazonka.KinesisAnalyticsV2.Types.ReferenceDataSource
+import Amazonka.KinesisAnalyticsV2.Types.ReferenceDataSourceDescription
+import Amazonka.KinesisAnalyticsV2.Types.ReferenceDataSourceUpdate
+import Amazonka.KinesisAnalyticsV2.Types.RunConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.RunConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.RunConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.S3ApplicationCodeLocationDescription
+import Amazonka.KinesisAnalyticsV2.Types.S3Configuration
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocation
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocationDescription
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentLocation
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentLocationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSource
+import Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSourceDescription
+import Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSourceUpdate
+import Amazonka.KinesisAnalyticsV2.Types.SnapshotDetails
+import Amazonka.KinesisAnalyticsV2.Types.SourceSchema
+import Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.SqlRunConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.Tag
+import Amazonka.KinesisAnalyticsV2.Types.VpcConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.VpcConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.VpcConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.UntagResource
+import Amazonka.KinesisAnalyticsV2.UpdateApplication
+import Amazonka.KinesisAnalyticsV2.UpdateApplicationMaintenanceConfiguration
diff --git a/gen/Amazonka/KinesisAnalyticsV2/ListApplicationSnapshots.hs b/gen/Amazonka/KinesisAnalyticsV2/ListApplicationSnapshots.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/ListApplicationSnapshots.hs
@@ -0,0 +1,257 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.ListApplicationSnapshots
+-- 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 information about the current application snapshots.
+--
+-- This operation returns paginated results.
+module Amazonka.KinesisAnalyticsV2.ListApplicationSnapshots
+  ( -- * Creating a Request
+    ListApplicationSnapshots (..),
+    newListApplicationSnapshots,
+
+    -- * Request Lenses
+    listApplicationSnapshots_limit,
+    listApplicationSnapshots_nextToken,
+    listApplicationSnapshots_applicationName,
+
+    -- * Destructuring the Response
+    ListApplicationSnapshotsResponse (..),
+    newListApplicationSnapshotsResponse,
+
+    -- * Response Lenses
+    listApplicationSnapshotsResponse_nextToken,
+    listApplicationSnapshotsResponse_snapshotSummaries,
+    listApplicationSnapshotsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListApplicationSnapshots' smart constructor.
+data ListApplicationSnapshots = ListApplicationSnapshots'
+  { -- | The maximum number of application snapshots to list.
+    limit :: Prelude.Maybe Prelude.Natural,
+    -- | Use this parameter if you receive a @NextToken@ response in a previous
+    -- request that indicates that there is more output available. Set it to
+    -- the value of the previous call\'s @NextToken@ response to indicate where
+    -- the output should continue from.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The name of an existing application.
+    applicationName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListApplicationSnapshots' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'limit', 'listApplicationSnapshots_limit' - The maximum number of application snapshots to list.
+--
+-- 'nextToken', 'listApplicationSnapshots_nextToken' - Use this parameter if you receive a @NextToken@ response in a previous
+-- request that indicates that there is more output available. Set it to
+-- the value of the previous call\'s @NextToken@ response to indicate where
+-- the output should continue from.
+--
+-- 'applicationName', 'listApplicationSnapshots_applicationName' - The name of an existing application.
+newListApplicationSnapshots ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  ListApplicationSnapshots
+newListApplicationSnapshots pApplicationName_ =
+  ListApplicationSnapshots'
+    { limit = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      applicationName = pApplicationName_
+    }
+
+-- | The maximum number of application snapshots to list.
+listApplicationSnapshots_limit :: Lens.Lens' ListApplicationSnapshots (Prelude.Maybe Prelude.Natural)
+listApplicationSnapshots_limit = Lens.lens (\ListApplicationSnapshots' {limit} -> limit) (\s@ListApplicationSnapshots' {} a -> s {limit = a} :: ListApplicationSnapshots)
+
+-- | Use this parameter if you receive a @NextToken@ response in a previous
+-- request that indicates that there is more output available. Set it to
+-- the value of the previous call\'s @NextToken@ response to indicate where
+-- the output should continue from.
+listApplicationSnapshots_nextToken :: Lens.Lens' ListApplicationSnapshots (Prelude.Maybe Prelude.Text)
+listApplicationSnapshots_nextToken = Lens.lens (\ListApplicationSnapshots' {nextToken} -> nextToken) (\s@ListApplicationSnapshots' {} a -> s {nextToken = a} :: ListApplicationSnapshots)
+
+-- | The name of an existing application.
+listApplicationSnapshots_applicationName :: Lens.Lens' ListApplicationSnapshots Prelude.Text
+listApplicationSnapshots_applicationName = Lens.lens (\ListApplicationSnapshots' {applicationName} -> applicationName) (\s@ListApplicationSnapshots' {} a -> s {applicationName = a} :: ListApplicationSnapshots)
+
+instance Core.AWSPager ListApplicationSnapshots where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listApplicationSnapshotsResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? listApplicationSnapshotsResponse_snapshotSummaries
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listApplicationSnapshots_nextToken
+          Lens..~ rs
+          Lens.^? listApplicationSnapshotsResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest ListApplicationSnapshots where
+  type
+    AWSResponse ListApplicationSnapshots =
+      ListApplicationSnapshotsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListApplicationSnapshotsResponse'
+            Prelude.<$> (x Data..?> "NextToken")
+            Prelude.<*> ( x
+                            Data..?> "SnapshotSummaries"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListApplicationSnapshots where
+  hashWithSalt _salt ListApplicationSnapshots' {..} =
+    _salt
+      `Prelude.hashWithSalt` limit
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` applicationName
+
+instance Prelude.NFData ListApplicationSnapshots where
+  rnf ListApplicationSnapshots' {..} =
+    Prelude.rnf limit
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf applicationName
+
+instance Data.ToHeaders ListApplicationSnapshots where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.ListApplicationSnapshots" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListApplicationSnapshots where
+  toJSON ListApplicationSnapshots' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Limit" Data..=) Prelude.<$> limit,
+            ("NextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just
+              ("ApplicationName" Data..= applicationName)
+          ]
+      )
+
+instance Data.ToPath ListApplicationSnapshots where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListApplicationSnapshots where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListApplicationSnapshotsResponse' smart constructor.
+data ListApplicationSnapshotsResponse = ListApplicationSnapshotsResponse'
+  { -- | The token for the next set of results, or @null@ if there are no
+    -- additional results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | A collection of objects containing information about the application
+    -- snapshots.
+    snapshotSummaries :: Prelude.Maybe [SnapshotDetails],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListApplicationSnapshotsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'nextToken', 'listApplicationSnapshotsResponse_nextToken' - The token for the next set of results, or @null@ if there are no
+-- additional results.
+--
+-- 'snapshotSummaries', 'listApplicationSnapshotsResponse_snapshotSummaries' - A collection of objects containing information about the application
+-- snapshots.
+--
+-- 'httpStatus', 'listApplicationSnapshotsResponse_httpStatus' - The response's http status code.
+newListApplicationSnapshotsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListApplicationSnapshotsResponse
+newListApplicationSnapshotsResponse pHttpStatus_ =
+  ListApplicationSnapshotsResponse'
+    { nextToken =
+        Prelude.Nothing,
+      snapshotSummaries = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The token for the next set of results, or @null@ if there are no
+-- additional results.
+listApplicationSnapshotsResponse_nextToken :: Lens.Lens' ListApplicationSnapshotsResponse (Prelude.Maybe Prelude.Text)
+listApplicationSnapshotsResponse_nextToken = Lens.lens (\ListApplicationSnapshotsResponse' {nextToken} -> nextToken) (\s@ListApplicationSnapshotsResponse' {} a -> s {nextToken = a} :: ListApplicationSnapshotsResponse)
+
+-- | A collection of objects containing information about the application
+-- snapshots.
+listApplicationSnapshotsResponse_snapshotSummaries :: Lens.Lens' ListApplicationSnapshotsResponse (Prelude.Maybe [SnapshotDetails])
+listApplicationSnapshotsResponse_snapshotSummaries = Lens.lens (\ListApplicationSnapshotsResponse' {snapshotSummaries} -> snapshotSummaries) (\s@ListApplicationSnapshotsResponse' {} a -> s {snapshotSummaries = a} :: ListApplicationSnapshotsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listApplicationSnapshotsResponse_httpStatus :: Lens.Lens' ListApplicationSnapshotsResponse Prelude.Int
+listApplicationSnapshotsResponse_httpStatus = Lens.lens (\ListApplicationSnapshotsResponse' {httpStatus} -> httpStatus) (\s@ListApplicationSnapshotsResponse' {} a -> s {httpStatus = a} :: ListApplicationSnapshotsResponse)
+
+instance
+  Prelude.NFData
+    ListApplicationSnapshotsResponse
+  where
+  rnf ListApplicationSnapshotsResponse' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf snapshotSummaries
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/ListApplicationVersions.hs b/gen/Amazonka/KinesisAnalyticsV2/ListApplicationVersions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/ListApplicationVersions.hs
@@ -0,0 +1,262 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.ListApplicationVersions
+-- 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 versions for the specified application, including versions
+-- that were rolled back. The response also includes a summary of the
+-- configuration associated with each version.
+--
+-- To get the complete description of a specific application version,
+-- invoke the DescribeApplicationVersion operation.
+--
+-- This operation is supported only for Amazon Kinesis Data Analytics for
+-- Apache Flink.
+module Amazonka.KinesisAnalyticsV2.ListApplicationVersions
+  ( -- * Creating a Request
+    ListApplicationVersions (..),
+    newListApplicationVersions,
+
+    -- * Request Lenses
+    listApplicationVersions_limit,
+    listApplicationVersions_nextToken,
+    listApplicationVersions_applicationName,
+
+    -- * Destructuring the Response
+    ListApplicationVersionsResponse (..),
+    newListApplicationVersionsResponse,
+
+    -- * Response Lenses
+    listApplicationVersionsResponse_applicationVersionSummaries,
+    listApplicationVersionsResponse_nextToken,
+    listApplicationVersionsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListApplicationVersions' smart constructor.
+data ListApplicationVersions = ListApplicationVersions'
+  { -- | The maximum number of versions to list in this invocation of the
+    -- operation.
+    limit :: Prelude.Maybe Prelude.Natural,
+    -- | If a previous invocation of this operation returned a pagination token,
+    -- pass it into this value to retrieve the next set of results. For more
+    -- information about pagination, see
+    -- <https://docs.aws.amazon.com/cli/latest/userguide/pagination.html Using the Amazon Command Line Interface\'s Pagination Options>.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The name of the application for which you want to list all versions.
+    applicationName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListApplicationVersions' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'limit', 'listApplicationVersions_limit' - The maximum number of versions to list in this invocation of the
+-- operation.
+--
+-- 'nextToken', 'listApplicationVersions_nextToken' - If a previous invocation of this operation returned a pagination token,
+-- pass it into this value to retrieve the next set of results. For more
+-- information about pagination, see
+-- <https://docs.aws.amazon.com/cli/latest/userguide/pagination.html Using the Amazon Command Line Interface\'s Pagination Options>.
+--
+-- 'applicationName', 'listApplicationVersions_applicationName' - The name of the application for which you want to list all versions.
+newListApplicationVersions ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  ListApplicationVersions
+newListApplicationVersions pApplicationName_ =
+  ListApplicationVersions'
+    { limit = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      applicationName = pApplicationName_
+    }
+
+-- | The maximum number of versions to list in this invocation of the
+-- operation.
+listApplicationVersions_limit :: Lens.Lens' ListApplicationVersions (Prelude.Maybe Prelude.Natural)
+listApplicationVersions_limit = Lens.lens (\ListApplicationVersions' {limit} -> limit) (\s@ListApplicationVersions' {} a -> s {limit = a} :: ListApplicationVersions)
+
+-- | If a previous invocation of this operation returned a pagination token,
+-- pass it into this value to retrieve the next set of results. For more
+-- information about pagination, see
+-- <https://docs.aws.amazon.com/cli/latest/userguide/pagination.html Using the Amazon Command Line Interface\'s Pagination Options>.
+listApplicationVersions_nextToken :: Lens.Lens' ListApplicationVersions (Prelude.Maybe Prelude.Text)
+listApplicationVersions_nextToken = Lens.lens (\ListApplicationVersions' {nextToken} -> nextToken) (\s@ListApplicationVersions' {} a -> s {nextToken = a} :: ListApplicationVersions)
+
+-- | The name of the application for which you want to list all versions.
+listApplicationVersions_applicationName :: Lens.Lens' ListApplicationVersions Prelude.Text
+listApplicationVersions_applicationName = Lens.lens (\ListApplicationVersions' {applicationName} -> applicationName) (\s@ListApplicationVersions' {} a -> s {applicationName = a} :: ListApplicationVersions)
+
+instance Core.AWSRequest ListApplicationVersions where
+  type
+    AWSResponse ListApplicationVersions =
+      ListApplicationVersionsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListApplicationVersionsResponse'
+            Prelude.<$> ( x
+                            Data..?> "ApplicationVersionSummaries"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListApplicationVersions where
+  hashWithSalt _salt ListApplicationVersions' {..} =
+    _salt
+      `Prelude.hashWithSalt` limit
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` applicationName
+
+instance Prelude.NFData ListApplicationVersions where
+  rnf ListApplicationVersions' {..} =
+    Prelude.rnf limit
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf applicationName
+
+instance Data.ToHeaders ListApplicationVersions where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.ListApplicationVersions" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListApplicationVersions where
+  toJSON ListApplicationVersions' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Limit" Data..=) Prelude.<$> limit,
+            ("NextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just
+              ("ApplicationName" Data..= applicationName)
+          ]
+      )
+
+instance Data.ToPath ListApplicationVersions where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListApplicationVersions where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListApplicationVersionsResponse' smart constructor.
+data ListApplicationVersionsResponse = ListApplicationVersionsResponse'
+  { -- | A list of the application versions and the associated configuration
+    -- summaries. The list includes application versions that were rolled back.
+    --
+    -- To get the complete description of a specific application version,
+    -- invoke the DescribeApplicationVersion operation.
+    applicationVersionSummaries :: Prelude.Maybe [ApplicationVersionSummary],
+    -- | The pagination token for the next set of results, or @null@ if there are
+    -- no additional results. To retrieve the next set of items, pass this
+    -- token into a subsequent invocation of this operation. For more
+    -- information about pagination, see
+    -- <https://docs.aws.amazon.com/cli/latest/userguide/pagination.html Using the Amazon Command Line Interface\'s Pagination Options>.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListApplicationVersionsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationVersionSummaries', 'listApplicationVersionsResponse_applicationVersionSummaries' - A list of the application versions and the associated configuration
+-- summaries. The list includes application versions that were rolled back.
+--
+-- To get the complete description of a specific application version,
+-- invoke the DescribeApplicationVersion operation.
+--
+-- 'nextToken', 'listApplicationVersionsResponse_nextToken' - The pagination token for the next set of results, or @null@ if there are
+-- no additional results. To retrieve the next set of items, pass this
+-- token into a subsequent invocation of this operation. For more
+-- information about pagination, see
+-- <https://docs.aws.amazon.com/cli/latest/userguide/pagination.html Using the Amazon Command Line Interface\'s Pagination Options>.
+--
+-- 'httpStatus', 'listApplicationVersionsResponse_httpStatus' - The response's http status code.
+newListApplicationVersionsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListApplicationVersionsResponse
+newListApplicationVersionsResponse pHttpStatus_ =
+  ListApplicationVersionsResponse'
+    { applicationVersionSummaries =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | A list of the application versions and the associated configuration
+-- summaries. The list includes application versions that were rolled back.
+--
+-- To get the complete description of a specific application version,
+-- invoke the DescribeApplicationVersion operation.
+listApplicationVersionsResponse_applicationVersionSummaries :: Lens.Lens' ListApplicationVersionsResponse (Prelude.Maybe [ApplicationVersionSummary])
+listApplicationVersionsResponse_applicationVersionSummaries = Lens.lens (\ListApplicationVersionsResponse' {applicationVersionSummaries} -> applicationVersionSummaries) (\s@ListApplicationVersionsResponse' {} a -> s {applicationVersionSummaries = a} :: ListApplicationVersionsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token for the next set of results, or @null@ if there are
+-- no additional results. To retrieve the next set of items, pass this
+-- token into a subsequent invocation of this operation. For more
+-- information about pagination, see
+-- <https://docs.aws.amazon.com/cli/latest/userguide/pagination.html Using the Amazon Command Line Interface\'s Pagination Options>.
+listApplicationVersionsResponse_nextToken :: Lens.Lens' ListApplicationVersionsResponse (Prelude.Maybe Prelude.Text)
+listApplicationVersionsResponse_nextToken = Lens.lens (\ListApplicationVersionsResponse' {nextToken} -> nextToken) (\s@ListApplicationVersionsResponse' {} a -> s {nextToken = a} :: ListApplicationVersionsResponse)
+
+-- | The response's http status code.
+listApplicationVersionsResponse_httpStatus :: Lens.Lens' ListApplicationVersionsResponse Prelude.Int
+listApplicationVersionsResponse_httpStatus = Lens.lens (\ListApplicationVersionsResponse' {httpStatus} -> httpStatus) (\s@ListApplicationVersionsResponse' {} a -> s {httpStatus = a} :: ListApplicationVersionsResponse)
+
+instance
+  Prelude.NFData
+    ListApplicationVersionsResponse
+  where
+  rnf ListApplicationVersionsResponse' {..} =
+    Prelude.rnf applicationVersionSummaries
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/ListApplications.hs b/gen/Amazonka/KinesisAnalyticsV2/ListApplications.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/ListApplications.hs
@@ -0,0 +1,248 @@
+{-# 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.KinesisAnalyticsV2.ListApplications
+-- 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 Kinesis Data Analytics applications in your account.
+-- For each application, the response includes the application name, Amazon
+-- Resource Name (ARN), and status.
+--
+-- If you want detailed information about a specific application, use
+-- DescribeApplication.
+--
+-- This operation returns paginated results.
+module Amazonka.KinesisAnalyticsV2.ListApplications
+  ( -- * Creating a Request
+    ListApplications (..),
+    newListApplications,
+
+    -- * Request Lenses
+    listApplications_limit,
+    listApplications_nextToken,
+
+    -- * Destructuring the Response
+    ListApplicationsResponse (..),
+    newListApplicationsResponse,
+
+    -- * Response Lenses
+    listApplicationsResponse_nextToken,
+    listApplicationsResponse_httpStatus,
+    listApplicationsResponse_applicationSummaries,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListApplications' smart constructor.
+data ListApplications = ListApplications'
+  { -- | The maximum number of applications to list.
+    limit :: Prelude.Maybe Prelude.Natural,
+    -- | If a previous command returned a pagination token, pass it into this
+    -- value to retrieve the next set of results. For more information about
+    -- pagination, see
+    -- <https://docs.aws.amazon.com/cli/latest/userguide/pagination.html Using the Amazon Command Line Interface\'s Pagination Options>.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListApplications' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'limit', 'listApplications_limit' - The maximum number of applications to list.
+--
+-- 'nextToken', 'listApplications_nextToken' - If a previous command returned a pagination token, pass it into this
+-- value to retrieve the next set of results. For more information about
+-- pagination, see
+-- <https://docs.aws.amazon.com/cli/latest/userguide/pagination.html Using the Amazon Command Line Interface\'s Pagination Options>.
+newListApplications ::
+  ListApplications
+newListApplications =
+  ListApplications'
+    { limit = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | The maximum number of applications to list.
+listApplications_limit :: Lens.Lens' ListApplications (Prelude.Maybe Prelude.Natural)
+listApplications_limit = Lens.lens (\ListApplications' {limit} -> limit) (\s@ListApplications' {} a -> s {limit = a} :: ListApplications)
+
+-- | If a previous command returned a pagination token, pass it into this
+-- value to retrieve the next set of results. For more information about
+-- pagination, see
+-- <https://docs.aws.amazon.com/cli/latest/userguide/pagination.html Using the Amazon Command Line Interface\'s Pagination Options>.
+listApplications_nextToken :: Lens.Lens' ListApplications (Prelude.Maybe Prelude.Text)
+listApplications_nextToken = Lens.lens (\ListApplications' {nextToken} -> nextToken) (\s@ListApplications' {} a -> s {nextToken = a} :: ListApplications)
+
+instance Core.AWSPager ListApplications where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listApplicationsResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^. listApplicationsResponse_applicationSummaries
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listApplications_nextToken
+          Lens..~ rs
+          Lens.^? listApplicationsResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest ListApplications where
+  type
+    AWSResponse ListApplications =
+      ListApplicationsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListApplicationsResponse'
+            Prelude.<$> (x Data..?> "NextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> ( x
+                            Data..?> "ApplicationSummaries"
+                            Core..!@ Prelude.mempty
+                        )
+      )
+
+instance Prelude.Hashable ListApplications where
+  hashWithSalt _salt ListApplications' {..} =
+    _salt
+      `Prelude.hashWithSalt` limit
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListApplications where
+  rnf ListApplications' {..} =
+    Prelude.rnf limit
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListApplications where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.ListApplications" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListApplications where
+  toJSON ListApplications' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Limit" Data..=) Prelude.<$> limit,
+            ("NextToken" Data..=) Prelude.<$> nextToken
+          ]
+      )
+
+instance Data.ToPath ListApplications where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListApplications where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListApplicationsResponse' smart constructor.
+data ListApplicationsResponse = ListApplicationsResponse'
+  { -- | The pagination token for the next set of results, or @null@ if there are
+    -- no additional results. Pass this token into a subsequent command to
+    -- retrieve the next set of items For more information about pagination,
+    -- see
+    -- <https://docs.aws.amazon.com/cli/latest/userguide/pagination.html Using the Amazon Command Line Interface\'s Pagination Options>.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | A list of @ApplicationSummary@ objects.
+    applicationSummaries :: [ApplicationSummary]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListApplicationsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'nextToken', 'listApplicationsResponse_nextToken' - The pagination token for the next set of results, or @null@ if there are
+-- no additional results. Pass this token into a subsequent command to
+-- retrieve the next set of items For more information about pagination,
+-- see
+-- <https://docs.aws.amazon.com/cli/latest/userguide/pagination.html Using the Amazon Command Line Interface\'s Pagination Options>.
+--
+-- 'httpStatus', 'listApplicationsResponse_httpStatus' - The response's http status code.
+--
+-- 'applicationSummaries', 'listApplicationsResponse_applicationSummaries' - A list of @ApplicationSummary@ objects.
+newListApplicationsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListApplicationsResponse
+newListApplicationsResponse pHttpStatus_ =
+  ListApplicationsResponse'
+    { nextToken =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_,
+      applicationSummaries = Prelude.mempty
+    }
+
+-- | The pagination token for the next set of results, or @null@ if there are
+-- no additional results. Pass this token into a subsequent command to
+-- retrieve the next set of items For more information about pagination,
+-- see
+-- <https://docs.aws.amazon.com/cli/latest/userguide/pagination.html Using the Amazon Command Line Interface\'s Pagination Options>.
+listApplicationsResponse_nextToken :: Lens.Lens' ListApplicationsResponse (Prelude.Maybe Prelude.Text)
+listApplicationsResponse_nextToken = Lens.lens (\ListApplicationsResponse' {nextToken} -> nextToken) (\s@ListApplicationsResponse' {} a -> s {nextToken = a} :: ListApplicationsResponse)
+
+-- | The response's http status code.
+listApplicationsResponse_httpStatus :: Lens.Lens' ListApplicationsResponse Prelude.Int
+listApplicationsResponse_httpStatus = Lens.lens (\ListApplicationsResponse' {httpStatus} -> httpStatus) (\s@ListApplicationsResponse' {} a -> s {httpStatus = a} :: ListApplicationsResponse)
+
+-- | A list of @ApplicationSummary@ objects.
+listApplicationsResponse_applicationSummaries :: Lens.Lens' ListApplicationsResponse [ApplicationSummary]
+listApplicationsResponse_applicationSummaries = Lens.lens (\ListApplicationsResponse' {applicationSummaries} -> applicationSummaries) (\s@ListApplicationsResponse' {} a -> s {applicationSummaries = a} :: ListApplicationsResponse) Prelude.. Lens.coerced
+
+instance Prelude.NFData ListApplicationsResponse where
+  rnf ListApplicationsResponse' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf applicationSummaries
diff --git a/gen/Amazonka/KinesisAnalyticsV2/ListTagsForResource.hs b/gen/Amazonka/KinesisAnalyticsV2/ListTagsForResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/ListTagsForResource.hs
@@ -0,0 +1,171 @@
+{-# 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.KinesisAnalyticsV2.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)
+--
+-- Retrieves the list of key-value tags assigned to the application. For
+-- more information, see
+-- <https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html Using Tagging>.
+module Amazonka.KinesisAnalyticsV2.ListTagsForResource
+  ( -- * Creating a Request
+    ListTagsForResource (..),
+    newListTagsForResource,
+
+    -- * Request Lenses
+    listTagsForResource_resourceARN,
+
+    -- * Destructuring the Response
+    ListTagsForResourceResponse (..),
+    newListTagsForResourceResponse,
+
+    -- * Response Lenses
+    listTagsForResourceResponse_tags,
+    listTagsForResourceResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListTagsForResource' smart constructor.
+data ListTagsForResource = ListTagsForResource'
+  { -- | The ARN of the application for which to retrieve tags.
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListTagsForResource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARN', 'listTagsForResource_resourceARN' - The ARN of the application for which to retrieve tags.
+newListTagsForResource ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  ListTagsForResource
+newListTagsForResource pResourceARN_ =
+  ListTagsForResource' {resourceARN = pResourceARN_}
+
+-- | The ARN of the application for which to retrieve tags.
+listTagsForResource_resourceARN :: Lens.Lens' ListTagsForResource Prelude.Text
+listTagsForResource_resourceARN = Lens.lens (\ListTagsForResource' {resourceARN} -> resourceARN) (\s@ListTagsForResource' {} a -> s {resourceARN = a} :: ListTagsForResource)
+
+instance Core.AWSRequest ListTagsForResource where
+  type
+    AWSResponse ListTagsForResource =
+      ListTagsForResourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListTagsForResourceResponse'
+            Prelude.<$> (x Data..?> "Tags")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListTagsForResource where
+  hashWithSalt _salt ListTagsForResource' {..} =
+    _salt `Prelude.hashWithSalt` resourceARN
+
+instance Prelude.NFData ListTagsForResource where
+  rnf ListTagsForResource' {..} =
+    Prelude.rnf resourceARN
+
+instance Data.ToHeaders ListTagsForResource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.ListTagsForResource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListTagsForResource where
+  toJSON ListTagsForResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("ResourceARN" Data..= resourceARN)]
+      )
+
+instance Data.ToPath ListTagsForResource where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListTagsForResource where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListTagsForResourceResponse' smart constructor.
+data ListTagsForResourceResponse = ListTagsForResourceResponse'
+  { -- | The key-value tags assigned to the application.
+    tags :: Prelude.Maybe (Prelude.NonEmpty 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:
+--
+-- 'tags', 'listTagsForResourceResponse_tags' - The key-value tags assigned to the application.
+--
+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.
+newListTagsForResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListTagsForResourceResponse
+newListTagsForResourceResponse pHttpStatus_ =
+  ListTagsForResourceResponse'
+    { tags =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The key-value tags assigned to the application.
+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.NonEmpty Tag))
+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int
+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)
+
+instance Prelude.NFData ListTagsForResourceResponse where
+  rnf ListTagsForResourceResponse' {..} =
+    Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/RollbackApplication.hs b/gen/Amazonka/KinesisAnalyticsV2/RollbackApplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/RollbackApplication.hs
@@ -0,0 +1,213 @@
+{-# 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.KinesisAnalyticsV2.RollbackApplication
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Reverts the application to the previous running version. You can roll
+-- back an application if you suspect it is stuck in a transient status.
+--
+-- You can roll back an application only if it is in the @UPDATING@ or
+-- @AUTOSCALING@ status.
+--
+-- When you rollback an application, it loads state data from the last
+-- successful snapshot. If the application has no snapshots, Kinesis Data
+-- Analytics rejects the rollback request.
+--
+-- This action is not supported for Kinesis Data Analytics for SQL
+-- applications.
+module Amazonka.KinesisAnalyticsV2.RollbackApplication
+  ( -- * Creating a Request
+    RollbackApplication (..),
+    newRollbackApplication,
+
+    -- * Request Lenses
+    rollbackApplication_applicationName,
+    rollbackApplication_currentApplicationVersionId,
+
+    -- * Destructuring the Response
+    RollbackApplicationResponse (..),
+    newRollbackApplicationResponse,
+
+    -- * Response Lenses
+    rollbackApplicationResponse_httpStatus,
+    rollbackApplicationResponse_applicationDetail,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newRollbackApplication' smart constructor.
+data RollbackApplication = RollbackApplication'
+  { -- | The name of the application.
+    applicationName :: Prelude.Text,
+    -- | The current application version ID. You can retrieve the application
+    -- version ID using DescribeApplication.
+    currentApplicationVersionId :: Prelude.Natural
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RollbackApplication' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'rollbackApplication_applicationName' - The name of the application.
+--
+-- 'currentApplicationVersionId', 'rollbackApplication_currentApplicationVersionId' - The current application version ID. You can retrieve the application
+-- version ID using DescribeApplication.
+newRollbackApplication ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'currentApplicationVersionId'
+  Prelude.Natural ->
+  RollbackApplication
+newRollbackApplication
+  pApplicationName_
+  pCurrentApplicationVersionId_ =
+    RollbackApplication'
+      { applicationName =
+          pApplicationName_,
+        currentApplicationVersionId =
+          pCurrentApplicationVersionId_
+      }
+
+-- | The name of the application.
+rollbackApplication_applicationName :: Lens.Lens' RollbackApplication Prelude.Text
+rollbackApplication_applicationName = Lens.lens (\RollbackApplication' {applicationName} -> applicationName) (\s@RollbackApplication' {} a -> s {applicationName = a} :: RollbackApplication)
+
+-- | The current application version ID. You can retrieve the application
+-- version ID using DescribeApplication.
+rollbackApplication_currentApplicationVersionId :: Lens.Lens' RollbackApplication Prelude.Natural
+rollbackApplication_currentApplicationVersionId = Lens.lens (\RollbackApplication' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@RollbackApplication' {} a -> s {currentApplicationVersionId = a} :: RollbackApplication)
+
+instance Core.AWSRequest RollbackApplication where
+  type
+    AWSResponse RollbackApplication =
+      RollbackApplicationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          RollbackApplicationResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "ApplicationDetail")
+      )
+
+instance Prelude.Hashable RollbackApplication where
+  hashWithSalt _salt RollbackApplication' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` currentApplicationVersionId
+
+instance Prelude.NFData RollbackApplication where
+  rnf RollbackApplication' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf currentApplicationVersionId
+
+instance Data.ToHeaders RollbackApplication where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.RollbackApplication" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON RollbackApplication where
+  toJSON RollbackApplication' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ( "CurrentApplicationVersionId"
+                  Data..= currentApplicationVersionId
+              )
+          ]
+      )
+
+instance Data.ToPath RollbackApplication where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery RollbackApplication where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newRollbackApplicationResponse' smart constructor.
+data RollbackApplicationResponse = RollbackApplicationResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    applicationDetail :: ApplicationDetail
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RollbackApplicationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'rollbackApplicationResponse_httpStatus' - The response's http status code.
+--
+-- 'applicationDetail', 'rollbackApplicationResponse_applicationDetail' - Undocumented member.
+newRollbackApplicationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'applicationDetail'
+  ApplicationDetail ->
+  RollbackApplicationResponse
+newRollbackApplicationResponse
+  pHttpStatus_
+  pApplicationDetail_ =
+    RollbackApplicationResponse'
+      { httpStatus =
+          pHttpStatus_,
+        applicationDetail = pApplicationDetail_
+      }
+
+-- | The response's http status code.
+rollbackApplicationResponse_httpStatus :: Lens.Lens' RollbackApplicationResponse Prelude.Int
+rollbackApplicationResponse_httpStatus = Lens.lens (\RollbackApplicationResponse' {httpStatus} -> httpStatus) (\s@RollbackApplicationResponse' {} a -> s {httpStatus = a} :: RollbackApplicationResponse)
+
+-- | Undocumented member.
+rollbackApplicationResponse_applicationDetail :: Lens.Lens' RollbackApplicationResponse ApplicationDetail
+rollbackApplicationResponse_applicationDetail = Lens.lens (\RollbackApplicationResponse' {applicationDetail} -> applicationDetail) (\s@RollbackApplicationResponse' {} a -> s {applicationDetail = a} :: RollbackApplicationResponse)
+
+instance Prelude.NFData RollbackApplicationResponse where
+  rnf RollbackApplicationResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf applicationDetail
diff --git a/gen/Amazonka/KinesisAnalyticsV2/StartApplication.hs b/gen/Amazonka/KinesisAnalyticsV2/StartApplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/StartApplication.hs
@@ -0,0 +1,182 @@
+{-# 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.KinesisAnalyticsV2.StartApplication
+-- 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 the specified Kinesis Data Analytics application. After creating
+-- an application, you must exclusively call this operation to start your
+-- application.
+module Amazonka.KinesisAnalyticsV2.StartApplication
+  ( -- * Creating a Request
+    StartApplication (..),
+    newStartApplication,
+
+    -- * Request Lenses
+    startApplication_runConfiguration,
+    startApplication_applicationName,
+
+    -- * Destructuring the Response
+    StartApplicationResponse (..),
+    newStartApplicationResponse,
+
+    -- * Response Lenses
+    startApplicationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newStartApplication' smart constructor.
+data StartApplication = StartApplication'
+  { -- | Identifies the run configuration (start parameters) of a Kinesis Data
+    -- Analytics application.
+    runConfiguration :: Prelude.Maybe RunConfiguration,
+    -- | The name of the application.
+    applicationName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'StartApplication' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'runConfiguration', 'startApplication_runConfiguration' - Identifies the run configuration (start parameters) of a Kinesis Data
+-- Analytics application.
+--
+-- 'applicationName', 'startApplication_applicationName' - The name of the application.
+newStartApplication ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  StartApplication
+newStartApplication pApplicationName_ =
+  StartApplication'
+    { runConfiguration =
+        Prelude.Nothing,
+      applicationName = pApplicationName_
+    }
+
+-- | Identifies the run configuration (start parameters) of a Kinesis Data
+-- Analytics application.
+startApplication_runConfiguration :: Lens.Lens' StartApplication (Prelude.Maybe RunConfiguration)
+startApplication_runConfiguration = Lens.lens (\StartApplication' {runConfiguration} -> runConfiguration) (\s@StartApplication' {} a -> s {runConfiguration = a} :: StartApplication)
+
+-- | The name of the application.
+startApplication_applicationName :: Lens.Lens' StartApplication Prelude.Text
+startApplication_applicationName = Lens.lens (\StartApplication' {applicationName} -> applicationName) (\s@StartApplication' {} a -> s {applicationName = a} :: StartApplication)
+
+instance Core.AWSRequest StartApplication where
+  type
+    AWSResponse StartApplication =
+      StartApplicationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          StartApplicationResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable StartApplication where
+  hashWithSalt _salt StartApplication' {..} =
+    _salt
+      `Prelude.hashWithSalt` runConfiguration
+      `Prelude.hashWithSalt` applicationName
+
+instance Prelude.NFData StartApplication where
+  rnf StartApplication' {..} =
+    Prelude.rnf runConfiguration
+      `Prelude.seq` Prelude.rnf applicationName
+
+instance Data.ToHeaders StartApplication where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.StartApplication" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON StartApplication where
+  toJSON StartApplication' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("RunConfiguration" Data..=)
+              Prelude.<$> runConfiguration,
+            Prelude.Just
+              ("ApplicationName" Data..= applicationName)
+          ]
+      )
+
+instance Data.ToPath StartApplication where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery StartApplication where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newStartApplicationResponse' smart constructor.
+data StartApplicationResponse = StartApplicationResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'StartApplicationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'startApplicationResponse_httpStatus' - The response's http status code.
+newStartApplicationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  StartApplicationResponse
+newStartApplicationResponse pHttpStatus_ =
+  StartApplicationResponse'
+    { httpStatus =
+        pHttpStatus_
+    }
+
+-- | The response's http status code.
+startApplicationResponse_httpStatus :: Lens.Lens' StartApplicationResponse Prelude.Int
+startApplicationResponse_httpStatus = Lens.lens (\StartApplicationResponse' {httpStatus} -> httpStatus) (\s@StartApplicationResponse' {} a -> s {httpStatus = a} :: StartApplicationResponse)
+
+instance Prelude.NFData StartApplicationResponse where
+  rnf StartApplicationResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/StopApplication.hs b/gen/Amazonka/KinesisAnalyticsV2/StopApplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/StopApplication.hs
@@ -0,0 +1,222 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.StopApplication
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Stops the application from processing data. You can stop an application
+-- only if it is in the running status, unless you set the @Force@
+-- parameter to @true@.
+--
+-- You can use the DescribeApplication operation to find the application
+-- status.
+--
+-- Kinesis Data Analytics takes a snapshot when the application is stopped,
+-- unless @Force@ is set to @true@.
+module Amazonka.KinesisAnalyticsV2.StopApplication
+  ( -- * Creating a Request
+    StopApplication (..),
+    newStopApplication,
+
+    -- * Request Lenses
+    stopApplication_force,
+    stopApplication_applicationName,
+
+    -- * Destructuring the Response
+    StopApplicationResponse (..),
+    newStopApplicationResponse,
+
+    -- * Response Lenses
+    stopApplicationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newStopApplication' smart constructor.
+data StopApplication = StopApplication'
+  { -- | Set to @true@ to force the application to stop. If you set @Force@ to
+    -- @true@, Kinesis Data Analytics stops the application without taking a
+    -- snapshot.
+    --
+    -- Force-stopping your application may lead to data loss or duplication. To
+    -- prevent data loss or duplicate processing of data during application
+    -- restarts, we recommend you to take frequent snapshots of your
+    -- application.
+    --
+    -- You can only force stop a Flink-based Kinesis Data Analytics
+    -- application. You can\'t force stop a SQL-based Kinesis Data Analytics
+    -- application.
+    --
+    -- The application must be in the @STARTING@, @UPDATING@, @STOPPING@,
+    -- @AUTOSCALING@, or @RUNNING@ status.
+    force :: Prelude.Maybe Prelude.Bool,
+    -- | The name of the running application to stop.
+    applicationName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'StopApplication' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'force', 'stopApplication_force' - Set to @true@ to force the application to stop. If you set @Force@ to
+-- @true@, Kinesis Data Analytics stops the application without taking a
+-- snapshot.
+--
+-- Force-stopping your application may lead to data loss or duplication. To
+-- prevent data loss or duplicate processing of data during application
+-- restarts, we recommend you to take frequent snapshots of your
+-- application.
+--
+-- You can only force stop a Flink-based Kinesis Data Analytics
+-- application. You can\'t force stop a SQL-based Kinesis Data Analytics
+-- application.
+--
+-- The application must be in the @STARTING@, @UPDATING@, @STOPPING@,
+-- @AUTOSCALING@, or @RUNNING@ status.
+--
+-- 'applicationName', 'stopApplication_applicationName' - The name of the running application to stop.
+newStopApplication ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  StopApplication
+newStopApplication pApplicationName_ =
+  StopApplication'
+    { force = Prelude.Nothing,
+      applicationName = pApplicationName_
+    }
+
+-- | Set to @true@ to force the application to stop. If you set @Force@ to
+-- @true@, Kinesis Data Analytics stops the application without taking a
+-- snapshot.
+--
+-- Force-stopping your application may lead to data loss or duplication. To
+-- prevent data loss or duplicate processing of data during application
+-- restarts, we recommend you to take frequent snapshots of your
+-- application.
+--
+-- You can only force stop a Flink-based Kinesis Data Analytics
+-- application. You can\'t force stop a SQL-based Kinesis Data Analytics
+-- application.
+--
+-- The application must be in the @STARTING@, @UPDATING@, @STOPPING@,
+-- @AUTOSCALING@, or @RUNNING@ status.
+stopApplication_force :: Lens.Lens' StopApplication (Prelude.Maybe Prelude.Bool)
+stopApplication_force = Lens.lens (\StopApplication' {force} -> force) (\s@StopApplication' {} a -> s {force = a} :: StopApplication)
+
+-- | The name of the running application to stop.
+stopApplication_applicationName :: Lens.Lens' StopApplication Prelude.Text
+stopApplication_applicationName = Lens.lens (\StopApplication' {applicationName} -> applicationName) (\s@StopApplication' {} a -> s {applicationName = a} :: StopApplication)
+
+instance Core.AWSRequest StopApplication where
+  type
+    AWSResponse StopApplication =
+      StopApplicationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          StopApplicationResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable StopApplication where
+  hashWithSalt _salt StopApplication' {..} =
+    _salt
+      `Prelude.hashWithSalt` force
+      `Prelude.hashWithSalt` applicationName
+
+instance Prelude.NFData StopApplication where
+  rnf StopApplication' {..} =
+    Prelude.rnf force
+      `Prelude.seq` Prelude.rnf applicationName
+
+instance Data.ToHeaders StopApplication where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.StopApplication" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON StopApplication where
+  toJSON StopApplication' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Force" Data..=) Prelude.<$> force,
+            Prelude.Just
+              ("ApplicationName" Data..= applicationName)
+          ]
+      )
+
+instance Data.ToPath StopApplication where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery StopApplication where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newStopApplicationResponse' smart constructor.
+data StopApplicationResponse = StopApplicationResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'StopApplicationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'stopApplicationResponse_httpStatus' - The response's http status code.
+newStopApplicationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  StopApplicationResponse
+newStopApplicationResponse pHttpStatus_ =
+  StopApplicationResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+stopApplicationResponse_httpStatus :: Lens.Lens' StopApplicationResponse Prelude.Int
+stopApplicationResponse_httpStatus = Lens.lens (\StopApplicationResponse' {httpStatus} -> httpStatus) (\s@StopApplicationResponse' {} a -> s {httpStatus = a} :: StopApplicationResponse)
+
+instance Prelude.NFData StopApplicationResponse where
+  rnf StopApplicationResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/TagResource.hs b/gen/Amazonka/KinesisAnalyticsV2/TagResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/TagResource.hs
@@ -0,0 +1,174 @@
+{-# 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.KinesisAnalyticsV2.TagResource
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds one or more key-value tags to a Kinesis Data Analytics application.
+-- Note that the maximum number of application tags includes system tags.
+-- The maximum number of user-defined application tags is 50. For more
+-- information, see
+-- <https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html Using Tagging>.
+module Amazonka.KinesisAnalyticsV2.TagResource
+  ( -- * Creating a Request
+    TagResource (..),
+    newTagResource,
+
+    -- * Request Lenses
+    tagResource_resourceARN,
+    tagResource_tags,
+
+    -- * Destructuring the Response
+    TagResourceResponse (..),
+    newTagResourceResponse,
+
+    -- * Response Lenses
+    tagResourceResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newTagResource' smart constructor.
+data TagResource = TagResource'
+  { -- | The ARN of the application to assign the tags.
+    resourceARN :: Prelude.Text,
+    -- | The key-value tags to assign to the application.
+    tags :: Prelude.NonEmpty Tag
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'TagResource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARN', 'tagResource_resourceARN' - The ARN of the application to assign the tags.
+--
+-- 'tags', 'tagResource_tags' - The key-value tags to assign to the application.
+newTagResource ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  -- | 'tags'
+  Prelude.NonEmpty Tag ->
+  TagResource
+newTagResource pResourceARN_ pTags_ =
+  TagResource'
+    { resourceARN = pResourceARN_,
+      tags = Lens.coerced Lens.# pTags_
+    }
+
+-- | The ARN of the application to assign the tags.
+tagResource_resourceARN :: Lens.Lens' TagResource Prelude.Text
+tagResource_resourceARN = Lens.lens (\TagResource' {resourceARN} -> resourceARN) (\s@TagResource' {} a -> s {resourceARN = a} :: TagResource)
+
+-- | The key-value tags to assign to the application.
+tagResource_tags :: Lens.Lens' TagResource (Prelude.NonEmpty Tag)
+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced
+
+instance Core.AWSRequest TagResource where
+  type AWSResponse TagResource = TagResourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          TagResourceResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable TagResource where
+  hashWithSalt _salt TagResource' {..} =
+    _salt
+      `Prelude.hashWithSalt` resourceARN
+      `Prelude.hashWithSalt` tags
+
+instance Prelude.NFData TagResource where
+  rnf TagResource' {..} =
+    Prelude.rnf resourceARN
+      `Prelude.seq` Prelude.rnf tags
+
+instance Data.ToHeaders TagResource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.TagResource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON TagResource where
+  toJSON TagResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("ResourceARN" Data..= resourceARN),
+            Prelude.Just ("Tags" Data..= tags)
+          ]
+      )
+
+instance Data.ToPath TagResource where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery TagResource where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newTagResourceResponse' smart constructor.
+data TagResourceResponse = TagResourceResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'TagResourceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.
+newTagResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  TagResourceResponse
+newTagResourceResponse pHttpStatus_ =
+  TagResourceResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int
+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)
+
+instance Prelude.NFData TagResourceResponse where
+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types.hs b/gen/Amazonka/KinesisAnalyticsV2/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types.hs
@@ -0,0 +1,1174 @@
+{-# 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.KinesisAnalyticsV2.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.KinesisAnalyticsV2.Types
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    _CodeValidationException,
+    _ConcurrentModificationException,
+    _InvalidApplicationConfigurationException,
+    _InvalidArgumentException,
+    _InvalidRequestException,
+    _LimitExceededException,
+    _ResourceInUseException,
+    _ResourceNotFoundException,
+    _ResourceProvisionedThroughputExceededException,
+    _ServiceUnavailableException,
+    _TooManyTagsException,
+    _UnableToDetectSchemaException,
+    _UnsupportedOperationException,
+
+    -- * ApplicationMode
+    ApplicationMode (..),
+
+    -- * ApplicationRestoreType
+    ApplicationRestoreType (..),
+
+    -- * ApplicationStatus
+    ApplicationStatus (..),
+
+    -- * ArtifactType
+    ArtifactType (..),
+
+    -- * CodeContentType
+    CodeContentType (..),
+
+    -- * ConfigurationType
+    ConfigurationType (..),
+
+    -- * InputStartingPosition
+    InputStartingPosition (..),
+
+    -- * LogLevel
+    LogLevel (..),
+
+    -- * MetricsLevel
+    MetricsLevel (..),
+
+    -- * RecordFormatType
+    RecordFormatType (..),
+
+    -- * RuntimeEnvironment
+    RuntimeEnvironment (..),
+
+    -- * SnapshotStatus
+    SnapshotStatus (..),
+
+    -- * UrlType
+    UrlType (..),
+
+    -- * ApplicationCodeConfiguration
+    ApplicationCodeConfiguration (..),
+    newApplicationCodeConfiguration,
+    applicationCodeConfiguration_codeContent,
+    applicationCodeConfiguration_codeContentType,
+
+    -- * ApplicationCodeConfigurationDescription
+    ApplicationCodeConfigurationDescription (..),
+    newApplicationCodeConfigurationDescription,
+    applicationCodeConfigurationDescription_codeContentDescription,
+    applicationCodeConfigurationDescription_codeContentType,
+
+    -- * ApplicationCodeConfigurationUpdate
+    ApplicationCodeConfigurationUpdate (..),
+    newApplicationCodeConfigurationUpdate,
+    applicationCodeConfigurationUpdate_codeContentTypeUpdate,
+    applicationCodeConfigurationUpdate_codeContentUpdate,
+
+    -- * ApplicationConfiguration
+    ApplicationConfiguration (..),
+    newApplicationConfiguration,
+    applicationConfiguration_applicationCodeConfiguration,
+    applicationConfiguration_applicationSnapshotConfiguration,
+    applicationConfiguration_environmentProperties,
+    applicationConfiguration_flinkApplicationConfiguration,
+    applicationConfiguration_sqlApplicationConfiguration,
+    applicationConfiguration_vpcConfigurations,
+    applicationConfiguration_zeppelinApplicationConfiguration,
+
+    -- * ApplicationConfigurationDescription
+    ApplicationConfigurationDescription (..),
+    newApplicationConfigurationDescription,
+    applicationConfigurationDescription_applicationCodeConfigurationDescription,
+    applicationConfigurationDescription_applicationSnapshotConfigurationDescription,
+    applicationConfigurationDescription_environmentPropertyDescriptions,
+    applicationConfigurationDescription_flinkApplicationConfigurationDescription,
+    applicationConfigurationDescription_runConfigurationDescription,
+    applicationConfigurationDescription_sqlApplicationConfigurationDescription,
+    applicationConfigurationDescription_vpcConfigurationDescriptions,
+    applicationConfigurationDescription_zeppelinApplicationConfigurationDescription,
+
+    -- * ApplicationConfigurationUpdate
+    ApplicationConfigurationUpdate (..),
+    newApplicationConfigurationUpdate,
+    applicationConfigurationUpdate_applicationCodeConfigurationUpdate,
+    applicationConfigurationUpdate_applicationSnapshotConfigurationUpdate,
+    applicationConfigurationUpdate_environmentPropertyUpdates,
+    applicationConfigurationUpdate_flinkApplicationConfigurationUpdate,
+    applicationConfigurationUpdate_sqlApplicationConfigurationUpdate,
+    applicationConfigurationUpdate_vpcConfigurationUpdates,
+    applicationConfigurationUpdate_zeppelinApplicationConfigurationUpdate,
+
+    -- * ApplicationDetail
+    ApplicationDetail (..),
+    newApplicationDetail,
+    applicationDetail_applicationConfigurationDescription,
+    applicationDetail_applicationDescription,
+    applicationDetail_applicationMaintenanceConfigurationDescription,
+    applicationDetail_applicationMode,
+    applicationDetail_applicationVersionRolledBackFrom,
+    applicationDetail_applicationVersionRolledBackTo,
+    applicationDetail_applicationVersionUpdatedFrom,
+    applicationDetail_cloudWatchLoggingOptionDescriptions,
+    applicationDetail_conditionalToken,
+    applicationDetail_createTimestamp,
+    applicationDetail_lastUpdateTimestamp,
+    applicationDetail_serviceExecutionRole,
+    applicationDetail_applicationARN,
+    applicationDetail_applicationName,
+    applicationDetail_runtimeEnvironment,
+    applicationDetail_applicationStatus,
+    applicationDetail_applicationVersionId,
+
+    -- * ApplicationMaintenanceConfigurationDescription
+    ApplicationMaintenanceConfigurationDescription (..),
+    newApplicationMaintenanceConfigurationDescription,
+    applicationMaintenanceConfigurationDescription_applicationMaintenanceWindowStartTime,
+    applicationMaintenanceConfigurationDescription_applicationMaintenanceWindowEndTime,
+
+    -- * ApplicationMaintenanceConfigurationUpdate
+    ApplicationMaintenanceConfigurationUpdate (..),
+    newApplicationMaintenanceConfigurationUpdate,
+    applicationMaintenanceConfigurationUpdate_applicationMaintenanceWindowStartTimeUpdate,
+
+    -- * ApplicationRestoreConfiguration
+    ApplicationRestoreConfiguration (..),
+    newApplicationRestoreConfiguration,
+    applicationRestoreConfiguration_snapshotName,
+    applicationRestoreConfiguration_applicationRestoreType,
+
+    -- * ApplicationSnapshotConfiguration
+    ApplicationSnapshotConfiguration (..),
+    newApplicationSnapshotConfiguration,
+    applicationSnapshotConfiguration_snapshotsEnabled,
+
+    -- * ApplicationSnapshotConfigurationDescription
+    ApplicationSnapshotConfigurationDescription (..),
+    newApplicationSnapshotConfigurationDescription,
+    applicationSnapshotConfigurationDescription_snapshotsEnabled,
+
+    -- * ApplicationSnapshotConfigurationUpdate
+    ApplicationSnapshotConfigurationUpdate (..),
+    newApplicationSnapshotConfigurationUpdate,
+    applicationSnapshotConfigurationUpdate_snapshotsEnabledUpdate,
+
+    -- * ApplicationSummary
+    ApplicationSummary (..),
+    newApplicationSummary,
+    applicationSummary_applicationMode,
+    applicationSummary_applicationName,
+    applicationSummary_applicationARN,
+    applicationSummary_applicationStatus,
+    applicationSummary_applicationVersionId,
+    applicationSummary_runtimeEnvironment,
+
+    -- * ApplicationVersionSummary
+    ApplicationVersionSummary (..),
+    newApplicationVersionSummary,
+    applicationVersionSummary_applicationVersionId,
+    applicationVersionSummary_applicationStatus,
+
+    -- * CSVMappingParameters
+    CSVMappingParameters (..),
+    newCSVMappingParameters,
+    cSVMappingParameters_recordRowDelimiter,
+    cSVMappingParameters_recordColumnDelimiter,
+
+    -- * CatalogConfiguration
+    CatalogConfiguration (..),
+    newCatalogConfiguration,
+    catalogConfiguration_glueDataCatalogConfiguration,
+
+    -- * CatalogConfigurationDescription
+    CatalogConfigurationDescription (..),
+    newCatalogConfigurationDescription,
+    catalogConfigurationDescription_glueDataCatalogConfigurationDescription,
+
+    -- * CatalogConfigurationUpdate
+    CatalogConfigurationUpdate (..),
+    newCatalogConfigurationUpdate,
+    catalogConfigurationUpdate_glueDataCatalogConfigurationUpdate,
+
+    -- * CheckpointConfiguration
+    CheckpointConfiguration (..),
+    newCheckpointConfiguration,
+    checkpointConfiguration_checkpointInterval,
+    checkpointConfiguration_checkpointingEnabled,
+    checkpointConfiguration_minPauseBetweenCheckpoints,
+    checkpointConfiguration_configurationType,
+
+    -- * CheckpointConfigurationDescription
+    CheckpointConfigurationDescription (..),
+    newCheckpointConfigurationDescription,
+    checkpointConfigurationDescription_checkpointInterval,
+    checkpointConfigurationDescription_checkpointingEnabled,
+    checkpointConfigurationDescription_configurationType,
+    checkpointConfigurationDescription_minPauseBetweenCheckpoints,
+
+    -- * CheckpointConfigurationUpdate
+    CheckpointConfigurationUpdate (..),
+    newCheckpointConfigurationUpdate,
+    checkpointConfigurationUpdate_checkpointIntervalUpdate,
+    checkpointConfigurationUpdate_checkpointingEnabledUpdate,
+    checkpointConfigurationUpdate_configurationTypeUpdate,
+    checkpointConfigurationUpdate_minPauseBetweenCheckpointsUpdate,
+
+    -- * CloudWatchLoggingOption
+    CloudWatchLoggingOption (..),
+    newCloudWatchLoggingOption,
+    cloudWatchLoggingOption_logStreamARN,
+
+    -- * CloudWatchLoggingOptionDescription
+    CloudWatchLoggingOptionDescription (..),
+    newCloudWatchLoggingOptionDescription,
+    cloudWatchLoggingOptionDescription_cloudWatchLoggingOptionId,
+    cloudWatchLoggingOptionDescription_roleARN,
+    cloudWatchLoggingOptionDescription_logStreamARN,
+
+    -- * CloudWatchLoggingOptionUpdate
+    CloudWatchLoggingOptionUpdate (..),
+    newCloudWatchLoggingOptionUpdate,
+    cloudWatchLoggingOptionUpdate_logStreamARNUpdate,
+    cloudWatchLoggingOptionUpdate_cloudWatchLoggingOptionId,
+
+    -- * CodeContent
+    CodeContent (..),
+    newCodeContent,
+    codeContent_s3ContentLocation,
+    codeContent_textContent,
+    codeContent_zipFileContent,
+
+    -- * CodeContentDescription
+    CodeContentDescription (..),
+    newCodeContentDescription,
+    codeContentDescription_codeMD5,
+    codeContentDescription_codeSize,
+    codeContentDescription_s3ApplicationCodeLocationDescription,
+    codeContentDescription_textContent,
+
+    -- * CodeContentUpdate
+    CodeContentUpdate (..),
+    newCodeContentUpdate,
+    codeContentUpdate_s3ContentLocationUpdate,
+    codeContentUpdate_textContentUpdate,
+    codeContentUpdate_zipFileContentUpdate,
+
+    -- * CustomArtifactConfiguration
+    CustomArtifactConfiguration (..),
+    newCustomArtifactConfiguration,
+    customArtifactConfiguration_mavenReference,
+    customArtifactConfiguration_s3ContentLocation,
+    customArtifactConfiguration_artifactType,
+
+    -- * CustomArtifactConfigurationDescription
+    CustomArtifactConfigurationDescription (..),
+    newCustomArtifactConfigurationDescription,
+    customArtifactConfigurationDescription_artifactType,
+    customArtifactConfigurationDescription_mavenReferenceDescription,
+    customArtifactConfigurationDescription_s3ContentLocationDescription,
+
+    -- * DeployAsApplicationConfiguration
+    DeployAsApplicationConfiguration (..),
+    newDeployAsApplicationConfiguration,
+    deployAsApplicationConfiguration_s3ContentLocation,
+
+    -- * DeployAsApplicationConfigurationDescription
+    DeployAsApplicationConfigurationDescription (..),
+    newDeployAsApplicationConfigurationDescription,
+    deployAsApplicationConfigurationDescription_s3ContentLocationDescription,
+
+    -- * DeployAsApplicationConfigurationUpdate
+    DeployAsApplicationConfigurationUpdate (..),
+    newDeployAsApplicationConfigurationUpdate,
+    deployAsApplicationConfigurationUpdate_s3ContentLocationUpdate,
+
+    -- * DestinationSchema
+    DestinationSchema (..),
+    newDestinationSchema,
+    destinationSchema_recordFormatType,
+
+    -- * EnvironmentProperties
+    EnvironmentProperties (..),
+    newEnvironmentProperties,
+    environmentProperties_propertyGroups,
+
+    -- * EnvironmentPropertyDescriptions
+    EnvironmentPropertyDescriptions (..),
+    newEnvironmentPropertyDescriptions,
+    environmentPropertyDescriptions_propertyGroupDescriptions,
+
+    -- * EnvironmentPropertyUpdates
+    EnvironmentPropertyUpdates (..),
+    newEnvironmentPropertyUpdates,
+    environmentPropertyUpdates_propertyGroups,
+
+    -- * FlinkApplicationConfiguration
+    FlinkApplicationConfiguration (..),
+    newFlinkApplicationConfiguration,
+    flinkApplicationConfiguration_checkpointConfiguration,
+    flinkApplicationConfiguration_monitoringConfiguration,
+    flinkApplicationConfiguration_parallelismConfiguration,
+
+    -- * FlinkApplicationConfigurationDescription
+    FlinkApplicationConfigurationDescription (..),
+    newFlinkApplicationConfigurationDescription,
+    flinkApplicationConfigurationDescription_checkpointConfigurationDescription,
+    flinkApplicationConfigurationDescription_jobPlanDescription,
+    flinkApplicationConfigurationDescription_monitoringConfigurationDescription,
+    flinkApplicationConfigurationDescription_parallelismConfigurationDescription,
+
+    -- * FlinkApplicationConfigurationUpdate
+    FlinkApplicationConfigurationUpdate (..),
+    newFlinkApplicationConfigurationUpdate,
+    flinkApplicationConfigurationUpdate_checkpointConfigurationUpdate,
+    flinkApplicationConfigurationUpdate_monitoringConfigurationUpdate,
+    flinkApplicationConfigurationUpdate_parallelismConfigurationUpdate,
+
+    -- * FlinkRunConfiguration
+    FlinkRunConfiguration (..),
+    newFlinkRunConfiguration,
+    flinkRunConfiguration_allowNonRestoredState,
+
+    -- * GlueDataCatalogConfiguration
+    GlueDataCatalogConfiguration (..),
+    newGlueDataCatalogConfiguration,
+    glueDataCatalogConfiguration_databaseARN,
+
+    -- * GlueDataCatalogConfigurationDescription
+    GlueDataCatalogConfigurationDescription (..),
+    newGlueDataCatalogConfigurationDescription,
+    glueDataCatalogConfigurationDescription_databaseARN,
+
+    -- * GlueDataCatalogConfigurationUpdate
+    GlueDataCatalogConfigurationUpdate (..),
+    newGlueDataCatalogConfigurationUpdate,
+    glueDataCatalogConfigurationUpdate_databaseARNUpdate,
+
+    -- * Input
+    Input (..),
+    newInput,
+    input_inputParallelism,
+    input_inputProcessingConfiguration,
+    input_kinesisFirehoseInput,
+    input_kinesisStreamsInput,
+    input_namePrefix,
+    input_inputSchema,
+
+    -- * InputDescription
+    InputDescription (..),
+    newInputDescription,
+    inputDescription_inAppStreamNames,
+    inputDescription_inputId,
+    inputDescription_inputParallelism,
+    inputDescription_inputProcessingConfigurationDescription,
+    inputDescription_inputSchema,
+    inputDescription_inputStartingPositionConfiguration,
+    inputDescription_kinesisFirehoseInputDescription,
+    inputDescription_kinesisStreamsInputDescription,
+    inputDescription_namePrefix,
+
+    -- * InputLambdaProcessor
+    InputLambdaProcessor (..),
+    newInputLambdaProcessor,
+    inputLambdaProcessor_resourceARN,
+
+    -- * InputLambdaProcessorDescription
+    InputLambdaProcessorDescription (..),
+    newInputLambdaProcessorDescription,
+    inputLambdaProcessorDescription_roleARN,
+    inputLambdaProcessorDescription_resourceARN,
+
+    -- * InputLambdaProcessorUpdate
+    InputLambdaProcessorUpdate (..),
+    newInputLambdaProcessorUpdate,
+    inputLambdaProcessorUpdate_resourceARNUpdate,
+
+    -- * InputParallelism
+    InputParallelism (..),
+    newInputParallelism,
+    inputParallelism_count,
+
+    -- * InputParallelismUpdate
+    InputParallelismUpdate (..),
+    newInputParallelismUpdate,
+    inputParallelismUpdate_countUpdate,
+
+    -- * InputProcessingConfiguration
+    InputProcessingConfiguration (..),
+    newInputProcessingConfiguration,
+    inputProcessingConfiguration_inputLambdaProcessor,
+
+    -- * InputProcessingConfigurationDescription
+    InputProcessingConfigurationDescription (..),
+    newInputProcessingConfigurationDescription,
+    inputProcessingConfigurationDescription_inputLambdaProcessorDescription,
+
+    -- * InputProcessingConfigurationUpdate
+    InputProcessingConfigurationUpdate (..),
+    newInputProcessingConfigurationUpdate,
+    inputProcessingConfigurationUpdate_inputLambdaProcessorUpdate,
+
+    -- * InputSchemaUpdate
+    InputSchemaUpdate (..),
+    newInputSchemaUpdate,
+    inputSchemaUpdate_recordColumnUpdates,
+    inputSchemaUpdate_recordEncodingUpdate,
+    inputSchemaUpdate_recordFormatUpdate,
+
+    -- * InputStartingPositionConfiguration
+    InputStartingPositionConfiguration (..),
+    newInputStartingPositionConfiguration,
+    inputStartingPositionConfiguration_inputStartingPosition,
+
+    -- * InputUpdate
+    InputUpdate (..),
+    newInputUpdate,
+    inputUpdate_inputParallelismUpdate,
+    inputUpdate_inputProcessingConfigurationUpdate,
+    inputUpdate_inputSchemaUpdate,
+    inputUpdate_kinesisFirehoseInputUpdate,
+    inputUpdate_kinesisStreamsInputUpdate,
+    inputUpdate_namePrefixUpdate,
+    inputUpdate_inputId,
+
+    -- * JSONMappingParameters
+    JSONMappingParameters (..),
+    newJSONMappingParameters,
+    jSONMappingParameters_recordRowPath,
+
+    -- * KinesisFirehoseInput
+    KinesisFirehoseInput (..),
+    newKinesisFirehoseInput,
+    kinesisFirehoseInput_resourceARN,
+
+    -- * KinesisFirehoseInputDescription
+    KinesisFirehoseInputDescription (..),
+    newKinesisFirehoseInputDescription,
+    kinesisFirehoseInputDescription_roleARN,
+    kinesisFirehoseInputDescription_resourceARN,
+
+    -- * KinesisFirehoseInputUpdate
+    KinesisFirehoseInputUpdate (..),
+    newKinesisFirehoseInputUpdate,
+    kinesisFirehoseInputUpdate_resourceARNUpdate,
+
+    -- * KinesisFirehoseOutput
+    KinesisFirehoseOutput (..),
+    newKinesisFirehoseOutput,
+    kinesisFirehoseOutput_resourceARN,
+
+    -- * KinesisFirehoseOutputDescription
+    KinesisFirehoseOutputDescription (..),
+    newKinesisFirehoseOutputDescription,
+    kinesisFirehoseOutputDescription_roleARN,
+    kinesisFirehoseOutputDescription_resourceARN,
+
+    -- * KinesisFirehoseOutputUpdate
+    KinesisFirehoseOutputUpdate (..),
+    newKinesisFirehoseOutputUpdate,
+    kinesisFirehoseOutputUpdate_resourceARNUpdate,
+
+    -- * KinesisStreamsInput
+    KinesisStreamsInput (..),
+    newKinesisStreamsInput,
+    kinesisStreamsInput_resourceARN,
+
+    -- * KinesisStreamsInputDescription
+    KinesisStreamsInputDescription (..),
+    newKinesisStreamsInputDescription,
+    kinesisStreamsInputDescription_roleARN,
+    kinesisStreamsInputDescription_resourceARN,
+
+    -- * KinesisStreamsInputUpdate
+    KinesisStreamsInputUpdate (..),
+    newKinesisStreamsInputUpdate,
+    kinesisStreamsInputUpdate_resourceARNUpdate,
+
+    -- * KinesisStreamsOutput
+    KinesisStreamsOutput (..),
+    newKinesisStreamsOutput,
+    kinesisStreamsOutput_resourceARN,
+
+    -- * KinesisStreamsOutputDescription
+    KinesisStreamsOutputDescription (..),
+    newKinesisStreamsOutputDescription,
+    kinesisStreamsOutputDescription_roleARN,
+    kinesisStreamsOutputDescription_resourceARN,
+
+    -- * KinesisStreamsOutputUpdate
+    KinesisStreamsOutputUpdate (..),
+    newKinesisStreamsOutputUpdate,
+    kinesisStreamsOutputUpdate_resourceARNUpdate,
+
+    -- * LambdaOutput
+    LambdaOutput (..),
+    newLambdaOutput,
+    lambdaOutput_resourceARN,
+
+    -- * LambdaOutputDescription
+    LambdaOutputDescription (..),
+    newLambdaOutputDescription,
+    lambdaOutputDescription_roleARN,
+    lambdaOutputDescription_resourceARN,
+
+    -- * LambdaOutputUpdate
+    LambdaOutputUpdate (..),
+    newLambdaOutputUpdate,
+    lambdaOutputUpdate_resourceARNUpdate,
+
+    -- * MappingParameters
+    MappingParameters (..),
+    newMappingParameters,
+    mappingParameters_cSVMappingParameters,
+    mappingParameters_jSONMappingParameters,
+
+    -- * MavenReference
+    MavenReference (..),
+    newMavenReference,
+    mavenReference_groupId,
+    mavenReference_artifactId,
+    mavenReference_version,
+
+    -- * MonitoringConfiguration
+    MonitoringConfiguration (..),
+    newMonitoringConfiguration,
+    monitoringConfiguration_logLevel,
+    monitoringConfiguration_metricsLevel,
+    monitoringConfiguration_configurationType,
+
+    -- * MonitoringConfigurationDescription
+    MonitoringConfigurationDescription (..),
+    newMonitoringConfigurationDescription,
+    monitoringConfigurationDescription_configurationType,
+    monitoringConfigurationDescription_logLevel,
+    monitoringConfigurationDescription_metricsLevel,
+
+    -- * MonitoringConfigurationUpdate
+    MonitoringConfigurationUpdate (..),
+    newMonitoringConfigurationUpdate,
+    monitoringConfigurationUpdate_configurationTypeUpdate,
+    monitoringConfigurationUpdate_logLevelUpdate,
+    monitoringConfigurationUpdate_metricsLevelUpdate,
+
+    -- * Output
+    Output (..),
+    newOutput,
+    output_kinesisFirehoseOutput,
+    output_kinesisStreamsOutput,
+    output_lambdaOutput,
+    output_name,
+    output_destinationSchema,
+
+    -- * OutputDescription
+    OutputDescription (..),
+    newOutputDescription,
+    outputDescription_destinationSchema,
+    outputDescription_kinesisFirehoseOutputDescription,
+    outputDescription_kinesisStreamsOutputDescription,
+    outputDescription_lambdaOutputDescription,
+    outputDescription_name,
+    outputDescription_outputId,
+
+    -- * OutputUpdate
+    OutputUpdate (..),
+    newOutputUpdate,
+    outputUpdate_destinationSchemaUpdate,
+    outputUpdate_kinesisFirehoseOutputUpdate,
+    outputUpdate_kinesisStreamsOutputUpdate,
+    outputUpdate_lambdaOutputUpdate,
+    outputUpdate_nameUpdate,
+    outputUpdate_outputId,
+
+    -- * ParallelismConfiguration
+    ParallelismConfiguration (..),
+    newParallelismConfiguration,
+    parallelismConfiguration_autoScalingEnabled,
+    parallelismConfiguration_parallelism,
+    parallelismConfiguration_parallelismPerKPU,
+    parallelismConfiguration_configurationType,
+
+    -- * ParallelismConfigurationDescription
+    ParallelismConfigurationDescription (..),
+    newParallelismConfigurationDescription,
+    parallelismConfigurationDescription_autoScalingEnabled,
+    parallelismConfigurationDescription_configurationType,
+    parallelismConfigurationDescription_currentParallelism,
+    parallelismConfigurationDescription_parallelism,
+    parallelismConfigurationDescription_parallelismPerKPU,
+
+    -- * ParallelismConfigurationUpdate
+    ParallelismConfigurationUpdate (..),
+    newParallelismConfigurationUpdate,
+    parallelismConfigurationUpdate_autoScalingEnabledUpdate,
+    parallelismConfigurationUpdate_configurationTypeUpdate,
+    parallelismConfigurationUpdate_parallelismPerKPUUpdate,
+    parallelismConfigurationUpdate_parallelismUpdate,
+
+    -- * PropertyGroup
+    PropertyGroup (..),
+    newPropertyGroup,
+    propertyGroup_propertyGroupId,
+    propertyGroup_propertyMap,
+
+    -- * RecordColumn
+    RecordColumn (..),
+    newRecordColumn,
+    recordColumn_mapping,
+    recordColumn_name,
+    recordColumn_sqlType,
+
+    -- * RecordFormat
+    RecordFormat (..),
+    newRecordFormat,
+    recordFormat_mappingParameters,
+    recordFormat_recordFormatType,
+
+    -- * ReferenceDataSource
+    ReferenceDataSource (..),
+    newReferenceDataSource,
+    referenceDataSource_s3ReferenceDataSource,
+    referenceDataSource_tableName,
+    referenceDataSource_referenceSchema,
+
+    -- * ReferenceDataSourceDescription
+    ReferenceDataSourceDescription (..),
+    newReferenceDataSourceDescription,
+    referenceDataSourceDescription_referenceSchema,
+    referenceDataSourceDescription_referenceId,
+    referenceDataSourceDescription_tableName,
+    referenceDataSourceDescription_s3ReferenceDataSourceDescription,
+
+    -- * ReferenceDataSourceUpdate
+    ReferenceDataSourceUpdate (..),
+    newReferenceDataSourceUpdate,
+    referenceDataSourceUpdate_referenceSchemaUpdate,
+    referenceDataSourceUpdate_s3ReferenceDataSourceUpdate,
+    referenceDataSourceUpdate_tableNameUpdate,
+    referenceDataSourceUpdate_referenceId,
+
+    -- * RunConfiguration
+    RunConfiguration (..),
+    newRunConfiguration,
+    runConfiguration_applicationRestoreConfiguration,
+    runConfiguration_flinkRunConfiguration,
+    runConfiguration_sqlRunConfigurations,
+
+    -- * RunConfigurationDescription
+    RunConfigurationDescription (..),
+    newRunConfigurationDescription,
+    runConfigurationDescription_applicationRestoreConfigurationDescription,
+    runConfigurationDescription_flinkRunConfigurationDescription,
+
+    -- * RunConfigurationUpdate
+    RunConfigurationUpdate (..),
+    newRunConfigurationUpdate,
+    runConfigurationUpdate_applicationRestoreConfiguration,
+    runConfigurationUpdate_flinkRunConfiguration,
+
+    -- * S3ApplicationCodeLocationDescription
+    S3ApplicationCodeLocationDescription (..),
+    newS3ApplicationCodeLocationDescription,
+    s3ApplicationCodeLocationDescription_objectVersion,
+    s3ApplicationCodeLocationDescription_bucketARN,
+    s3ApplicationCodeLocationDescription_fileKey,
+
+    -- * S3Configuration
+    S3Configuration (..),
+    newS3Configuration,
+    s3Configuration_bucketARN,
+    s3Configuration_fileKey,
+
+    -- * S3ContentBaseLocation
+    S3ContentBaseLocation (..),
+    newS3ContentBaseLocation,
+    s3ContentBaseLocation_basePath,
+    s3ContentBaseLocation_bucketARN,
+
+    -- * S3ContentBaseLocationDescription
+    S3ContentBaseLocationDescription (..),
+    newS3ContentBaseLocationDescription,
+    s3ContentBaseLocationDescription_basePath,
+    s3ContentBaseLocationDescription_bucketARN,
+
+    -- * S3ContentBaseLocationUpdate
+    S3ContentBaseLocationUpdate (..),
+    newS3ContentBaseLocationUpdate,
+    s3ContentBaseLocationUpdate_basePathUpdate,
+    s3ContentBaseLocationUpdate_bucketARNUpdate,
+
+    -- * S3ContentLocation
+    S3ContentLocation (..),
+    newS3ContentLocation,
+    s3ContentLocation_objectVersion,
+    s3ContentLocation_bucketARN,
+    s3ContentLocation_fileKey,
+
+    -- * S3ContentLocationUpdate
+    S3ContentLocationUpdate (..),
+    newS3ContentLocationUpdate,
+    s3ContentLocationUpdate_bucketARNUpdate,
+    s3ContentLocationUpdate_fileKeyUpdate,
+    s3ContentLocationUpdate_objectVersionUpdate,
+
+    -- * S3ReferenceDataSource
+    S3ReferenceDataSource (..),
+    newS3ReferenceDataSource,
+    s3ReferenceDataSource_bucketARN,
+    s3ReferenceDataSource_fileKey,
+
+    -- * S3ReferenceDataSourceDescription
+    S3ReferenceDataSourceDescription (..),
+    newS3ReferenceDataSourceDescription,
+    s3ReferenceDataSourceDescription_referenceRoleARN,
+    s3ReferenceDataSourceDescription_bucketARN,
+    s3ReferenceDataSourceDescription_fileKey,
+
+    -- * S3ReferenceDataSourceUpdate
+    S3ReferenceDataSourceUpdate (..),
+    newS3ReferenceDataSourceUpdate,
+    s3ReferenceDataSourceUpdate_bucketARNUpdate,
+    s3ReferenceDataSourceUpdate_fileKeyUpdate,
+
+    -- * SnapshotDetails
+    SnapshotDetails (..),
+    newSnapshotDetails,
+    snapshotDetails_snapshotCreationTimestamp,
+    snapshotDetails_snapshotName,
+    snapshotDetails_snapshotStatus,
+    snapshotDetails_applicationVersionId,
+
+    -- * SourceSchema
+    SourceSchema (..),
+    newSourceSchema,
+    sourceSchema_recordEncoding,
+    sourceSchema_recordFormat,
+    sourceSchema_recordColumns,
+
+    -- * SqlApplicationConfiguration
+    SqlApplicationConfiguration (..),
+    newSqlApplicationConfiguration,
+    sqlApplicationConfiguration_inputs,
+    sqlApplicationConfiguration_outputs,
+    sqlApplicationConfiguration_referenceDataSources,
+
+    -- * SqlApplicationConfigurationDescription
+    SqlApplicationConfigurationDescription (..),
+    newSqlApplicationConfigurationDescription,
+    sqlApplicationConfigurationDescription_inputDescriptions,
+    sqlApplicationConfigurationDescription_outputDescriptions,
+    sqlApplicationConfigurationDescription_referenceDataSourceDescriptions,
+
+    -- * SqlApplicationConfigurationUpdate
+    SqlApplicationConfigurationUpdate (..),
+    newSqlApplicationConfigurationUpdate,
+    sqlApplicationConfigurationUpdate_inputUpdates,
+    sqlApplicationConfigurationUpdate_outputUpdates,
+    sqlApplicationConfigurationUpdate_referenceDataSourceUpdates,
+
+    -- * SqlRunConfiguration
+    SqlRunConfiguration (..),
+    newSqlRunConfiguration,
+    sqlRunConfiguration_inputId,
+    sqlRunConfiguration_inputStartingPositionConfiguration,
+
+    -- * Tag
+    Tag (..),
+    newTag,
+    tag_value,
+    tag_key,
+
+    -- * VpcConfiguration
+    VpcConfiguration (..),
+    newVpcConfiguration,
+    vpcConfiguration_subnetIds,
+    vpcConfiguration_securityGroupIds,
+
+    -- * VpcConfigurationDescription
+    VpcConfigurationDescription (..),
+    newVpcConfigurationDescription,
+    vpcConfigurationDescription_vpcConfigurationId,
+    vpcConfigurationDescription_vpcId,
+    vpcConfigurationDescription_subnetIds,
+    vpcConfigurationDescription_securityGroupIds,
+
+    -- * VpcConfigurationUpdate
+    VpcConfigurationUpdate (..),
+    newVpcConfigurationUpdate,
+    vpcConfigurationUpdate_securityGroupIdUpdates,
+    vpcConfigurationUpdate_subnetIdUpdates,
+    vpcConfigurationUpdate_vpcConfigurationId,
+
+    -- * ZeppelinApplicationConfiguration
+    ZeppelinApplicationConfiguration (..),
+    newZeppelinApplicationConfiguration,
+    zeppelinApplicationConfiguration_catalogConfiguration,
+    zeppelinApplicationConfiguration_customArtifactsConfiguration,
+    zeppelinApplicationConfiguration_deployAsApplicationConfiguration,
+    zeppelinApplicationConfiguration_monitoringConfiguration,
+
+    -- * ZeppelinApplicationConfigurationDescription
+    ZeppelinApplicationConfigurationDescription (..),
+    newZeppelinApplicationConfigurationDescription,
+    zeppelinApplicationConfigurationDescription_catalogConfigurationDescription,
+    zeppelinApplicationConfigurationDescription_customArtifactsConfigurationDescription,
+    zeppelinApplicationConfigurationDescription_deployAsApplicationConfigurationDescription,
+    zeppelinApplicationConfigurationDescription_monitoringConfigurationDescription,
+
+    -- * ZeppelinApplicationConfigurationUpdate
+    ZeppelinApplicationConfigurationUpdate (..),
+    newZeppelinApplicationConfigurationUpdate,
+    zeppelinApplicationConfigurationUpdate_catalogConfigurationUpdate,
+    zeppelinApplicationConfigurationUpdate_customArtifactsConfigurationUpdate,
+    zeppelinApplicationConfigurationUpdate_deployAsApplicationConfigurationUpdate,
+    zeppelinApplicationConfigurationUpdate_monitoringConfigurationUpdate,
+
+    -- * ZeppelinMonitoringConfiguration
+    ZeppelinMonitoringConfiguration (..),
+    newZeppelinMonitoringConfiguration,
+    zeppelinMonitoringConfiguration_logLevel,
+
+    -- * ZeppelinMonitoringConfigurationDescription
+    ZeppelinMonitoringConfigurationDescription (..),
+    newZeppelinMonitoringConfigurationDescription,
+    zeppelinMonitoringConfigurationDescription_logLevel,
+
+    -- * ZeppelinMonitoringConfigurationUpdate
+    ZeppelinMonitoringConfigurationUpdate (..),
+    newZeppelinMonitoringConfigurationUpdate,
+    zeppelinMonitoringConfigurationUpdate_logLevelUpdate,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationDetail
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationMaintenanceConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationMaintenanceConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationMode
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationRestoreConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationRestoreType
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationStatus
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationSummary
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationVersionSummary
+import Amazonka.KinesisAnalyticsV2.Types.ArtifactType
+import Amazonka.KinesisAnalyticsV2.Types.CSVMappingParameters
+import Amazonka.KinesisAnalyticsV2.Types.CatalogConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.CatalogConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.CatalogConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.CheckpointConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.CheckpointConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.CheckpointConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.CloudWatchLoggingOption
+import Amazonka.KinesisAnalyticsV2.Types.CloudWatchLoggingOptionDescription
+import Amazonka.KinesisAnalyticsV2.Types.CloudWatchLoggingOptionUpdate
+import Amazonka.KinesisAnalyticsV2.Types.CodeContent
+import Amazonka.KinesisAnalyticsV2.Types.CodeContentDescription
+import Amazonka.KinesisAnalyticsV2.Types.CodeContentType
+import Amazonka.KinesisAnalyticsV2.Types.CodeContentUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ConfigurationType
+import Amazonka.KinesisAnalyticsV2.Types.CustomArtifactConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.CustomArtifactConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.DeployAsApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.DeployAsApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.DeployAsApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.DestinationSchema
+import Amazonka.KinesisAnalyticsV2.Types.EnvironmentProperties
+import Amazonka.KinesisAnalyticsV2.Types.EnvironmentPropertyDescriptions
+import Amazonka.KinesisAnalyticsV2.Types.EnvironmentPropertyUpdates
+import Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.FlinkRunConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.GlueDataCatalogConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.GlueDataCatalogConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.GlueDataCatalogConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.Input
+import Amazonka.KinesisAnalyticsV2.Types.InputDescription
+import Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessor
+import Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessorDescription
+import Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessorUpdate
+import Amazonka.KinesisAnalyticsV2.Types.InputParallelism
+import Amazonka.KinesisAnalyticsV2.Types.InputParallelismUpdate
+import Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.InputSchemaUpdate
+import Amazonka.KinesisAnalyticsV2.Types.InputStartingPosition
+import Amazonka.KinesisAnalyticsV2.Types.InputStartingPositionConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.InputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.JSONMappingParameters
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInput
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInputDescription
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutput
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutputDescription
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInput
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInputDescription
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsOutput
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsOutputDescription
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsOutputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.LambdaOutput
+import Amazonka.KinesisAnalyticsV2.Types.LambdaOutputDescription
+import Amazonka.KinesisAnalyticsV2.Types.LambdaOutputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.LogLevel
+import Amazonka.KinesisAnalyticsV2.Types.MappingParameters
+import Amazonka.KinesisAnalyticsV2.Types.MavenReference
+import Amazonka.KinesisAnalyticsV2.Types.MetricsLevel
+import Amazonka.KinesisAnalyticsV2.Types.MonitoringConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.MonitoringConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.MonitoringConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.Output
+import Amazonka.KinesisAnalyticsV2.Types.OutputDescription
+import Amazonka.KinesisAnalyticsV2.Types.OutputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ParallelismConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ParallelismConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ParallelismConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.PropertyGroup
+import Amazonka.KinesisAnalyticsV2.Types.RecordColumn
+import Amazonka.KinesisAnalyticsV2.Types.RecordFormat
+import Amazonka.KinesisAnalyticsV2.Types.RecordFormatType
+import Amazonka.KinesisAnalyticsV2.Types.ReferenceDataSource
+import Amazonka.KinesisAnalyticsV2.Types.ReferenceDataSourceDescription
+import Amazonka.KinesisAnalyticsV2.Types.ReferenceDataSourceUpdate
+import Amazonka.KinesisAnalyticsV2.Types.RunConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.RunConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.RunConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.RuntimeEnvironment
+import Amazonka.KinesisAnalyticsV2.Types.S3ApplicationCodeLocationDescription
+import Amazonka.KinesisAnalyticsV2.Types.S3Configuration
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocation
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocationDescription
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentLocation
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentLocationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSource
+import Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSourceDescription
+import Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSourceUpdate
+import Amazonka.KinesisAnalyticsV2.Types.SnapshotDetails
+import Amazonka.KinesisAnalyticsV2.Types.SnapshotStatus
+import Amazonka.KinesisAnalyticsV2.Types.SourceSchema
+import Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.SqlRunConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.Tag
+import Amazonka.KinesisAnalyticsV2.Types.UrlType
+import Amazonka.KinesisAnalyticsV2.Types.VpcConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.VpcConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.VpcConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfigurationUpdate
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Sign.V4 as Sign
+
+-- | API version @2018-05-23@ of the Amazon Kinesis Analytics SDK configuration.
+defaultService :: Core.Service
+defaultService =
+  Core.Service
+    { Core.abbrev = "KinesisAnalyticsV2",
+      Core.signer = Sign.v4,
+      Core.endpointPrefix = "kinesisanalytics",
+      Core.signingName = "kinesisanalytics",
+      Core.version = "2018-05-23",
+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,
+      Core.endpoint = Core.defaultEndpoint defaultService,
+      Core.timeout = Prelude.Just 70,
+      Core.check = Core.statusSuccess,
+      Core.error =
+        Core.parseJSONError "KinesisAnalyticsV2",
+      Core.retry = retry
+    }
+  where
+    retry =
+      Core.Exponential
+        { Core.base = 5.0e-2,
+          Core.growth = 2,
+          Core.attempts = 5,
+          Core.check = check
+        }
+    check e
+      | Lens.has (Core.hasStatus 502) e =
+          Prelude.Just "bad_gateway"
+      | Lens.has (Core.hasStatus 504) e =
+          Prelude.Just "gateway_timeout"
+      | Lens.has (Core.hasStatus 500) e =
+          Prelude.Just "general_server_error"
+      | Lens.has (Core.hasStatus 509) e =
+          Prelude.Just "limit_exceeded"
+      | Lens.has
+          ( Core.hasCode "RequestThrottledException"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "request_throttled_exception"
+      | Lens.has (Core.hasStatus 503) e =
+          Prelude.Just "service_unavailable"
+      | Lens.has
+          ( Core.hasCode "ThrottledException"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "throttled_exception"
+      | Lens.has
+          ( Core.hasCode "Throttling"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "throttling"
+      | Lens.has
+          ( Core.hasCode "ThrottlingException"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "throttling_exception"
+      | Lens.has
+          ( Core.hasCode
+              "ProvisionedThroughputExceededException"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "throughput_exceeded"
+      | Lens.has (Core.hasStatus 429) e =
+          Prelude.Just "too_many_requests"
+      | Prelude.otherwise = Prelude.Nothing
+
+-- | The user-provided application code (query) is not valid. This can be a
+-- simple syntax error.
+_CodeValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CodeValidationException =
+  Core._MatchServiceError
+    defaultService
+    "CodeValidationException"
+
+-- | Exception thrown as a result of concurrent modifications to an
+-- application. This error can be the result of attempting to modify an
+-- application without using the current application ID.
+_ConcurrentModificationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ConcurrentModificationException =
+  Core._MatchServiceError
+    defaultService
+    "ConcurrentModificationException"
+
+-- | The user-provided application configuration is not valid.
+_InvalidApplicationConfigurationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidApplicationConfigurationException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidApplicationConfigurationException"
+
+-- | The specified input parameter value is not valid.
+_InvalidArgumentException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidArgumentException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidArgumentException"
+
+-- | The request JSON is not valid for the operation.
+_InvalidRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidRequestException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidRequestException"
+
+-- | The number of allowed resources has been exceeded.
+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_LimitExceededException =
+  Core._MatchServiceError
+    defaultService
+    "LimitExceededException"
+
+-- | The application is not available for this operation.
+_ResourceInUseException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ResourceInUseException =
+  Core._MatchServiceError
+    defaultService
+    "ResourceInUseException"
+
+-- | Specified application can\'t be found.
+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ResourceNotFoundException =
+  Core._MatchServiceError
+    defaultService
+    "ResourceNotFoundException"
+
+-- | Discovery failed to get a record from the streaming source because of
+-- the Kinesis Streams @ProvisionedThroughputExceededException@. For more
+-- information, see
+-- <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html GetRecords>
+-- in the Amazon Kinesis Streams API Reference.
+_ResourceProvisionedThroughputExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ResourceProvisionedThroughputExceededException =
+  Core._MatchServiceError
+    defaultService
+    "ResourceProvisionedThroughputExceededException"
+
+-- | The service cannot complete the request.
+_ServiceUnavailableException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ServiceUnavailableException =
+  Core._MatchServiceError
+    defaultService
+    "ServiceUnavailableException"
+
+-- | Application created with too many tags, or too many tags added to an
+-- application. Note that the maximum number of application tags includes
+-- system tags. The maximum number of user-defined application tags is 50.
+_TooManyTagsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_TooManyTagsException =
+  Core._MatchServiceError
+    defaultService
+    "TooManyTagsException"
+
+-- | The data format is not valid. Kinesis Data Analytics cannot detect the
+-- schema for the given streaming source.
+_UnableToDetectSchemaException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_UnableToDetectSchemaException =
+  Core._MatchServiceError
+    defaultService
+    "UnableToDetectSchemaException"
+
+-- | The request was rejected because a specified parameter is not supported
+-- or a specified resource is not valid for this operation.
+_UnsupportedOperationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_UnsupportedOperationException =
+  Core._MatchServiceError
+    defaultService
+    "UnsupportedOperationException"
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationCodeConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationCodeConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationCodeConfiguration.hs
@@ -0,0 +1,92 @@
+{-# 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.KinesisAnalyticsV2.Types.ApplicationCodeConfiguration
+-- 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.KinesisAnalyticsV2.Types.ApplicationCodeConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.CodeContent
+import Amazonka.KinesisAnalyticsV2.Types.CodeContentType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes code configuration for an application.
+--
+-- /See:/ 'newApplicationCodeConfiguration' smart constructor.
+data ApplicationCodeConfiguration = ApplicationCodeConfiguration'
+  { -- | The location and type of the application code.
+    codeContent :: Prelude.Maybe CodeContent,
+    -- | Specifies whether the code content is in text or zip format.
+    codeContentType :: CodeContentType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationCodeConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'codeContent', 'applicationCodeConfiguration_codeContent' - The location and type of the application code.
+--
+-- 'codeContentType', 'applicationCodeConfiguration_codeContentType' - Specifies whether the code content is in text or zip format.
+newApplicationCodeConfiguration ::
+  -- | 'codeContentType'
+  CodeContentType ->
+  ApplicationCodeConfiguration
+newApplicationCodeConfiguration pCodeContentType_ =
+  ApplicationCodeConfiguration'
+    { codeContent =
+        Prelude.Nothing,
+      codeContentType = pCodeContentType_
+    }
+
+-- | The location and type of the application code.
+applicationCodeConfiguration_codeContent :: Lens.Lens' ApplicationCodeConfiguration (Prelude.Maybe CodeContent)
+applicationCodeConfiguration_codeContent = Lens.lens (\ApplicationCodeConfiguration' {codeContent} -> codeContent) (\s@ApplicationCodeConfiguration' {} a -> s {codeContent = a} :: ApplicationCodeConfiguration)
+
+-- | Specifies whether the code content is in text or zip format.
+applicationCodeConfiguration_codeContentType :: Lens.Lens' ApplicationCodeConfiguration CodeContentType
+applicationCodeConfiguration_codeContentType = Lens.lens (\ApplicationCodeConfiguration' {codeContentType} -> codeContentType) (\s@ApplicationCodeConfiguration' {} a -> s {codeContentType = a} :: ApplicationCodeConfiguration)
+
+instance
+  Prelude.Hashable
+    ApplicationCodeConfiguration
+  where
+  hashWithSalt _salt ApplicationCodeConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` codeContent
+      `Prelude.hashWithSalt` codeContentType
+
+instance Prelude.NFData ApplicationCodeConfiguration where
+  rnf ApplicationCodeConfiguration' {..} =
+    Prelude.rnf codeContent
+      `Prelude.seq` Prelude.rnf codeContentType
+
+instance Data.ToJSON ApplicationCodeConfiguration where
+  toJSON ApplicationCodeConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("CodeContent" Data..=) Prelude.<$> codeContent,
+            Prelude.Just
+              ("CodeContentType" Data..= codeContentType)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationCodeConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationCodeConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationCodeConfigurationDescription.hs
@@ -0,0 +1,102 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.ApplicationCodeConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.CodeContentDescription
+import Amazonka.KinesisAnalyticsV2.Types.CodeContentType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes code configuration for an application.
+--
+-- /See:/ 'newApplicationCodeConfigurationDescription' smart constructor.
+data ApplicationCodeConfigurationDescription = ApplicationCodeConfigurationDescription'
+  { -- | Describes details about the location and format of the application code.
+    codeContentDescription :: Prelude.Maybe CodeContentDescription,
+    -- | Specifies whether the code content is in text or zip format.
+    codeContentType :: CodeContentType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationCodeConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'codeContentDescription', 'applicationCodeConfigurationDescription_codeContentDescription' - Describes details about the location and format of the application code.
+--
+-- 'codeContentType', 'applicationCodeConfigurationDescription_codeContentType' - Specifies whether the code content is in text or zip format.
+newApplicationCodeConfigurationDescription ::
+  -- | 'codeContentType'
+  CodeContentType ->
+  ApplicationCodeConfigurationDescription
+newApplicationCodeConfigurationDescription
+  pCodeContentType_ =
+    ApplicationCodeConfigurationDescription'
+      { codeContentDescription =
+          Prelude.Nothing,
+        codeContentType =
+          pCodeContentType_
+      }
+
+-- | Describes details about the location and format of the application code.
+applicationCodeConfigurationDescription_codeContentDescription :: Lens.Lens' ApplicationCodeConfigurationDescription (Prelude.Maybe CodeContentDescription)
+applicationCodeConfigurationDescription_codeContentDescription = Lens.lens (\ApplicationCodeConfigurationDescription' {codeContentDescription} -> codeContentDescription) (\s@ApplicationCodeConfigurationDescription' {} a -> s {codeContentDescription = a} :: ApplicationCodeConfigurationDescription)
+
+-- | Specifies whether the code content is in text or zip format.
+applicationCodeConfigurationDescription_codeContentType :: Lens.Lens' ApplicationCodeConfigurationDescription CodeContentType
+applicationCodeConfigurationDescription_codeContentType = Lens.lens (\ApplicationCodeConfigurationDescription' {codeContentType} -> codeContentType) (\s@ApplicationCodeConfigurationDescription' {} a -> s {codeContentType = a} :: ApplicationCodeConfigurationDescription)
+
+instance
+  Data.FromJSON
+    ApplicationCodeConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "ApplicationCodeConfigurationDescription"
+      ( \x ->
+          ApplicationCodeConfigurationDescription'
+            Prelude.<$> (x Data..:? "CodeContentDescription")
+            Prelude.<*> (x Data..: "CodeContentType")
+      )
+
+instance
+  Prelude.Hashable
+    ApplicationCodeConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    ApplicationCodeConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` codeContentDescription
+        `Prelude.hashWithSalt` codeContentType
+
+instance
+  Prelude.NFData
+    ApplicationCodeConfigurationDescription
+  where
+  rnf ApplicationCodeConfigurationDescription' {..} =
+    Prelude.rnf codeContentDescription
+      `Prelude.seq` Prelude.rnf codeContentType
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationCodeConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationCodeConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationCodeConfigurationUpdate.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.KinesisAnalyticsV2.Types.ApplicationCodeConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.ApplicationCodeConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.CodeContentType
+import Amazonka.KinesisAnalyticsV2.Types.CodeContentUpdate
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes code configuration updates for an application. This is
+-- supported for a Flink-based Kinesis Data Analytics application or a
+-- SQL-based Kinesis Data Analytics application.
+--
+-- /See:/ 'newApplicationCodeConfigurationUpdate' smart constructor.
+data ApplicationCodeConfigurationUpdate = ApplicationCodeConfigurationUpdate'
+  { -- | Describes updates to the code content type.
+    codeContentTypeUpdate :: Prelude.Maybe CodeContentType,
+    -- | Describes updates to the code content of an application.
+    codeContentUpdate :: Prelude.Maybe CodeContentUpdate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationCodeConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'codeContentTypeUpdate', 'applicationCodeConfigurationUpdate_codeContentTypeUpdate' - Describes updates to the code content type.
+--
+-- 'codeContentUpdate', 'applicationCodeConfigurationUpdate_codeContentUpdate' - Describes updates to the code content of an application.
+newApplicationCodeConfigurationUpdate ::
+  ApplicationCodeConfigurationUpdate
+newApplicationCodeConfigurationUpdate =
+  ApplicationCodeConfigurationUpdate'
+    { codeContentTypeUpdate =
+        Prelude.Nothing,
+      codeContentUpdate = Prelude.Nothing
+    }
+
+-- | Describes updates to the code content type.
+applicationCodeConfigurationUpdate_codeContentTypeUpdate :: Lens.Lens' ApplicationCodeConfigurationUpdate (Prelude.Maybe CodeContentType)
+applicationCodeConfigurationUpdate_codeContentTypeUpdate = Lens.lens (\ApplicationCodeConfigurationUpdate' {codeContentTypeUpdate} -> codeContentTypeUpdate) (\s@ApplicationCodeConfigurationUpdate' {} a -> s {codeContentTypeUpdate = a} :: ApplicationCodeConfigurationUpdate)
+
+-- | Describes updates to the code content of an application.
+applicationCodeConfigurationUpdate_codeContentUpdate :: Lens.Lens' ApplicationCodeConfigurationUpdate (Prelude.Maybe CodeContentUpdate)
+applicationCodeConfigurationUpdate_codeContentUpdate = Lens.lens (\ApplicationCodeConfigurationUpdate' {codeContentUpdate} -> codeContentUpdate) (\s@ApplicationCodeConfigurationUpdate' {} a -> s {codeContentUpdate = a} :: ApplicationCodeConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    ApplicationCodeConfigurationUpdate
+  where
+  hashWithSalt
+    _salt
+    ApplicationCodeConfigurationUpdate' {..} =
+      _salt
+        `Prelude.hashWithSalt` codeContentTypeUpdate
+        `Prelude.hashWithSalt` codeContentUpdate
+
+instance
+  Prelude.NFData
+    ApplicationCodeConfigurationUpdate
+  where
+  rnf ApplicationCodeConfigurationUpdate' {..} =
+    Prelude.rnf codeContentTypeUpdate
+      `Prelude.seq` Prelude.rnf codeContentUpdate
+
+instance
+  Data.ToJSON
+    ApplicationCodeConfigurationUpdate
+  where
+  toJSON ApplicationCodeConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("CodeContentTypeUpdate" Data..=)
+              Prelude.<$> codeContentTypeUpdate,
+            ("CodeContentUpdate" Data..=)
+              Prelude.<$> codeContentUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationConfiguration.hs
@@ -0,0 +1,182 @@
+{-# 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.KinesisAnalyticsV2.Types.ApplicationConfiguration
+-- 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.KinesisAnalyticsV2.Types.ApplicationConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.EnvironmentProperties
+import Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.VpcConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinApplicationConfiguration
+import qualified Amazonka.Prelude as Prelude
+
+-- | Specifies the creation parameters for a Kinesis Data Analytics
+-- application.
+--
+-- /See:/ 'newApplicationConfiguration' smart constructor.
+data ApplicationConfiguration = ApplicationConfiguration'
+  { -- | The code location and type parameters for a Flink-based Kinesis Data
+    -- Analytics application.
+    applicationCodeConfiguration :: Prelude.Maybe ApplicationCodeConfiguration,
+    -- | Describes whether snapshots are enabled for a Flink-based Kinesis Data
+    -- Analytics application.
+    applicationSnapshotConfiguration :: Prelude.Maybe ApplicationSnapshotConfiguration,
+    -- | Describes execution properties for a Flink-based Kinesis Data Analytics
+    -- application.
+    environmentProperties :: Prelude.Maybe EnvironmentProperties,
+    -- | The creation and update parameters for a Flink-based Kinesis Data
+    -- Analytics application.
+    flinkApplicationConfiguration :: Prelude.Maybe FlinkApplicationConfiguration,
+    -- | The creation and update parameters for a SQL-based Kinesis Data
+    -- Analytics application.
+    sqlApplicationConfiguration :: Prelude.Maybe SqlApplicationConfiguration,
+    -- | The array of descriptions of VPC configurations available to the
+    -- application.
+    vpcConfigurations :: Prelude.Maybe [VpcConfiguration],
+    -- | The configuration parameters for a Kinesis Data Analytics Studio
+    -- notebook.
+    zeppelinApplicationConfiguration :: Prelude.Maybe ZeppelinApplicationConfiguration
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationCodeConfiguration', 'applicationConfiguration_applicationCodeConfiguration' - The code location and type parameters for a Flink-based Kinesis Data
+-- Analytics application.
+--
+-- 'applicationSnapshotConfiguration', 'applicationConfiguration_applicationSnapshotConfiguration' - Describes whether snapshots are enabled for a Flink-based Kinesis Data
+-- Analytics application.
+--
+-- 'environmentProperties', 'applicationConfiguration_environmentProperties' - Describes execution properties for a Flink-based Kinesis Data Analytics
+-- application.
+--
+-- 'flinkApplicationConfiguration', 'applicationConfiguration_flinkApplicationConfiguration' - The creation and update parameters for a Flink-based Kinesis Data
+-- Analytics application.
+--
+-- 'sqlApplicationConfiguration', 'applicationConfiguration_sqlApplicationConfiguration' - The creation and update parameters for a SQL-based Kinesis Data
+-- Analytics application.
+--
+-- 'vpcConfigurations', 'applicationConfiguration_vpcConfigurations' - The array of descriptions of VPC configurations available to the
+-- application.
+--
+-- 'zeppelinApplicationConfiguration', 'applicationConfiguration_zeppelinApplicationConfiguration' - The configuration parameters for a Kinesis Data Analytics Studio
+-- notebook.
+newApplicationConfiguration ::
+  ApplicationConfiguration
+newApplicationConfiguration =
+  ApplicationConfiguration'
+    { applicationCodeConfiguration =
+        Prelude.Nothing,
+      applicationSnapshotConfiguration =
+        Prelude.Nothing,
+      environmentProperties = Prelude.Nothing,
+      flinkApplicationConfiguration = Prelude.Nothing,
+      sqlApplicationConfiguration = Prelude.Nothing,
+      vpcConfigurations = Prelude.Nothing,
+      zeppelinApplicationConfiguration =
+        Prelude.Nothing
+    }
+
+-- | The code location and type parameters for a Flink-based Kinesis Data
+-- Analytics application.
+applicationConfiguration_applicationCodeConfiguration :: Lens.Lens' ApplicationConfiguration (Prelude.Maybe ApplicationCodeConfiguration)
+applicationConfiguration_applicationCodeConfiguration = Lens.lens (\ApplicationConfiguration' {applicationCodeConfiguration} -> applicationCodeConfiguration) (\s@ApplicationConfiguration' {} a -> s {applicationCodeConfiguration = a} :: ApplicationConfiguration)
+
+-- | Describes whether snapshots are enabled for a Flink-based Kinesis Data
+-- Analytics application.
+applicationConfiguration_applicationSnapshotConfiguration :: Lens.Lens' ApplicationConfiguration (Prelude.Maybe ApplicationSnapshotConfiguration)
+applicationConfiguration_applicationSnapshotConfiguration = Lens.lens (\ApplicationConfiguration' {applicationSnapshotConfiguration} -> applicationSnapshotConfiguration) (\s@ApplicationConfiguration' {} a -> s {applicationSnapshotConfiguration = a} :: ApplicationConfiguration)
+
+-- | Describes execution properties for a Flink-based Kinesis Data Analytics
+-- application.
+applicationConfiguration_environmentProperties :: Lens.Lens' ApplicationConfiguration (Prelude.Maybe EnvironmentProperties)
+applicationConfiguration_environmentProperties = Lens.lens (\ApplicationConfiguration' {environmentProperties} -> environmentProperties) (\s@ApplicationConfiguration' {} a -> s {environmentProperties = a} :: ApplicationConfiguration)
+
+-- | The creation and update parameters for a Flink-based Kinesis Data
+-- Analytics application.
+applicationConfiguration_flinkApplicationConfiguration :: Lens.Lens' ApplicationConfiguration (Prelude.Maybe FlinkApplicationConfiguration)
+applicationConfiguration_flinkApplicationConfiguration = Lens.lens (\ApplicationConfiguration' {flinkApplicationConfiguration} -> flinkApplicationConfiguration) (\s@ApplicationConfiguration' {} a -> s {flinkApplicationConfiguration = a} :: ApplicationConfiguration)
+
+-- | The creation and update parameters for a SQL-based Kinesis Data
+-- Analytics application.
+applicationConfiguration_sqlApplicationConfiguration :: Lens.Lens' ApplicationConfiguration (Prelude.Maybe SqlApplicationConfiguration)
+applicationConfiguration_sqlApplicationConfiguration = Lens.lens (\ApplicationConfiguration' {sqlApplicationConfiguration} -> sqlApplicationConfiguration) (\s@ApplicationConfiguration' {} a -> s {sqlApplicationConfiguration = a} :: ApplicationConfiguration)
+
+-- | The array of descriptions of VPC configurations available to the
+-- application.
+applicationConfiguration_vpcConfigurations :: Lens.Lens' ApplicationConfiguration (Prelude.Maybe [VpcConfiguration])
+applicationConfiguration_vpcConfigurations = Lens.lens (\ApplicationConfiguration' {vpcConfigurations} -> vpcConfigurations) (\s@ApplicationConfiguration' {} a -> s {vpcConfigurations = a} :: ApplicationConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | The configuration parameters for a Kinesis Data Analytics Studio
+-- notebook.
+applicationConfiguration_zeppelinApplicationConfiguration :: Lens.Lens' ApplicationConfiguration (Prelude.Maybe ZeppelinApplicationConfiguration)
+applicationConfiguration_zeppelinApplicationConfiguration = Lens.lens (\ApplicationConfiguration' {zeppelinApplicationConfiguration} -> zeppelinApplicationConfiguration) (\s@ApplicationConfiguration' {} a -> s {zeppelinApplicationConfiguration = a} :: ApplicationConfiguration)
+
+instance Prelude.Hashable ApplicationConfiguration where
+  hashWithSalt _salt ApplicationConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationCodeConfiguration
+      `Prelude.hashWithSalt` applicationSnapshotConfiguration
+      `Prelude.hashWithSalt` environmentProperties
+      `Prelude.hashWithSalt` flinkApplicationConfiguration
+      `Prelude.hashWithSalt` sqlApplicationConfiguration
+      `Prelude.hashWithSalt` vpcConfigurations
+      `Prelude.hashWithSalt` zeppelinApplicationConfiguration
+
+instance Prelude.NFData ApplicationConfiguration where
+  rnf ApplicationConfiguration' {..} =
+    Prelude.rnf applicationCodeConfiguration
+      `Prelude.seq` Prelude.rnf applicationSnapshotConfiguration
+      `Prelude.seq` Prelude.rnf environmentProperties
+      `Prelude.seq` Prelude.rnf flinkApplicationConfiguration
+      `Prelude.seq` Prelude.rnf sqlApplicationConfiguration
+      `Prelude.seq` Prelude.rnf vpcConfigurations
+      `Prelude.seq` Prelude.rnf zeppelinApplicationConfiguration
+
+instance Data.ToJSON ApplicationConfiguration where
+  toJSON ApplicationConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ApplicationCodeConfiguration" Data..=)
+              Prelude.<$> applicationCodeConfiguration,
+            ("ApplicationSnapshotConfiguration" Data..=)
+              Prelude.<$> applicationSnapshotConfiguration,
+            ("EnvironmentProperties" Data..=)
+              Prelude.<$> environmentProperties,
+            ("FlinkApplicationConfiguration" Data..=)
+              Prelude.<$> flinkApplicationConfiguration,
+            ("SqlApplicationConfiguration" Data..=)
+              Prelude.<$> sqlApplicationConfiguration,
+            ("VpcConfigurations" Data..=)
+              Prelude.<$> vpcConfigurations,
+            ("ZeppelinApplicationConfiguration" Data..=)
+              Prelude.<$> zeppelinApplicationConfiguration
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationConfigurationDescription.hs
@@ -0,0 +1,218 @@
+{-# 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.KinesisAnalyticsV2.Types.ApplicationConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.ApplicationConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.EnvironmentPropertyDescriptions
+import Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.RunConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.VpcConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinApplicationConfigurationDescription
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes details about the application code and starting parameters for
+-- a Kinesis Data Analytics application.
+--
+-- /See:/ 'newApplicationConfigurationDescription' smart constructor.
+data ApplicationConfigurationDescription = ApplicationConfigurationDescription'
+  { -- | The details about the application code for a Flink-based Kinesis Data
+    -- Analytics application.
+    applicationCodeConfigurationDescription :: Prelude.Maybe ApplicationCodeConfigurationDescription,
+    -- | Describes whether snapshots are enabled for a Flink-based Kinesis Data
+    -- Analytics application.
+    applicationSnapshotConfigurationDescription :: Prelude.Maybe ApplicationSnapshotConfigurationDescription,
+    -- | Describes execution properties for a Flink-based Kinesis Data Analytics
+    -- application.
+    environmentPropertyDescriptions :: Prelude.Maybe EnvironmentPropertyDescriptions,
+    -- | The details about a Flink-based Kinesis Data Analytics application.
+    flinkApplicationConfigurationDescription :: Prelude.Maybe FlinkApplicationConfigurationDescription,
+    -- | The details about the starting properties for a Kinesis Data Analytics
+    -- application.
+    runConfigurationDescription :: Prelude.Maybe RunConfigurationDescription,
+    -- | The details about inputs, outputs, and reference data sources for a
+    -- SQL-based Kinesis Data Analytics application.
+    sqlApplicationConfigurationDescription :: Prelude.Maybe SqlApplicationConfigurationDescription,
+    -- | The array of descriptions of VPC configurations available to the
+    -- application.
+    vpcConfigurationDescriptions :: Prelude.Maybe [VpcConfigurationDescription],
+    -- | The configuration parameters for a Kinesis Data Analytics Studio
+    -- notebook.
+    zeppelinApplicationConfigurationDescription :: Prelude.Maybe ZeppelinApplicationConfigurationDescription
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationCodeConfigurationDescription', 'applicationConfigurationDescription_applicationCodeConfigurationDescription' - The details about the application code for a Flink-based Kinesis Data
+-- Analytics application.
+--
+-- 'applicationSnapshotConfigurationDescription', 'applicationConfigurationDescription_applicationSnapshotConfigurationDescription' - Describes whether snapshots are enabled for a Flink-based Kinesis Data
+-- Analytics application.
+--
+-- 'environmentPropertyDescriptions', 'applicationConfigurationDescription_environmentPropertyDescriptions' - Describes execution properties for a Flink-based Kinesis Data Analytics
+-- application.
+--
+-- 'flinkApplicationConfigurationDescription', 'applicationConfigurationDescription_flinkApplicationConfigurationDescription' - The details about a Flink-based Kinesis Data Analytics application.
+--
+-- 'runConfigurationDescription', 'applicationConfigurationDescription_runConfigurationDescription' - The details about the starting properties for a Kinesis Data Analytics
+-- application.
+--
+-- 'sqlApplicationConfigurationDescription', 'applicationConfigurationDescription_sqlApplicationConfigurationDescription' - The details about inputs, outputs, and reference data sources for a
+-- SQL-based Kinesis Data Analytics application.
+--
+-- 'vpcConfigurationDescriptions', 'applicationConfigurationDescription_vpcConfigurationDescriptions' - The array of descriptions of VPC configurations available to the
+-- application.
+--
+-- 'zeppelinApplicationConfigurationDescription', 'applicationConfigurationDescription_zeppelinApplicationConfigurationDescription' - The configuration parameters for a Kinesis Data Analytics Studio
+-- notebook.
+newApplicationConfigurationDescription ::
+  ApplicationConfigurationDescription
+newApplicationConfigurationDescription =
+  ApplicationConfigurationDescription'
+    { applicationCodeConfigurationDescription =
+        Prelude.Nothing,
+      applicationSnapshotConfigurationDescription =
+        Prelude.Nothing,
+      environmentPropertyDescriptions =
+        Prelude.Nothing,
+      flinkApplicationConfigurationDescription =
+        Prelude.Nothing,
+      runConfigurationDescription =
+        Prelude.Nothing,
+      sqlApplicationConfigurationDescription =
+        Prelude.Nothing,
+      vpcConfigurationDescriptions =
+        Prelude.Nothing,
+      zeppelinApplicationConfigurationDescription =
+        Prelude.Nothing
+    }
+
+-- | The details about the application code for a Flink-based Kinesis Data
+-- Analytics application.
+applicationConfigurationDescription_applicationCodeConfigurationDescription :: Lens.Lens' ApplicationConfigurationDescription (Prelude.Maybe ApplicationCodeConfigurationDescription)
+applicationConfigurationDescription_applicationCodeConfigurationDescription = Lens.lens (\ApplicationConfigurationDescription' {applicationCodeConfigurationDescription} -> applicationCodeConfigurationDescription) (\s@ApplicationConfigurationDescription' {} a -> s {applicationCodeConfigurationDescription = a} :: ApplicationConfigurationDescription)
+
+-- | Describes whether snapshots are enabled for a Flink-based Kinesis Data
+-- Analytics application.
+applicationConfigurationDescription_applicationSnapshotConfigurationDescription :: Lens.Lens' ApplicationConfigurationDescription (Prelude.Maybe ApplicationSnapshotConfigurationDescription)
+applicationConfigurationDescription_applicationSnapshotConfigurationDescription = Lens.lens (\ApplicationConfigurationDescription' {applicationSnapshotConfigurationDescription} -> applicationSnapshotConfigurationDescription) (\s@ApplicationConfigurationDescription' {} a -> s {applicationSnapshotConfigurationDescription = a} :: ApplicationConfigurationDescription)
+
+-- | Describes execution properties for a Flink-based Kinesis Data Analytics
+-- application.
+applicationConfigurationDescription_environmentPropertyDescriptions :: Lens.Lens' ApplicationConfigurationDescription (Prelude.Maybe EnvironmentPropertyDescriptions)
+applicationConfigurationDescription_environmentPropertyDescriptions = Lens.lens (\ApplicationConfigurationDescription' {environmentPropertyDescriptions} -> environmentPropertyDescriptions) (\s@ApplicationConfigurationDescription' {} a -> s {environmentPropertyDescriptions = a} :: ApplicationConfigurationDescription)
+
+-- | The details about a Flink-based Kinesis Data Analytics application.
+applicationConfigurationDescription_flinkApplicationConfigurationDescription :: Lens.Lens' ApplicationConfigurationDescription (Prelude.Maybe FlinkApplicationConfigurationDescription)
+applicationConfigurationDescription_flinkApplicationConfigurationDescription = Lens.lens (\ApplicationConfigurationDescription' {flinkApplicationConfigurationDescription} -> flinkApplicationConfigurationDescription) (\s@ApplicationConfigurationDescription' {} a -> s {flinkApplicationConfigurationDescription = a} :: ApplicationConfigurationDescription)
+
+-- | The details about the starting properties for a Kinesis Data Analytics
+-- application.
+applicationConfigurationDescription_runConfigurationDescription :: Lens.Lens' ApplicationConfigurationDescription (Prelude.Maybe RunConfigurationDescription)
+applicationConfigurationDescription_runConfigurationDescription = Lens.lens (\ApplicationConfigurationDescription' {runConfigurationDescription} -> runConfigurationDescription) (\s@ApplicationConfigurationDescription' {} a -> s {runConfigurationDescription = a} :: ApplicationConfigurationDescription)
+
+-- | The details about inputs, outputs, and reference data sources for a
+-- SQL-based Kinesis Data Analytics application.
+applicationConfigurationDescription_sqlApplicationConfigurationDescription :: Lens.Lens' ApplicationConfigurationDescription (Prelude.Maybe SqlApplicationConfigurationDescription)
+applicationConfigurationDescription_sqlApplicationConfigurationDescription = Lens.lens (\ApplicationConfigurationDescription' {sqlApplicationConfigurationDescription} -> sqlApplicationConfigurationDescription) (\s@ApplicationConfigurationDescription' {} a -> s {sqlApplicationConfigurationDescription = a} :: ApplicationConfigurationDescription)
+
+-- | The array of descriptions of VPC configurations available to the
+-- application.
+applicationConfigurationDescription_vpcConfigurationDescriptions :: Lens.Lens' ApplicationConfigurationDescription (Prelude.Maybe [VpcConfigurationDescription])
+applicationConfigurationDescription_vpcConfigurationDescriptions = Lens.lens (\ApplicationConfigurationDescription' {vpcConfigurationDescriptions} -> vpcConfigurationDescriptions) (\s@ApplicationConfigurationDescription' {} a -> s {vpcConfigurationDescriptions = a} :: ApplicationConfigurationDescription) Prelude.. Lens.mapping Lens.coerced
+
+-- | The configuration parameters for a Kinesis Data Analytics Studio
+-- notebook.
+applicationConfigurationDescription_zeppelinApplicationConfigurationDescription :: Lens.Lens' ApplicationConfigurationDescription (Prelude.Maybe ZeppelinApplicationConfigurationDescription)
+applicationConfigurationDescription_zeppelinApplicationConfigurationDescription = Lens.lens (\ApplicationConfigurationDescription' {zeppelinApplicationConfigurationDescription} -> zeppelinApplicationConfigurationDescription) (\s@ApplicationConfigurationDescription' {} a -> s {zeppelinApplicationConfigurationDescription = a} :: ApplicationConfigurationDescription)
+
+instance
+  Data.FromJSON
+    ApplicationConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "ApplicationConfigurationDescription"
+      ( \x ->
+          ApplicationConfigurationDescription'
+            Prelude.<$> ( x
+                            Data..:? "ApplicationCodeConfigurationDescription"
+                        )
+            Prelude.<*> ( x
+                            Data..:? "ApplicationSnapshotConfigurationDescription"
+                        )
+            Prelude.<*> (x Data..:? "EnvironmentPropertyDescriptions")
+            Prelude.<*> ( x
+                            Data..:? "FlinkApplicationConfigurationDescription"
+                        )
+            Prelude.<*> (x Data..:? "RunConfigurationDescription")
+            Prelude.<*> (x Data..:? "SqlApplicationConfigurationDescription")
+            Prelude.<*> ( x
+                            Data..:? "VpcConfigurationDescriptions"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> ( x
+                            Data..:? "ZeppelinApplicationConfigurationDescription"
+                        )
+      )
+
+instance
+  Prelude.Hashable
+    ApplicationConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    ApplicationConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` applicationCodeConfigurationDescription
+        `Prelude.hashWithSalt` applicationSnapshotConfigurationDescription
+        `Prelude.hashWithSalt` environmentPropertyDescriptions
+        `Prelude.hashWithSalt` flinkApplicationConfigurationDescription
+        `Prelude.hashWithSalt` runConfigurationDescription
+        `Prelude.hashWithSalt` sqlApplicationConfigurationDescription
+        `Prelude.hashWithSalt` vpcConfigurationDescriptions
+        `Prelude.hashWithSalt` zeppelinApplicationConfigurationDescription
+
+instance
+  Prelude.NFData
+    ApplicationConfigurationDescription
+  where
+  rnf ApplicationConfigurationDescription' {..} =
+    Prelude.rnf applicationCodeConfigurationDescription
+      `Prelude.seq` Prelude.rnf
+        applicationSnapshotConfigurationDescription
+      `Prelude.seq` Prelude.rnf environmentPropertyDescriptions
+      `Prelude.seq` Prelude.rnf flinkApplicationConfigurationDescription
+      `Prelude.seq` Prelude.rnf runConfigurationDescription
+      `Prelude.seq` Prelude.rnf sqlApplicationConfigurationDescription
+      `Prelude.seq` Prelude.rnf vpcConfigurationDescriptions
+      `Prelude.seq` Prelude.rnf
+        zeppelinApplicationConfigurationDescription
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationConfigurationUpdate.hs
@@ -0,0 +1,189 @@
+{-# 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.KinesisAnalyticsV2.Types.ApplicationConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.ApplicationConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationCodeConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.EnvironmentPropertyUpdates
+import Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.VpcConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinApplicationConfigurationUpdate
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes updates to an application\'s configuration.
+--
+-- /See:/ 'newApplicationConfigurationUpdate' smart constructor.
+data ApplicationConfigurationUpdate = ApplicationConfigurationUpdate'
+  { -- | Describes updates to an application\'s code configuration.
+    applicationCodeConfigurationUpdate :: Prelude.Maybe ApplicationCodeConfigurationUpdate,
+    -- | Describes whether snapshots are enabled for a Flink-based Kinesis Data
+    -- Analytics application.
+    applicationSnapshotConfigurationUpdate :: Prelude.Maybe ApplicationSnapshotConfigurationUpdate,
+    -- | Describes updates to the environment properties for a Flink-based
+    -- Kinesis Data Analytics application.
+    environmentPropertyUpdates :: Prelude.Maybe EnvironmentPropertyUpdates,
+    -- | Describes updates to a Flink-based Kinesis Data Analytics application\'s
+    -- configuration.
+    flinkApplicationConfigurationUpdate :: Prelude.Maybe FlinkApplicationConfigurationUpdate,
+    -- | Describes updates to a SQL-based Kinesis Data Analytics application\'s
+    -- configuration.
+    sqlApplicationConfigurationUpdate :: Prelude.Maybe SqlApplicationConfigurationUpdate,
+    -- | Updates to the array of descriptions of VPC configurations available to
+    -- the application.
+    vpcConfigurationUpdates :: Prelude.Maybe [VpcConfigurationUpdate],
+    -- | Updates to the configuration of a Kinesis Data Analytics Studio
+    -- notebook.
+    zeppelinApplicationConfigurationUpdate :: Prelude.Maybe ZeppelinApplicationConfigurationUpdate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationCodeConfigurationUpdate', 'applicationConfigurationUpdate_applicationCodeConfigurationUpdate' - Describes updates to an application\'s code configuration.
+--
+-- 'applicationSnapshotConfigurationUpdate', 'applicationConfigurationUpdate_applicationSnapshotConfigurationUpdate' - Describes whether snapshots are enabled for a Flink-based Kinesis Data
+-- Analytics application.
+--
+-- 'environmentPropertyUpdates', 'applicationConfigurationUpdate_environmentPropertyUpdates' - Describes updates to the environment properties for a Flink-based
+-- Kinesis Data Analytics application.
+--
+-- 'flinkApplicationConfigurationUpdate', 'applicationConfigurationUpdate_flinkApplicationConfigurationUpdate' - Describes updates to a Flink-based Kinesis Data Analytics application\'s
+-- configuration.
+--
+-- 'sqlApplicationConfigurationUpdate', 'applicationConfigurationUpdate_sqlApplicationConfigurationUpdate' - Describes updates to a SQL-based Kinesis Data Analytics application\'s
+-- configuration.
+--
+-- 'vpcConfigurationUpdates', 'applicationConfigurationUpdate_vpcConfigurationUpdates' - Updates to the array of descriptions of VPC configurations available to
+-- the application.
+--
+-- 'zeppelinApplicationConfigurationUpdate', 'applicationConfigurationUpdate_zeppelinApplicationConfigurationUpdate' - Updates to the configuration of a Kinesis Data Analytics Studio
+-- notebook.
+newApplicationConfigurationUpdate ::
+  ApplicationConfigurationUpdate
+newApplicationConfigurationUpdate =
+  ApplicationConfigurationUpdate'
+    { applicationCodeConfigurationUpdate =
+        Prelude.Nothing,
+      applicationSnapshotConfigurationUpdate =
+        Prelude.Nothing,
+      environmentPropertyUpdates =
+        Prelude.Nothing,
+      flinkApplicationConfigurationUpdate =
+        Prelude.Nothing,
+      sqlApplicationConfigurationUpdate =
+        Prelude.Nothing,
+      vpcConfigurationUpdates = Prelude.Nothing,
+      zeppelinApplicationConfigurationUpdate =
+        Prelude.Nothing
+    }
+
+-- | Describes updates to an application\'s code configuration.
+applicationConfigurationUpdate_applicationCodeConfigurationUpdate :: Lens.Lens' ApplicationConfigurationUpdate (Prelude.Maybe ApplicationCodeConfigurationUpdate)
+applicationConfigurationUpdate_applicationCodeConfigurationUpdate = Lens.lens (\ApplicationConfigurationUpdate' {applicationCodeConfigurationUpdate} -> applicationCodeConfigurationUpdate) (\s@ApplicationConfigurationUpdate' {} a -> s {applicationCodeConfigurationUpdate = a} :: ApplicationConfigurationUpdate)
+
+-- | Describes whether snapshots are enabled for a Flink-based Kinesis Data
+-- Analytics application.
+applicationConfigurationUpdate_applicationSnapshotConfigurationUpdate :: Lens.Lens' ApplicationConfigurationUpdate (Prelude.Maybe ApplicationSnapshotConfigurationUpdate)
+applicationConfigurationUpdate_applicationSnapshotConfigurationUpdate = Lens.lens (\ApplicationConfigurationUpdate' {applicationSnapshotConfigurationUpdate} -> applicationSnapshotConfigurationUpdate) (\s@ApplicationConfigurationUpdate' {} a -> s {applicationSnapshotConfigurationUpdate = a} :: ApplicationConfigurationUpdate)
+
+-- | Describes updates to the environment properties for a Flink-based
+-- Kinesis Data Analytics application.
+applicationConfigurationUpdate_environmentPropertyUpdates :: Lens.Lens' ApplicationConfigurationUpdate (Prelude.Maybe EnvironmentPropertyUpdates)
+applicationConfigurationUpdate_environmentPropertyUpdates = Lens.lens (\ApplicationConfigurationUpdate' {environmentPropertyUpdates} -> environmentPropertyUpdates) (\s@ApplicationConfigurationUpdate' {} a -> s {environmentPropertyUpdates = a} :: ApplicationConfigurationUpdate)
+
+-- | Describes updates to a Flink-based Kinesis Data Analytics application\'s
+-- configuration.
+applicationConfigurationUpdate_flinkApplicationConfigurationUpdate :: Lens.Lens' ApplicationConfigurationUpdate (Prelude.Maybe FlinkApplicationConfigurationUpdate)
+applicationConfigurationUpdate_flinkApplicationConfigurationUpdate = Lens.lens (\ApplicationConfigurationUpdate' {flinkApplicationConfigurationUpdate} -> flinkApplicationConfigurationUpdate) (\s@ApplicationConfigurationUpdate' {} a -> s {flinkApplicationConfigurationUpdate = a} :: ApplicationConfigurationUpdate)
+
+-- | Describes updates to a SQL-based Kinesis Data Analytics application\'s
+-- configuration.
+applicationConfigurationUpdate_sqlApplicationConfigurationUpdate :: Lens.Lens' ApplicationConfigurationUpdate (Prelude.Maybe SqlApplicationConfigurationUpdate)
+applicationConfigurationUpdate_sqlApplicationConfigurationUpdate = Lens.lens (\ApplicationConfigurationUpdate' {sqlApplicationConfigurationUpdate} -> sqlApplicationConfigurationUpdate) (\s@ApplicationConfigurationUpdate' {} a -> s {sqlApplicationConfigurationUpdate = a} :: ApplicationConfigurationUpdate)
+
+-- | Updates to the array of descriptions of VPC configurations available to
+-- the application.
+applicationConfigurationUpdate_vpcConfigurationUpdates :: Lens.Lens' ApplicationConfigurationUpdate (Prelude.Maybe [VpcConfigurationUpdate])
+applicationConfigurationUpdate_vpcConfigurationUpdates = Lens.lens (\ApplicationConfigurationUpdate' {vpcConfigurationUpdates} -> vpcConfigurationUpdates) (\s@ApplicationConfigurationUpdate' {} a -> s {vpcConfigurationUpdates = a} :: ApplicationConfigurationUpdate) Prelude.. Lens.mapping Lens.coerced
+
+-- | Updates to the configuration of a Kinesis Data Analytics Studio
+-- notebook.
+applicationConfigurationUpdate_zeppelinApplicationConfigurationUpdate :: Lens.Lens' ApplicationConfigurationUpdate (Prelude.Maybe ZeppelinApplicationConfigurationUpdate)
+applicationConfigurationUpdate_zeppelinApplicationConfigurationUpdate = Lens.lens (\ApplicationConfigurationUpdate' {zeppelinApplicationConfigurationUpdate} -> zeppelinApplicationConfigurationUpdate) (\s@ApplicationConfigurationUpdate' {} a -> s {zeppelinApplicationConfigurationUpdate = a} :: ApplicationConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    ApplicationConfigurationUpdate
+  where
+  hashWithSalt
+    _salt
+    ApplicationConfigurationUpdate' {..} =
+      _salt
+        `Prelude.hashWithSalt` applicationCodeConfigurationUpdate
+        `Prelude.hashWithSalt` applicationSnapshotConfigurationUpdate
+        `Prelude.hashWithSalt` environmentPropertyUpdates
+        `Prelude.hashWithSalt` flinkApplicationConfigurationUpdate
+        `Prelude.hashWithSalt` sqlApplicationConfigurationUpdate
+        `Prelude.hashWithSalt` vpcConfigurationUpdates
+        `Prelude.hashWithSalt` zeppelinApplicationConfigurationUpdate
+
+instance
+  Prelude.NFData
+    ApplicationConfigurationUpdate
+  where
+  rnf ApplicationConfigurationUpdate' {..} =
+    Prelude.rnf applicationCodeConfigurationUpdate
+      `Prelude.seq` Prelude.rnf applicationSnapshotConfigurationUpdate
+      `Prelude.seq` Prelude.rnf environmentPropertyUpdates
+      `Prelude.seq` Prelude.rnf flinkApplicationConfigurationUpdate
+      `Prelude.seq` Prelude.rnf sqlApplicationConfigurationUpdate
+      `Prelude.seq` Prelude.rnf vpcConfigurationUpdates
+      `Prelude.seq` Prelude.rnf zeppelinApplicationConfigurationUpdate
+
+instance Data.ToJSON ApplicationConfigurationUpdate where
+  toJSON ApplicationConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ApplicationCodeConfigurationUpdate" Data..=)
+              Prelude.<$> applicationCodeConfigurationUpdate,
+            ("ApplicationSnapshotConfigurationUpdate" Data..=)
+              Prelude.<$> applicationSnapshotConfigurationUpdate,
+            ("EnvironmentPropertyUpdates" Data..=)
+              Prelude.<$> environmentPropertyUpdates,
+            ("FlinkApplicationConfigurationUpdate" Data..=)
+              Prelude.<$> flinkApplicationConfigurationUpdate,
+            ("SqlApplicationConfigurationUpdate" Data..=)
+              Prelude.<$> sqlApplicationConfigurationUpdate,
+            ("VpcConfigurationUpdates" Data..=)
+              Prelude.<$> vpcConfigurationUpdates,
+            ("ZeppelinApplicationConfigurationUpdate" Data..=)
+              Prelude.<$> zeppelinApplicationConfigurationUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationDetail.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationDetail.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationDetail.hs
@@ -0,0 +1,316 @@
+{-# 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.KinesisAnalyticsV2.Types.ApplicationDetail
+-- 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.KinesisAnalyticsV2.Types.ApplicationDetail where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationMaintenanceConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationMode
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationStatus
+import Amazonka.KinesisAnalyticsV2.Types.CloudWatchLoggingOptionDescription
+import Amazonka.KinesisAnalyticsV2.Types.RuntimeEnvironment
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the application, including the application Amazon Resource
+-- Name (ARN), status, latest version, and input and output configurations.
+--
+-- /See:/ 'newApplicationDetail' smart constructor.
+data ApplicationDetail = ApplicationDetail'
+  { -- | Describes details about the application code and starting parameters for
+    -- a Kinesis Data Analytics application.
+    applicationConfigurationDescription :: Prelude.Maybe ApplicationConfigurationDescription,
+    -- | The description of the application.
+    applicationDescription :: Prelude.Maybe Prelude.Text,
+    -- | The details of the maintenance configuration for the application.
+    applicationMaintenanceConfigurationDescription :: Prelude.Maybe ApplicationMaintenanceConfigurationDescription,
+    -- | To create a Kinesis Data Analytics Studio notebook, you must set the
+    -- mode to @INTERACTIVE@. However, for a Kinesis Data Analytics for Apache
+    -- Flink application, the mode is optional.
+    applicationMode :: Prelude.Maybe ApplicationMode,
+    -- | If you reverted the application using RollbackApplication, the
+    -- application version when @RollbackApplication@ was called.
+    applicationVersionRolledBackFrom :: Prelude.Maybe Prelude.Natural,
+    -- | The version to which you want to roll back the application.
+    applicationVersionRolledBackTo :: Prelude.Maybe Prelude.Natural,
+    -- | The previous application version before the latest application update.
+    -- RollbackApplication reverts the application to this version.
+    applicationVersionUpdatedFrom :: Prelude.Maybe Prelude.Natural,
+    -- | Describes the application Amazon CloudWatch logging options.
+    cloudWatchLoggingOptionDescriptions :: Prelude.Maybe [CloudWatchLoggingOptionDescription],
+    -- | A value you use to implement strong concurrency for application updates.
+    conditionalToken :: Prelude.Maybe Prelude.Text,
+    -- | The current timestamp when the application was created.
+    createTimestamp :: Prelude.Maybe Data.POSIX,
+    -- | The current timestamp when the application was last updated.
+    lastUpdateTimestamp :: Prelude.Maybe Data.POSIX,
+    -- | Specifies the IAM role that the application uses to access external
+    -- resources.
+    serviceExecutionRole :: Prelude.Maybe Prelude.Text,
+    -- | The ARN of the application.
+    applicationARN :: Prelude.Text,
+    -- | The name of the application.
+    applicationName :: Prelude.Text,
+    -- | The runtime environment for the application.
+    runtimeEnvironment :: RuntimeEnvironment,
+    -- | The status of the application.
+    applicationStatus :: ApplicationStatus,
+    -- | Provides the current application version. Kinesis Data Analytics updates
+    -- the @ApplicationVersionId@ each time you update the application.
+    applicationVersionId :: Prelude.Natural
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationDetail' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationConfigurationDescription', 'applicationDetail_applicationConfigurationDescription' - Describes details about the application code and starting parameters for
+-- a Kinesis Data Analytics application.
+--
+-- 'applicationDescription', 'applicationDetail_applicationDescription' - The description of the application.
+--
+-- 'applicationMaintenanceConfigurationDescription', 'applicationDetail_applicationMaintenanceConfigurationDescription' - The details of the maintenance configuration for the application.
+--
+-- 'applicationMode', 'applicationDetail_applicationMode' - To create a Kinesis Data Analytics Studio notebook, you must set the
+-- mode to @INTERACTIVE@. However, for a Kinesis Data Analytics for Apache
+-- Flink application, the mode is optional.
+--
+-- 'applicationVersionRolledBackFrom', 'applicationDetail_applicationVersionRolledBackFrom' - If you reverted the application using RollbackApplication, the
+-- application version when @RollbackApplication@ was called.
+--
+-- 'applicationVersionRolledBackTo', 'applicationDetail_applicationVersionRolledBackTo' - The version to which you want to roll back the application.
+--
+-- 'applicationVersionUpdatedFrom', 'applicationDetail_applicationVersionUpdatedFrom' - The previous application version before the latest application update.
+-- RollbackApplication reverts the application to this version.
+--
+-- 'cloudWatchLoggingOptionDescriptions', 'applicationDetail_cloudWatchLoggingOptionDescriptions' - Describes the application Amazon CloudWatch logging options.
+--
+-- 'conditionalToken', 'applicationDetail_conditionalToken' - A value you use to implement strong concurrency for application updates.
+--
+-- 'createTimestamp', 'applicationDetail_createTimestamp' - The current timestamp when the application was created.
+--
+-- 'lastUpdateTimestamp', 'applicationDetail_lastUpdateTimestamp' - The current timestamp when the application was last updated.
+--
+-- 'serviceExecutionRole', 'applicationDetail_serviceExecutionRole' - Specifies the IAM role that the application uses to access external
+-- resources.
+--
+-- 'applicationARN', 'applicationDetail_applicationARN' - The ARN of the application.
+--
+-- 'applicationName', 'applicationDetail_applicationName' - The name of the application.
+--
+-- 'runtimeEnvironment', 'applicationDetail_runtimeEnvironment' - The runtime environment for the application.
+--
+-- 'applicationStatus', 'applicationDetail_applicationStatus' - The status of the application.
+--
+-- 'applicationVersionId', 'applicationDetail_applicationVersionId' - Provides the current application version. Kinesis Data Analytics updates
+-- the @ApplicationVersionId@ each time you update the application.
+newApplicationDetail ::
+  -- | 'applicationARN'
+  Prelude.Text ->
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'runtimeEnvironment'
+  RuntimeEnvironment ->
+  -- | 'applicationStatus'
+  ApplicationStatus ->
+  -- | 'applicationVersionId'
+  Prelude.Natural ->
+  ApplicationDetail
+newApplicationDetail
+  pApplicationARN_
+  pApplicationName_
+  pRuntimeEnvironment_
+  pApplicationStatus_
+  pApplicationVersionId_ =
+    ApplicationDetail'
+      { applicationConfigurationDescription =
+          Prelude.Nothing,
+        applicationDescription = Prelude.Nothing,
+        applicationMaintenanceConfigurationDescription =
+          Prelude.Nothing,
+        applicationMode = Prelude.Nothing,
+        applicationVersionRolledBackFrom = Prelude.Nothing,
+        applicationVersionRolledBackTo = Prelude.Nothing,
+        applicationVersionUpdatedFrom = Prelude.Nothing,
+        cloudWatchLoggingOptionDescriptions =
+          Prelude.Nothing,
+        conditionalToken = Prelude.Nothing,
+        createTimestamp = Prelude.Nothing,
+        lastUpdateTimestamp = Prelude.Nothing,
+        serviceExecutionRole = Prelude.Nothing,
+        applicationARN = pApplicationARN_,
+        applicationName = pApplicationName_,
+        runtimeEnvironment = pRuntimeEnvironment_,
+        applicationStatus = pApplicationStatus_,
+        applicationVersionId = pApplicationVersionId_
+      }
+
+-- | Describes details about the application code and starting parameters for
+-- a Kinesis Data Analytics application.
+applicationDetail_applicationConfigurationDescription :: Lens.Lens' ApplicationDetail (Prelude.Maybe ApplicationConfigurationDescription)
+applicationDetail_applicationConfigurationDescription = Lens.lens (\ApplicationDetail' {applicationConfigurationDescription} -> applicationConfigurationDescription) (\s@ApplicationDetail' {} a -> s {applicationConfigurationDescription = a} :: ApplicationDetail)
+
+-- | The description of the application.
+applicationDetail_applicationDescription :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Text)
+applicationDetail_applicationDescription = Lens.lens (\ApplicationDetail' {applicationDescription} -> applicationDescription) (\s@ApplicationDetail' {} a -> s {applicationDescription = a} :: ApplicationDetail)
+
+-- | The details of the maintenance configuration for the application.
+applicationDetail_applicationMaintenanceConfigurationDescription :: Lens.Lens' ApplicationDetail (Prelude.Maybe ApplicationMaintenanceConfigurationDescription)
+applicationDetail_applicationMaintenanceConfigurationDescription = Lens.lens (\ApplicationDetail' {applicationMaintenanceConfigurationDescription} -> applicationMaintenanceConfigurationDescription) (\s@ApplicationDetail' {} a -> s {applicationMaintenanceConfigurationDescription = a} :: ApplicationDetail)
+
+-- | To create a Kinesis Data Analytics Studio notebook, you must set the
+-- mode to @INTERACTIVE@. However, for a Kinesis Data Analytics for Apache
+-- Flink application, the mode is optional.
+applicationDetail_applicationMode :: Lens.Lens' ApplicationDetail (Prelude.Maybe ApplicationMode)
+applicationDetail_applicationMode = Lens.lens (\ApplicationDetail' {applicationMode} -> applicationMode) (\s@ApplicationDetail' {} a -> s {applicationMode = a} :: ApplicationDetail)
+
+-- | If you reverted the application using RollbackApplication, the
+-- application version when @RollbackApplication@ was called.
+applicationDetail_applicationVersionRolledBackFrom :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Natural)
+applicationDetail_applicationVersionRolledBackFrom = Lens.lens (\ApplicationDetail' {applicationVersionRolledBackFrom} -> applicationVersionRolledBackFrom) (\s@ApplicationDetail' {} a -> s {applicationVersionRolledBackFrom = a} :: ApplicationDetail)
+
+-- | The version to which you want to roll back the application.
+applicationDetail_applicationVersionRolledBackTo :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Natural)
+applicationDetail_applicationVersionRolledBackTo = Lens.lens (\ApplicationDetail' {applicationVersionRolledBackTo} -> applicationVersionRolledBackTo) (\s@ApplicationDetail' {} a -> s {applicationVersionRolledBackTo = a} :: ApplicationDetail)
+
+-- | The previous application version before the latest application update.
+-- RollbackApplication reverts the application to this version.
+applicationDetail_applicationVersionUpdatedFrom :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Natural)
+applicationDetail_applicationVersionUpdatedFrom = Lens.lens (\ApplicationDetail' {applicationVersionUpdatedFrom} -> applicationVersionUpdatedFrom) (\s@ApplicationDetail' {} a -> s {applicationVersionUpdatedFrom = a} :: ApplicationDetail)
+
+-- | Describes the application Amazon CloudWatch logging options.
+applicationDetail_cloudWatchLoggingOptionDescriptions :: Lens.Lens' ApplicationDetail (Prelude.Maybe [CloudWatchLoggingOptionDescription])
+applicationDetail_cloudWatchLoggingOptionDescriptions = Lens.lens (\ApplicationDetail' {cloudWatchLoggingOptionDescriptions} -> cloudWatchLoggingOptionDescriptions) (\s@ApplicationDetail' {} a -> s {cloudWatchLoggingOptionDescriptions = a} :: ApplicationDetail) Prelude.. Lens.mapping Lens.coerced
+
+-- | A value you use to implement strong concurrency for application updates.
+applicationDetail_conditionalToken :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Text)
+applicationDetail_conditionalToken = Lens.lens (\ApplicationDetail' {conditionalToken} -> conditionalToken) (\s@ApplicationDetail' {} a -> s {conditionalToken = a} :: ApplicationDetail)
+
+-- | The current timestamp when the application was created.
+applicationDetail_createTimestamp :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.UTCTime)
+applicationDetail_createTimestamp = Lens.lens (\ApplicationDetail' {createTimestamp} -> createTimestamp) (\s@ApplicationDetail' {} a -> s {createTimestamp = a} :: ApplicationDetail) Prelude.. Lens.mapping Data._Time
+
+-- | The current timestamp when the application was last updated.
+applicationDetail_lastUpdateTimestamp :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.UTCTime)
+applicationDetail_lastUpdateTimestamp = Lens.lens (\ApplicationDetail' {lastUpdateTimestamp} -> lastUpdateTimestamp) (\s@ApplicationDetail' {} a -> s {lastUpdateTimestamp = a} :: ApplicationDetail) Prelude.. Lens.mapping Data._Time
+
+-- | Specifies the IAM role that the application uses to access external
+-- resources.
+applicationDetail_serviceExecutionRole :: Lens.Lens' ApplicationDetail (Prelude.Maybe Prelude.Text)
+applicationDetail_serviceExecutionRole = Lens.lens (\ApplicationDetail' {serviceExecutionRole} -> serviceExecutionRole) (\s@ApplicationDetail' {} a -> s {serviceExecutionRole = a} :: ApplicationDetail)
+
+-- | The ARN of the application.
+applicationDetail_applicationARN :: Lens.Lens' ApplicationDetail Prelude.Text
+applicationDetail_applicationARN = Lens.lens (\ApplicationDetail' {applicationARN} -> applicationARN) (\s@ApplicationDetail' {} a -> s {applicationARN = a} :: ApplicationDetail)
+
+-- | The name of the application.
+applicationDetail_applicationName :: Lens.Lens' ApplicationDetail Prelude.Text
+applicationDetail_applicationName = Lens.lens (\ApplicationDetail' {applicationName} -> applicationName) (\s@ApplicationDetail' {} a -> s {applicationName = a} :: ApplicationDetail)
+
+-- | The runtime environment for the application.
+applicationDetail_runtimeEnvironment :: Lens.Lens' ApplicationDetail RuntimeEnvironment
+applicationDetail_runtimeEnvironment = Lens.lens (\ApplicationDetail' {runtimeEnvironment} -> runtimeEnvironment) (\s@ApplicationDetail' {} a -> s {runtimeEnvironment = a} :: ApplicationDetail)
+
+-- | The status of the application.
+applicationDetail_applicationStatus :: Lens.Lens' ApplicationDetail ApplicationStatus
+applicationDetail_applicationStatus = Lens.lens (\ApplicationDetail' {applicationStatus} -> applicationStatus) (\s@ApplicationDetail' {} a -> s {applicationStatus = a} :: ApplicationDetail)
+
+-- | Provides the current application version. Kinesis Data Analytics updates
+-- the @ApplicationVersionId@ each time you update the application.
+applicationDetail_applicationVersionId :: Lens.Lens' ApplicationDetail Prelude.Natural
+applicationDetail_applicationVersionId = Lens.lens (\ApplicationDetail' {applicationVersionId} -> applicationVersionId) (\s@ApplicationDetail' {} a -> s {applicationVersionId = a} :: ApplicationDetail)
+
+instance Data.FromJSON ApplicationDetail where
+  parseJSON =
+    Data.withObject
+      "ApplicationDetail"
+      ( \x ->
+          ApplicationDetail'
+            Prelude.<$> (x Data..:? "ApplicationConfigurationDescription")
+            Prelude.<*> (x Data..:? "ApplicationDescription")
+            Prelude.<*> ( x
+                            Data..:? "ApplicationMaintenanceConfigurationDescription"
+                        )
+            Prelude.<*> (x Data..:? "ApplicationMode")
+            Prelude.<*> (x Data..:? "ApplicationVersionRolledBackFrom")
+            Prelude.<*> (x Data..:? "ApplicationVersionRolledBackTo")
+            Prelude.<*> (x Data..:? "ApplicationVersionUpdatedFrom")
+            Prelude.<*> ( x
+                            Data..:? "CloudWatchLoggingOptionDescriptions"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "ConditionalToken")
+            Prelude.<*> (x Data..:? "CreateTimestamp")
+            Prelude.<*> (x Data..:? "LastUpdateTimestamp")
+            Prelude.<*> (x Data..:? "ServiceExecutionRole")
+            Prelude.<*> (x Data..: "ApplicationARN")
+            Prelude.<*> (x Data..: "ApplicationName")
+            Prelude.<*> (x Data..: "RuntimeEnvironment")
+            Prelude.<*> (x Data..: "ApplicationStatus")
+            Prelude.<*> (x Data..: "ApplicationVersionId")
+      )
+
+instance Prelude.Hashable ApplicationDetail where
+  hashWithSalt _salt ApplicationDetail' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationConfigurationDescription
+      `Prelude.hashWithSalt` applicationDescription
+      `Prelude.hashWithSalt` applicationMaintenanceConfigurationDescription
+      `Prelude.hashWithSalt` applicationMode
+      `Prelude.hashWithSalt` applicationVersionRolledBackFrom
+      `Prelude.hashWithSalt` applicationVersionRolledBackTo
+      `Prelude.hashWithSalt` applicationVersionUpdatedFrom
+      `Prelude.hashWithSalt` cloudWatchLoggingOptionDescriptions
+      `Prelude.hashWithSalt` conditionalToken
+      `Prelude.hashWithSalt` createTimestamp
+      `Prelude.hashWithSalt` lastUpdateTimestamp
+      `Prelude.hashWithSalt` serviceExecutionRole
+      `Prelude.hashWithSalt` applicationARN
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` runtimeEnvironment
+      `Prelude.hashWithSalt` applicationStatus
+      `Prelude.hashWithSalt` applicationVersionId
+
+instance Prelude.NFData ApplicationDetail where
+  rnf ApplicationDetail' {..} =
+    Prelude.rnf applicationConfigurationDescription
+      `Prelude.seq` Prelude.rnf applicationDescription
+      `Prelude.seq` Prelude.rnf
+        applicationMaintenanceConfigurationDescription
+      `Prelude.seq` Prelude.rnf applicationMode
+      `Prelude.seq` Prelude.rnf applicationVersionRolledBackFrom
+      `Prelude.seq` Prelude.rnf applicationVersionRolledBackTo
+      `Prelude.seq` Prelude.rnf applicationVersionUpdatedFrom
+      `Prelude.seq` Prelude.rnf cloudWatchLoggingOptionDescriptions
+      `Prelude.seq` Prelude.rnf conditionalToken
+      `Prelude.seq` Prelude.rnf createTimestamp
+      `Prelude.seq` Prelude.rnf lastUpdateTimestamp
+      `Prelude.seq` Prelude.rnf serviceExecutionRole
+      `Prelude.seq` Prelude.rnf applicationARN
+      `Prelude.seq` Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf runtimeEnvironment
+      `Prelude.seq` Prelude.rnf applicationStatus
+      `Prelude.seq` Prelude.rnf applicationVersionId
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationMaintenanceConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationMaintenanceConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationMaintenanceConfigurationDescription.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.KinesisAnalyticsV2.Types.ApplicationMaintenanceConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.ApplicationMaintenanceConfigurationDescription 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 details of the maintenance configuration for the application.
+--
+-- /See:/ 'newApplicationMaintenanceConfigurationDescription' smart constructor.
+data ApplicationMaintenanceConfigurationDescription = ApplicationMaintenanceConfigurationDescription'
+  { -- | The start time for the maintenance window.
+    applicationMaintenanceWindowStartTime :: Prelude.Text,
+    -- | The end time for the maintenance window.
+    applicationMaintenanceWindowEndTime :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationMaintenanceConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationMaintenanceWindowStartTime', 'applicationMaintenanceConfigurationDescription_applicationMaintenanceWindowStartTime' - The start time for the maintenance window.
+--
+-- 'applicationMaintenanceWindowEndTime', 'applicationMaintenanceConfigurationDescription_applicationMaintenanceWindowEndTime' - The end time for the maintenance window.
+newApplicationMaintenanceConfigurationDescription ::
+  -- | 'applicationMaintenanceWindowStartTime'
+  Prelude.Text ->
+  -- | 'applicationMaintenanceWindowEndTime'
+  Prelude.Text ->
+  ApplicationMaintenanceConfigurationDescription
+newApplicationMaintenanceConfigurationDescription
+  pApplicationMaintenanceWindowStartTime_
+  pApplicationMaintenanceWindowEndTime_ =
+    ApplicationMaintenanceConfigurationDescription'
+      { applicationMaintenanceWindowStartTime =
+          pApplicationMaintenanceWindowStartTime_,
+        applicationMaintenanceWindowEndTime =
+          pApplicationMaintenanceWindowEndTime_
+      }
+
+-- | The start time for the maintenance window.
+applicationMaintenanceConfigurationDescription_applicationMaintenanceWindowStartTime :: Lens.Lens' ApplicationMaintenanceConfigurationDescription Prelude.Text
+applicationMaintenanceConfigurationDescription_applicationMaintenanceWindowStartTime = Lens.lens (\ApplicationMaintenanceConfigurationDescription' {applicationMaintenanceWindowStartTime} -> applicationMaintenanceWindowStartTime) (\s@ApplicationMaintenanceConfigurationDescription' {} a -> s {applicationMaintenanceWindowStartTime = a} :: ApplicationMaintenanceConfigurationDescription)
+
+-- | The end time for the maintenance window.
+applicationMaintenanceConfigurationDescription_applicationMaintenanceWindowEndTime :: Lens.Lens' ApplicationMaintenanceConfigurationDescription Prelude.Text
+applicationMaintenanceConfigurationDescription_applicationMaintenanceWindowEndTime = Lens.lens (\ApplicationMaintenanceConfigurationDescription' {applicationMaintenanceWindowEndTime} -> applicationMaintenanceWindowEndTime) (\s@ApplicationMaintenanceConfigurationDescription' {} a -> s {applicationMaintenanceWindowEndTime = a} :: ApplicationMaintenanceConfigurationDescription)
+
+instance
+  Data.FromJSON
+    ApplicationMaintenanceConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "ApplicationMaintenanceConfigurationDescription"
+      ( \x ->
+          ApplicationMaintenanceConfigurationDescription'
+            Prelude.<$> (x Data..: "ApplicationMaintenanceWindowStartTime")
+            Prelude.<*> (x Data..: "ApplicationMaintenanceWindowEndTime")
+      )
+
+instance
+  Prelude.Hashable
+    ApplicationMaintenanceConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    ApplicationMaintenanceConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` applicationMaintenanceWindowStartTime
+        `Prelude.hashWithSalt` applicationMaintenanceWindowEndTime
+
+instance
+  Prelude.NFData
+    ApplicationMaintenanceConfigurationDescription
+  where
+  rnf
+    ApplicationMaintenanceConfigurationDescription' {..} =
+      Prelude.rnf applicationMaintenanceWindowStartTime
+        `Prelude.seq` Prelude.rnf applicationMaintenanceWindowEndTime
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationMaintenanceConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationMaintenanceConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationMaintenanceConfigurationUpdate.hs
@@ -0,0 +1,90 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.ApplicationMaintenanceConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.ApplicationMaintenanceConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the updated maintenance configuration for the application.
+--
+-- /See:/ 'newApplicationMaintenanceConfigurationUpdate' smart constructor.
+data ApplicationMaintenanceConfigurationUpdate = ApplicationMaintenanceConfigurationUpdate'
+  { -- | The updated start time for the maintenance window.
+    applicationMaintenanceWindowStartTimeUpdate :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationMaintenanceConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationMaintenanceWindowStartTimeUpdate', 'applicationMaintenanceConfigurationUpdate_applicationMaintenanceWindowStartTimeUpdate' - The updated start time for the maintenance window.
+newApplicationMaintenanceConfigurationUpdate ::
+  -- | 'applicationMaintenanceWindowStartTimeUpdate'
+  Prelude.Text ->
+  ApplicationMaintenanceConfigurationUpdate
+newApplicationMaintenanceConfigurationUpdate
+  pApplicationMaintenanceWindowStartTimeUpdate_ =
+    ApplicationMaintenanceConfigurationUpdate'
+      { applicationMaintenanceWindowStartTimeUpdate =
+          pApplicationMaintenanceWindowStartTimeUpdate_
+      }
+
+-- | The updated start time for the maintenance window.
+applicationMaintenanceConfigurationUpdate_applicationMaintenanceWindowStartTimeUpdate :: Lens.Lens' ApplicationMaintenanceConfigurationUpdate Prelude.Text
+applicationMaintenanceConfigurationUpdate_applicationMaintenanceWindowStartTimeUpdate = Lens.lens (\ApplicationMaintenanceConfigurationUpdate' {applicationMaintenanceWindowStartTimeUpdate} -> applicationMaintenanceWindowStartTimeUpdate) (\s@ApplicationMaintenanceConfigurationUpdate' {} a -> s {applicationMaintenanceWindowStartTimeUpdate = a} :: ApplicationMaintenanceConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    ApplicationMaintenanceConfigurationUpdate
+  where
+  hashWithSalt
+    _salt
+    ApplicationMaintenanceConfigurationUpdate' {..} =
+      _salt
+        `Prelude.hashWithSalt` applicationMaintenanceWindowStartTimeUpdate
+
+instance
+  Prelude.NFData
+    ApplicationMaintenanceConfigurationUpdate
+  where
+  rnf ApplicationMaintenanceConfigurationUpdate' {..} =
+    Prelude.rnf
+      applicationMaintenanceWindowStartTimeUpdate
+
+instance
+  Data.ToJSON
+    ApplicationMaintenanceConfigurationUpdate
+  where
+  toJSON ApplicationMaintenanceConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "ApplicationMaintenanceWindowStartTimeUpdate"
+                  Data..= applicationMaintenanceWindowStartTimeUpdate
+              )
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationMode.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationMode.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationMode.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.KinesisAnalyticsV2.Types.ApplicationMode
+-- 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.KinesisAnalyticsV2.Types.ApplicationMode
+  ( ApplicationMode
+      ( ..,
+        ApplicationMode_INTERACTIVE,
+        ApplicationMode_STREAMING
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ApplicationMode = ApplicationMode'
+  { fromApplicationMode ::
+      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 ApplicationMode_INTERACTIVE :: ApplicationMode
+pattern ApplicationMode_INTERACTIVE = ApplicationMode' "INTERACTIVE"
+
+pattern ApplicationMode_STREAMING :: ApplicationMode
+pattern ApplicationMode_STREAMING = ApplicationMode' "STREAMING"
+
+{-# COMPLETE
+  ApplicationMode_INTERACTIVE,
+  ApplicationMode_STREAMING,
+  ApplicationMode'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationRestoreConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationRestoreConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationRestoreConfiguration.hs
@@ -0,0 +1,123 @@
+{-# 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.KinesisAnalyticsV2.Types.ApplicationRestoreConfiguration
+-- 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.KinesisAnalyticsV2.Types.ApplicationRestoreConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationRestoreType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Specifies the method and snapshot to use when restarting an application
+-- using previously saved application state.
+--
+-- /See:/ 'newApplicationRestoreConfiguration' smart constructor.
+data ApplicationRestoreConfiguration = ApplicationRestoreConfiguration'
+  { -- | The identifier of an existing snapshot of application state to use to
+    -- restart an application. The application uses this value if
+    -- @RESTORE_FROM_CUSTOM_SNAPSHOT@ is specified for the
+    -- @ApplicationRestoreType@.
+    snapshotName :: Prelude.Maybe Prelude.Text,
+    -- | Specifies how the application should be restored.
+    applicationRestoreType :: ApplicationRestoreType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationRestoreConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'snapshotName', 'applicationRestoreConfiguration_snapshotName' - The identifier of an existing snapshot of application state to use to
+-- restart an application. The application uses this value if
+-- @RESTORE_FROM_CUSTOM_SNAPSHOT@ is specified for the
+-- @ApplicationRestoreType@.
+--
+-- 'applicationRestoreType', 'applicationRestoreConfiguration_applicationRestoreType' - Specifies how the application should be restored.
+newApplicationRestoreConfiguration ::
+  -- | 'applicationRestoreType'
+  ApplicationRestoreType ->
+  ApplicationRestoreConfiguration
+newApplicationRestoreConfiguration
+  pApplicationRestoreType_ =
+    ApplicationRestoreConfiguration'
+      { snapshotName =
+          Prelude.Nothing,
+        applicationRestoreType =
+          pApplicationRestoreType_
+      }
+
+-- | The identifier of an existing snapshot of application state to use to
+-- restart an application. The application uses this value if
+-- @RESTORE_FROM_CUSTOM_SNAPSHOT@ is specified for the
+-- @ApplicationRestoreType@.
+applicationRestoreConfiguration_snapshotName :: Lens.Lens' ApplicationRestoreConfiguration (Prelude.Maybe Prelude.Text)
+applicationRestoreConfiguration_snapshotName = Lens.lens (\ApplicationRestoreConfiguration' {snapshotName} -> snapshotName) (\s@ApplicationRestoreConfiguration' {} a -> s {snapshotName = a} :: ApplicationRestoreConfiguration)
+
+-- | Specifies how the application should be restored.
+applicationRestoreConfiguration_applicationRestoreType :: Lens.Lens' ApplicationRestoreConfiguration ApplicationRestoreType
+applicationRestoreConfiguration_applicationRestoreType = Lens.lens (\ApplicationRestoreConfiguration' {applicationRestoreType} -> applicationRestoreType) (\s@ApplicationRestoreConfiguration' {} a -> s {applicationRestoreType = a} :: ApplicationRestoreConfiguration)
+
+instance
+  Data.FromJSON
+    ApplicationRestoreConfiguration
+  where
+  parseJSON =
+    Data.withObject
+      "ApplicationRestoreConfiguration"
+      ( \x ->
+          ApplicationRestoreConfiguration'
+            Prelude.<$> (x Data..:? "SnapshotName")
+            Prelude.<*> (x Data..: "ApplicationRestoreType")
+      )
+
+instance
+  Prelude.Hashable
+    ApplicationRestoreConfiguration
+  where
+  hashWithSalt
+    _salt
+    ApplicationRestoreConfiguration' {..} =
+      _salt
+        `Prelude.hashWithSalt` snapshotName
+        `Prelude.hashWithSalt` applicationRestoreType
+
+instance
+  Prelude.NFData
+    ApplicationRestoreConfiguration
+  where
+  rnf ApplicationRestoreConfiguration' {..} =
+    Prelude.rnf snapshotName
+      `Prelude.seq` Prelude.rnf applicationRestoreType
+
+instance Data.ToJSON ApplicationRestoreConfiguration where
+  toJSON ApplicationRestoreConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("SnapshotName" Data..=) Prelude.<$> snapshotName,
+            Prelude.Just
+              ( "ApplicationRestoreType"
+                  Data..= applicationRestoreType
+              )
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationRestoreType.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationRestoreType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationRestoreType.hs
@@ -0,0 +1,76 @@
+{-# 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.KinesisAnalyticsV2.Types.ApplicationRestoreType
+-- 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.KinesisAnalyticsV2.Types.ApplicationRestoreType
+  ( ApplicationRestoreType
+      ( ..,
+        ApplicationRestoreType_RESTORE_FROM_CUSTOM_SNAPSHOT,
+        ApplicationRestoreType_RESTORE_FROM_LATEST_SNAPSHOT,
+        ApplicationRestoreType_SKIP_RESTORE_FROM_SNAPSHOT
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ApplicationRestoreType = ApplicationRestoreType'
+  { fromApplicationRestoreType ::
+      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 ApplicationRestoreType_RESTORE_FROM_CUSTOM_SNAPSHOT :: ApplicationRestoreType
+pattern ApplicationRestoreType_RESTORE_FROM_CUSTOM_SNAPSHOT = ApplicationRestoreType' "RESTORE_FROM_CUSTOM_SNAPSHOT"
+
+pattern ApplicationRestoreType_RESTORE_FROM_LATEST_SNAPSHOT :: ApplicationRestoreType
+pattern ApplicationRestoreType_RESTORE_FROM_LATEST_SNAPSHOT = ApplicationRestoreType' "RESTORE_FROM_LATEST_SNAPSHOT"
+
+pattern ApplicationRestoreType_SKIP_RESTORE_FROM_SNAPSHOT :: ApplicationRestoreType
+pattern ApplicationRestoreType_SKIP_RESTORE_FROM_SNAPSHOT = ApplicationRestoreType' "SKIP_RESTORE_FROM_SNAPSHOT"
+
+{-# COMPLETE
+  ApplicationRestoreType_RESTORE_FROM_CUSTOM_SNAPSHOT,
+  ApplicationRestoreType_RESTORE_FROM_LATEST_SNAPSHOT,
+  ApplicationRestoreType_SKIP_RESTORE_FROM_SNAPSHOT,
+  ApplicationRestoreType'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationSnapshotConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationSnapshotConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationSnapshotConfiguration.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.KinesisAnalyticsV2.Types.ApplicationSnapshotConfiguration
+-- 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.KinesisAnalyticsV2.Types.ApplicationSnapshotConfiguration 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 whether snapshots are enabled for a Flink-based Kinesis Data
+-- Analytics application.
+--
+-- /See:/ 'newApplicationSnapshotConfiguration' smart constructor.
+data ApplicationSnapshotConfiguration = ApplicationSnapshotConfiguration'
+  { -- | Describes whether snapshots are enabled for a Flink-based Kinesis Data
+    -- Analytics application.
+    snapshotsEnabled :: Prelude.Bool
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationSnapshotConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'snapshotsEnabled', 'applicationSnapshotConfiguration_snapshotsEnabled' - Describes whether snapshots are enabled for a Flink-based Kinesis Data
+-- Analytics application.
+newApplicationSnapshotConfiguration ::
+  -- | 'snapshotsEnabled'
+  Prelude.Bool ->
+  ApplicationSnapshotConfiguration
+newApplicationSnapshotConfiguration
+  pSnapshotsEnabled_ =
+    ApplicationSnapshotConfiguration'
+      { snapshotsEnabled =
+          pSnapshotsEnabled_
+      }
+
+-- | Describes whether snapshots are enabled for a Flink-based Kinesis Data
+-- Analytics application.
+applicationSnapshotConfiguration_snapshotsEnabled :: Lens.Lens' ApplicationSnapshotConfiguration Prelude.Bool
+applicationSnapshotConfiguration_snapshotsEnabled = Lens.lens (\ApplicationSnapshotConfiguration' {snapshotsEnabled} -> snapshotsEnabled) (\s@ApplicationSnapshotConfiguration' {} a -> s {snapshotsEnabled = a} :: ApplicationSnapshotConfiguration)
+
+instance
+  Prelude.Hashable
+    ApplicationSnapshotConfiguration
+  where
+  hashWithSalt
+    _salt
+    ApplicationSnapshotConfiguration' {..} =
+      _salt `Prelude.hashWithSalt` snapshotsEnabled
+
+instance
+  Prelude.NFData
+    ApplicationSnapshotConfiguration
+  where
+  rnf ApplicationSnapshotConfiguration' {..} =
+    Prelude.rnf snapshotsEnabled
+
+instance Data.ToJSON ApplicationSnapshotConfiguration where
+  toJSON ApplicationSnapshotConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("SnapshotsEnabled" Data..= snapshotsEnabled)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationSnapshotConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationSnapshotConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationSnapshotConfigurationDescription.hs
@@ -0,0 +1,90 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.ApplicationSnapshotConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.ApplicationSnapshotConfigurationDescription 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 whether snapshots are enabled for a Flink-based Kinesis Data
+-- Analytics application.
+--
+-- /See:/ 'newApplicationSnapshotConfigurationDescription' smart constructor.
+data ApplicationSnapshotConfigurationDescription = ApplicationSnapshotConfigurationDescription'
+  { -- | Describes whether snapshots are enabled for a Flink-based Kinesis Data
+    -- Analytics application.
+    snapshotsEnabled :: Prelude.Bool
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationSnapshotConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'snapshotsEnabled', 'applicationSnapshotConfigurationDescription_snapshotsEnabled' - Describes whether snapshots are enabled for a Flink-based Kinesis Data
+-- Analytics application.
+newApplicationSnapshotConfigurationDescription ::
+  -- | 'snapshotsEnabled'
+  Prelude.Bool ->
+  ApplicationSnapshotConfigurationDescription
+newApplicationSnapshotConfigurationDescription
+  pSnapshotsEnabled_ =
+    ApplicationSnapshotConfigurationDescription'
+      { snapshotsEnabled =
+          pSnapshotsEnabled_
+      }
+
+-- | Describes whether snapshots are enabled for a Flink-based Kinesis Data
+-- Analytics application.
+applicationSnapshotConfigurationDescription_snapshotsEnabled :: Lens.Lens' ApplicationSnapshotConfigurationDescription Prelude.Bool
+applicationSnapshotConfigurationDescription_snapshotsEnabled = Lens.lens (\ApplicationSnapshotConfigurationDescription' {snapshotsEnabled} -> snapshotsEnabled) (\s@ApplicationSnapshotConfigurationDescription' {} a -> s {snapshotsEnabled = a} :: ApplicationSnapshotConfigurationDescription)
+
+instance
+  Data.FromJSON
+    ApplicationSnapshotConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "ApplicationSnapshotConfigurationDescription"
+      ( \x ->
+          ApplicationSnapshotConfigurationDescription'
+            Prelude.<$> (x Data..: "SnapshotsEnabled")
+      )
+
+instance
+  Prelude.Hashable
+    ApplicationSnapshotConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    ApplicationSnapshotConfigurationDescription' {..} =
+      _salt `Prelude.hashWithSalt` snapshotsEnabled
+
+instance
+  Prelude.NFData
+    ApplicationSnapshotConfigurationDescription
+  where
+  rnf ApplicationSnapshotConfigurationDescription' {..} =
+    Prelude.rnf snapshotsEnabled
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationSnapshotConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationSnapshotConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationSnapshotConfigurationUpdate.hs
@@ -0,0 +1,89 @@
+{-# 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.KinesisAnalyticsV2.Types.ApplicationSnapshotConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.ApplicationSnapshotConfigurationUpdate 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 updates to whether snapshots are enabled for a Flink-based
+-- Kinesis Data Analytics application.
+--
+-- /See:/ 'newApplicationSnapshotConfigurationUpdate' smart constructor.
+data ApplicationSnapshotConfigurationUpdate = ApplicationSnapshotConfigurationUpdate'
+  { -- | Describes updates to whether snapshots are enabled for an application.
+    snapshotsEnabledUpdate :: Prelude.Bool
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationSnapshotConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'snapshotsEnabledUpdate', 'applicationSnapshotConfigurationUpdate_snapshotsEnabledUpdate' - Describes updates to whether snapshots are enabled for an application.
+newApplicationSnapshotConfigurationUpdate ::
+  -- | 'snapshotsEnabledUpdate'
+  Prelude.Bool ->
+  ApplicationSnapshotConfigurationUpdate
+newApplicationSnapshotConfigurationUpdate
+  pSnapshotsEnabledUpdate_ =
+    ApplicationSnapshotConfigurationUpdate'
+      { snapshotsEnabledUpdate =
+          pSnapshotsEnabledUpdate_
+      }
+
+-- | Describes updates to whether snapshots are enabled for an application.
+applicationSnapshotConfigurationUpdate_snapshotsEnabledUpdate :: Lens.Lens' ApplicationSnapshotConfigurationUpdate Prelude.Bool
+applicationSnapshotConfigurationUpdate_snapshotsEnabledUpdate = Lens.lens (\ApplicationSnapshotConfigurationUpdate' {snapshotsEnabledUpdate} -> snapshotsEnabledUpdate) (\s@ApplicationSnapshotConfigurationUpdate' {} a -> s {snapshotsEnabledUpdate = a} :: ApplicationSnapshotConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    ApplicationSnapshotConfigurationUpdate
+  where
+  hashWithSalt
+    _salt
+    ApplicationSnapshotConfigurationUpdate' {..} =
+      _salt `Prelude.hashWithSalt` snapshotsEnabledUpdate
+
+instance
+  Prelude.NFData
+    ApplicationSnapshotConfigurationUpdate
+  where
+  rnf ApplicationSnapshotConfigurationUpdate' {..} =
+    Prelude.rnf snapshotsEnabledUpdate
+
+instance
+  Data.ToJSON
+    ApplicationSnapshotConfigurationUpdate
+  where
+  toJSON ApplicationSnapshotConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "SnapshotsEnabledUpdate"
+                  Data..= snapshotsEnabledUpdate
+              )
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationStatus.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationStatus.hs
@@ -0,0 +1,116 @@
+{-# 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.KinesisAnalyticsV2.Types.ApplicationStatus
+-- 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.KinesisAnalyticsV2.Types.ApplicationStatus
+  ( ApplicationStatus
+      ( ..,
+        ApplicationStatus_AUTOSCALING,
+        ApplicationStatus_DELETING,
+        ApplicationStatus_FORCE_STOPPING,
+        ApplicationStatus_MAINTENANCE,
+        ApplicationStatus_READY,
+        ApplicationStatus_ROLLED_BACK,
+        ApplicationStatus_ROLLING_BACK,
+        ApplicationStatus_RUNNING,
+        ApplicationStatus_STARTING,
+        ApplicationStatus_STOPPING,
+        ApplicationStatus_UPDATING
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ApplicationStatus = ApplicationStatus'
+  { fromApplicationStatus ::
+      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 ApplicationStatus_AUTOSCALING :: ApplicationStatus
+pattern ApplicationStatus_AUTOSCALING = ApplicationStatus' "AUTOSCALING"
+
+pattern ApplicationStatus_DELETING :: ApplicationStatus
+pattern ApplicationStatus_DELETING = ApplicationStatus' "DELETING"
+
+pattern ApplicationStatus_FORCE_STOPPING :: ApplicationStatus
+pattern ApplicationStatus_FORCE_STOPPING = ApplicationStatus' "FORCE_STOPPING"
+
+pattern ApplicationStatus_MAINTENANCE :: ApplicationStatus
+pattern ApplicationStatus_MAINTENANCE = ApplicationStatus' "MAINTENANCE"
+
+pattern ApplicationStatus_READY :: ApplicationStatus
+pattern ApplicationStatus_READY = ApplicationStatus' "READY"
+
+pattern ApplicationStatus_ROLLED_BACK :: ApplicationStatus
+pattern ApplicationStatus_ROLLED_BACK = ApplicationStatus' "ROLLED_BACK"
+
+pattern ApplicationStatus_ROLLING_BACK :: ApplicationStatus
+pattern ApplicationStatus_ROLLING_BACK = ApplicationStatus' "ROLLING_BACK"
+
+pattern ApplicationStatus_RUNNING :: ApplicationStatus
+pattern ApplicationStatus_RUNNING = ApplicationStatus' "RUNNING"
+
+pattern ApplicationStatus_STARTING :: ApplicationStatus
+pattern ApplicationStatus_STARTING = ApplicationStatus' "STARTING"
+
+pattern ApplicationStatus_STOPPING :: ApplicationStatus
+pattern ApplicationStatus_STOPPING = ApplicationStatus' "STOPPING"
+
+pattern ApplicationStatus_UPDATING :: ApplicationStatus
+pattern ApplicationStatus_UPDATING = ApplicationStatus' "UPDATING"
+
+{-# COMPLETE
+  ApplicationStatus_AUTOSCALING,
+  ApplicationStatus_DELETING,
+  ApplicationStatus_FORCE_STOPPING,
+  ApplicationStatus_MAINTENANCE,
+  ApplicationStatus_READY,
+  ApplicationStatus_ROLLED_BACK,
+  ApplicationStatus_ROLLING_BACK,
+  ApplicationStatus_RUNNING,
+  ApplicationStatus_STARTING,
+  ApplicationStatus_STOPPING,
+  ApplicationStatus_UPDATING,
+  ApplicationStatus'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationSummary.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationSummary.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationSummary.hs
@@ -0,0 +1,158 @@
+{-# 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.KinesisAnalyticsV2.Types.ApplicationSummary
+-- 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.KinesisAnalyticsV2.Types.ApplicationSummary where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationMode
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationStatus
+import Amazonka.KinesisAnalyticsV2.Types.RuntimeEnvironment
+import qualified Amazonka.Prelude as Prelude
+
+-- | Provides application summary information, including the application
+-- Amazon Resource Name (ARN), name, and status.
+--
+-- /See:/ 'newApplicationSummary' smart constructor.
+data ApplicationSummary = ApplicationSummary'
+  { -- | For a Kinesis Data Analytics for Apache Flink application, the mode is
+    -- @STREAMING@. For a Kinesis Data Analytics Studio notebook, it is
+    -- @INTERACTIVE@.
+    applicationMode :: Prelude.Maybe ApplicationMode,
+    -- | The name of the application.
+    applicationName :: Prelude.Text,
+    -- | The ARN of the application.
+    applicationARN :: Prelude.Text,
+    -- | The status of the application.
+    applicationStatus :: ApplicationStatus,
+    -- | Provides the current application version.
+    applicationVersionId :: Prelude.Natural,
+    -- | The runtime environment for the application.
+    runtimeEnvironment :: RuntimeEnvironment
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationSummary' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationMode', 'applicationSummary_applicationMode' - For a Kinesis Data Analytics for Apache Flink application, the mode is
+-- @STREAMING@. For a Kinesis Data Analytics Studio notebook, it is
+-- @INTERACTIVE@.
+--
+-- 'applicationName', 'applicationSummary_applicationName' - The name of the application.
+--
+-- 'applicationARN', 'applicationSummary_applicationARN' - The ARN of the application.
+--
+-- 'applicationStatus', 'applicationSummary_applicationStatus' - The status of the application.
+--
+-- 'applicationVersionId', 'applicationSummary_applicationVersionId' - Provides the current application version.
+--
+-- 'runtimeEnvironment', 'applicationSummary_runtimeEnvironment' - The runtime environment for the application.
+newApplicationSummary ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'applicationARN'
+  Prelude.Text ->
+  -- | 'applicationStatus'
+  ApplicationStatus ->
+  -- | 'applicationVersionId'
+  Prelude.Natural ->
+  -- | 'runtimeEnvironment'
+  RuntimeEnvironment ->
+  ApplicationSummary
+newApplicationSummary
+  pApplicationName_
+  pApplicationARN_
+  pApplicationStatus_
+  pApplicationVersionId_
+  pRuntimeEnvironment_ =
+    ApplicationSummary'
+      { applicationMode =
+          Prelude.Nothing,
+        applicationName = pApplicationName_,
+        applicationARN = pApplicationARN_,
+        applicationStatus = pApplicationStatus_,
+        applicationVersionId = pApplicationVersionId_,
+        runtimeEnvironment = pRuntimeEnvironment_
+      }
+
+-- | For a Kinesis Data Analytics for Apache Flink application, the mode is
+-- @STREAMING@. For a Kinesis Data Analytics Studio notebook, it is
+-- @INTERACTIVE@.
+applicationSummary_applicationMode :: Lens.Lens' ApplicationSummary (Prelude.Maybe ApplicationMode)
+applicationSummary_applicationMode = Lens.lens (\ApplicationSummary' {applicationMode} -> applicationMode) (\s@ApplicationSummary' {} a -> s {applicationMode = a} :: ApplicationSummary)
+
+-- | The name of the application.
+applicationSummary_applicationName :: Lens.Lens' ApplicationSummary Prelude.Text
+applicationSummary_applicationName = Lens.lens (\ApplicationSummary' {applicationName} -> applicationName) (\s@ApplicationSummary' {} a -> s {applicationName = a} :: ApplicationSummary)
+
+-- | The ARN of the application.
+applicationSummary_applicationARN :: Lens.Lens' ApplicationSummary Prelude.Text
+applicationSummary_applicationARN = Lens.lens (\ApplicationSummary' {applicationARN} -> applicationARN) (\s@ApplicationSummary' {} a -> s {applicationARN = a} :: ApplicationSummary)
+
+-- | The status of the application.
+applicationSummary_applicationStatus :: Lens.Lens' ApplicationSummary ApplicationStatus
+applicationSummary_applicationStatus = Lens.lens (\ApplicationSummary' {applicationStatus} -> applicationStatus) (\s@ApplicationSummary' {} a -> s {applicationStatus = a} :: ApplicationSummary)
+
+-- | Provides the current application version.
+applicationSummary_applicationVersionId :: Lens.Lens' ApplicationSummary Prelude.Natural
+applicationSummary_applicationVersionId = Lens.lens (\ApplicationSummary' {applicationVersionId} -> applicationVersionId) (\s@ApplicationSummary' {} a -> s {applicationVersionId = a} :: ApplicationSummary)
+
+-- | The runtime environment for the application.
+applicationSummary_runtimeEnvironment :: Lens.Lens' ApplicationSummary RuntimeEnvironment
+applicationSummary_runtimeEnvironment = Lens.lens (\ApplicationSummary' {runtimeEnvironment} -> runtimeEnvironment) (\s@ApplicationSummary' {} a -> s {runtimeEnvironment = a} :: ApplicationSummary)
+
+instance Data.FromJSON ApplicationSummary where
+  parseJSON =
+    Data.withObject
+      "ApplicationSummary"
+      ( \x ->
+          ApplicationSummary'
+            Prelude.<$> (x Data..:? "ApplicationMode")
+            Prelude.<*> (x Data..: "ApplicationName")
+            Prelude.<*> (x Data..: "ApplicationARN")
+            Prelude.<*> (x Data..: "ApplicationStatus")
+            Prelude.<*> (x Data..: "ApplicationVersionId")
+            Prelude.<*> (x Data..: "RuntimeEnvironment")
+      )
+
+instance Prelude.Hashable ApplicationSummary where
+  hashWithSalt _salt ApplicationSummary' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationMode
+      `Prelude.hashWithSalt` applicationName
+      `Prelude.hashWithSalt` applicationARN
+      `Prelude.hashWithSalt` applicationStatus
+      `Prelude.hashWithSalt` applicationVersionId
+      `Prelude.hashWithSalt` runtimeEnvironment
+
+instance Prelude.NFData ApplicationSummary where
+  rnf ApplicationSummary' {..} =
+    Prelude.rnf applicationMode
+      `Prelude.seq` Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf applicationARN
+      `Prelude.seq` Prelude.rnf applicationStatus
+      `Prelude.seq` Prelude.rnf applicationVersionId
+      `Prelude.seq` Prelude.rnf runtimeEnvironment
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationVersionSummary.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationVersionSummary.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ApplicationVersionSummary.hs
@@ -0,0 +1,95 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.ApplicationVersionSummary
+-- 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.KinesisAnalyticsV2.Types.ApplicationVersionSummary where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationStatus
+import qualified Amazonka.Prelude as Prelude
+
+-- | The summary of the application version.
+--
+-- /See:/ 'newApplicationVersionSummary' smart constructor.
+data ApplicationVersionSummary = ApplicationVersionSummary'
+  { -- | The ID of the application version. Kinesis Data Analytics updates the
+    -- @ApplicationVersionId@ each time you update the application.
+    applicationVersionId :: Prelude.Natural,
+    -- | The status of the application.
+    applicationStatus :: ApplicationStatus
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationVersionSummary' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationVersionId', 'applicationVersionSummary_applicationVersionId' - The ID of the application version. Kinesis Data Analytics updates the
+-- @ApplicationVersionId@ each time you update the application.
+--
+-- 'applicationStatus', 'applicationVersionSummary_applicationStatus' - The status of the application.
+newApplicationVersionSummary ::
+  -- | 'applicationVersionId'
+  Prelude.Natural ->
+  -- | 'applicationStatus'
+  ApplicationStatus ->
+  ApplicationVersionSummary
+newApplicationVersionSummary
+  pApplicationVersionId_
+  pApplicationStatus_ =
+    ApplicationVersionSummary'
+      { applicationVersionId =
+          pApplicationVersionId_,
+        applicationStatus = pApplicationStatus_
+      }
+
+-- | The ID of the application version. Kinesis Data Analytics updates the
+-- @ApplicationVersionId@ each time you update the application.
+applicationVersionSummary_applicationVersionId :: Lens.Lens' ApplicationVersionSummary Prelude.Natural
+applicationVersionSummary_applicationVersionId = Lens.lens (\ApplicationVersionSummary' {applicationVersionId} -> applicationVersionId) (\s@ApplicationVersionSummary' {} a -> s {applicationVersionId = a} :: ApplicationVersionSummary)
+
+-- | The status of the application.
+applicationVersionSummary_applicationStatus :: Lens.Lens' ApplicationVersionSummary ApplicationStatus
+applicationVersionSummary_applicationStatus = Lens.lens (\ApplicationVersionSummary' {applicationStatus} -> applicationStatus) (\s@ApplicationVersionSummary' {} a -> s {applicationStatus = a} :: ApplicationVersionSummary)
+
+instance Data.FromJSON ApplicationVersionSummary where
+  parseJSON =
+    Data.withObject
+      "ApplicationVersionSummary"
+      ( \x ->
+          ApplicationVersionSummary'
+            Prelude.<$> (x Data..: "ApplicationVersionId")
+            Prelude.<*> (x Data..: "ApplicationStatus")
+      )
+
+instance Prelude.Hashable ApplicationVersionSummary where
+  hashWithSalt _salt ApplicationVersionSummary' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationVersionId
+      `Prelude.hashWithSalt` applicationStatus
+
+instance Prelude.NFData ApplicationVersionSummary where
+  rnf ApplicationVersionSummary' {..} =
+    Prelude.rnf applicationVersionId
+      `Prelude.seq` Prelude.rnf applicationStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ArtifactType.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ArtifactType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ArtifactType.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.KinesisAnalyticsV2.Types.ArtifactType
+-- 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.KinesisAnalyticsV2.Types.ArtifactType
+  ( ArtifactType
+      ( ..,
+        ArtifactType_DEPENDENCY_JAR,
+        ArtifactType_UDF
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ArtifactType = ArtifactType'
+  { fromArtifactType ::
+      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 ArtifactType_DEPENDENCY_JAR :: ArtifactType
+pattern ArtifactType_DEPENDENCY_JAR = ArtifactType' "DEPENDENCY_JAR"
+
+pattern ArtifactType_UDF :: ArtifactType
+pattern ArtifactType_UDF = ArtifactType' "UDF"
+
+{-# COMPLETE
+  ArtifactType_DEPENDENCY_JAR,
+  ArtifactType_UDF,
+  ArtifactType'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CSVMappingParameters.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CSVMappingParameters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CSVMappingParameters.hs
@@ -0,0 +1,118 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.CSVMappingParameters
+-- 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.KinesisAnalyticsV2.Types.CSVMappingParameters 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
+
+-- | For a SQL-based Kinesis Data Analytics application, provides additional
+-- mapping information when the record format uses delimiters, such as CSV.
+-- For example, the following sample records use CSV format, where the
+-- records use the /\'\\n\'/ as the row delimiter and a comma (\",\") as
+-- the column delimiter:
+--
+-- @\"name1\", \"address1\"@
+--
+-- @\"name2\", \"address2\"@
+--
+-- /See:/ 'newCSVMappingParameters' smart constructor.
+data CSVMappingParameters = CSVMappingParameters'
+  { -- | The row delimiter. For example, in a CSV format, /\'\\n\'/ is the
+    -- typical row delimiter.
+    recordRowDelimiter :: Prelude.Text,
+    -- | The column delimiter. For example, in a CSV format, a comma (\",\") is
+    -- the typical column delimiter.
+    recordColumnDelimiter :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CSVMappingParameters' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'recordRowDelimiter', 'cSVMappingParameters_recordRowDelimiter' - The row delimiter. For example, in a CSV format, /\'\\n\'/ is the
+-- typical row delimiter.
+--
+-- 'recordColumnDelimiter', 'cSVMappingParameters_recordColumnDelimiter' - The column delimiter. For example, in a CSV format, a comma (\",\") is
+-- the typical column delimiter.
+newCSVMappingParameters ::
+  -- | 'recordRowDelimiter'
+  Prelude.Text ->
+  -- | 'recordColumnDelimiter'
+  Prelude.Text ->
+  CSVMappingParameters
+newCSVMappingParameters
+  pRecordRowDelimiter_
+  pRecordColumnDelimiter_ =
+    CSVMappingParameters'
+      { recordRowDelimiter =
+          pRecordRowDelimiter_,
+        recordColumnDelimiter = pRecordColumnDelimiter_
+      }
+
+-- | The row delimiter. For example, in a CSV format, /\'\\n\'/ is the
+-- typical row delimiter.
+cSVMappingParameters_recordRowDelimiter :: Lens.Lens' CSVMappingParameters Prelude.Text
+cSVMappingParameters_recordRowDelimiter = Lens.lens (\CSVMappingParameters' {recordRowDelimiter} -> recordRowDelimiter) (\s@CSVMappingParameters' {} a -> s {recordRowDelimiter = a} :: CSVMappingParameters)
+
+-- | The column delimiter. For example, in a CSV format, a comma (\",\") is
+-- the typical column delimiter.
+cSVMappingParameters_recordColumnDelimiter :: Lens.Lens' CSVMappingParameters Prelude.Text
+cSVMappingParameters_recordColumnDelimiter = Lens.lens (\CSVMappingParameters' {recordColumnDelimiter} -> recordColumnDelimiter) (\s@CSVMappingParameters' {} a -> s {recordColumnDelimiter = a} :: CSVMappingParameters)
+
+instance Data.FromJSON CSVMappingParameters where
+  parseJSON =
+    Data.withObject
+      "CSVMappingParameters"
+      ( \x ->
+          CSVMappingParameters'
+            Prelude.<$> (x Data..: "RecordRowDelimiter")
+            Prelude.<*> (x Data..: "RecordColumnDelimiter")
+      )
+
+instance Prelude.Hashable CSVMappingParameters where
+  hashWithSalt _salt CSVMappingParameters' {..} =
+    _salt
+      `Prelude.hashWithSalt` recordRowDelimiter
+      `Prelude.hashWithSalt` recordColumnDelimiter
+
+instance Prelude.NFData CSVMappingParameters where
+  rnf CSVMappingParameters' {..} =
+    Prelude.rnf recordRowDelimiter
+      `Prelude.seq` Prelude.rnf recordColumnDelimiter
+
+instance Data.ToJSON CSVMappingParameters where
+  toJSON CSVMappingParameters' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("RecordRowDelimiter" Data..= recordRowDelimiter),
+            Prelude.Just
+              ( "RecordColumnDelimiter"
+                  Data..= recordColumnDelimiter
+              )
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CatalogConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CatalogConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CatalogConfiguration.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.KinesisAnalyticsV2.Types.CatalogConfiguration
+-- 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.KinesisAnalyticsV2.Types.CatalogConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.GlueDataCatalogConfiguration
+import qualified Amazonka.Prelude as Prelude
+
+-- | The configuration parameters for the default Amazon Glue database. You
+-- use this database for SQL queries that you write in a Kinesis Data
+-- Analytics Studio notebook.
+--
+-- /See:/ 'newCatalogConfiguration' smart constructor.
+data CatalogConfiguration = CatalogConfiguration'
+  { -- | The configuration parameters for the default Amazon Glue database. You
+    -- use this database for Apache Flink SQL queries and table API transforms
+    -- that you write in a Kinesis Data Analytics Studio notebook.
+    glueDataCatalogConfiguration :: GlueDataCatalogConfiguration
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CatalogConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'glueDataCatalogConfiguration', 'catalogConfiguration_glueDataCatalogConfiguration' - The configuration parameters for the default Amazon Glue database. You
+-- use this database for Apache Flink SQL queries and table API transforms
+-- that you write in a Kinesis Data Analytics Studio notebook.
+newCatalogConfiguration ::
+  -- | 'glueDataCatalogConfiguration'
+  GlueDataCatalogConfiguration ->
+  CatalogConfiguration
+newCatalogConfiguration
+  pGlueDataCatalogConfiguration_ =
+    CatalogConfiguration'
+      { glueDataCatalogConfiguration =
+          pGlueDataCatalogConfiguration_
+      }
+
+-- | The configuration parameters for the default Amazon Glue database. You
+-- use this database for Apache Flink SQL queries and table API transforms
+-- that you write in a Kinesis Data Analytics Studio notebook.
+catalogConfiguration_glueDataCatalogConfiguration :: Lens.Lens' CatalogConfiguration GlueDataCatalogConfiguration
+catalogConfiguration_glueDataCatalogConfiguration = Lens.lens (\CatalogConfiguration' {glueDataCatalogConfiguration} -> glueDataCatalogConfiguration) (\s@CatalogConfiguration' {} a -> s {glueDataCatalogConfiguration = a} :: CatalogConfiguration)
+
+instance Prelude.Hashable CatalogConfiguration where
+  hashWithSalt _salt CatalogConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` glueDataCatalogConfiguration
+
+instance Prelude.NFData CatalogConfiguration where
+  rnf CatalogConfiguration' {..} =
+    Prelude.rnf glueDataCatalogConfiguration
+
+instance Data.ToJSON CatalogConfiguration where
+  toJSON CatalogConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "GlueDataCatalogConfiguration"
+                  Data..= glueDataCatalogConfiguration
+              )
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CatalogConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CatalogConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CatalogConfigurationDescription.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.KinesisAnalyticsV2.Types.CatalogConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.CatalogConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.GlueDataCatalogConfigurationDescription
+import qualified Amazonka.Prelude as Prelude
+
+-- | The configuration parameters for the default Amazon Glue database. You
+-- use this database for Apache Flink SQL queries and table API transforms
+-- that you write in a Kinesis Data Analytics Studio notebook.
+--
+-- /See:/ 'newCatalogConfigurationDescription' smart constructor.
+data CatalogConfigurationDescription = CatalogConfigurationDescription'
+  { -- | The configuration parameters for the default Amazon Glue database. You
+    -- use this database for SQL queries that you write in a Kinesis Data
+    -- Analytics Studio notebook.
+    glueDataCatalogConfigurationDescription :: GlueDataCatalogConfigurationDescription
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CatalogConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'glueDataCatalogConfigurationDescription', 'catalogConfigurationDescription_glueDataCatalogConfigurationDescription' - The configuration parameters for the default Amazon Glue database. You
+-- use this database for SQL queries that you write in a Kinesis Data
+-- Analytics Studio notebook.
+newCatalogConfigurationDescription ::
+  -- | 'glueDataCatalogConfigurationDescription'
+  GlueDataCatalogConfigurationDescription ->
+  CatalogConfigurationDescription
+newCatalogConfigurationDescription
+  pGlueDataCatalogConfigurationDescription_ =
+    CatalogConfigurationDescription'
+      { glueDataCatalogConfigurationDescription =
+          pGlueDataCatalogConfigurationDescription_
+      }
+
+-- | The configuration parameters for the default Amazon Glue database. You
+-- use this database for SQL queries that you write in a Kinesis Data
+-- Analytics Studio notebook.
+catalogConfigurationDescription_glueDataCatalogConfigurationDescription :: Lens.Lens' CatalogConfigurationDescription GlueDataCatalogConfigurationDescription
+catalogConfigurationDescription_glueDataCatalogConfigurationDescription = Lens.lens (\CatalogConfigurationDescription' {glueDataCatalogConfigurationDescription} -> glueDataCatalogConfigurationDescription) (\s@CatalogConfigurationDescription' {} a -> s {glueDataCatalogConfigurationDescription = a} :: CatalogConfigurationDescription)
+
+instance
+  Data.FromJSON
+    CatalogConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "CatalogConfigurationDescription"
+      ( \x ->
+          CatalogConfigurationDescription'
+            Prelude.<$> ( x
+                            Data..: "GlueDataCatalogConfigurationDescription"
+                        )
+      )
+
+instance
+  Prelude.Hashable
+    CatalogConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    CatalogConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` glueDataCatalogConfigurationDescription
+
+instance
+  Prelude.NFData
+    CatalogConfigurationDescription
+  where
+  rnf CatalogConfigurationDescription' {..} =
+    Prelude.rnf glueDataCatalogConfigurationDescription
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CatalogConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CatalogConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CatalogConfigurationUpdate.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.KinesisAnalyticsV2.Types.CatalogConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.CatalogConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.GlueDataCatalogConfigurationUpdate
+import qualified Amazonka.Prelude as Prelude
+
+-- | Updates to the configuration parameters for the default Amazon Glue
+-- database. You use this database for SQL queries that you write in a
+-- Kinesis Data Analytics Studio notebook.
+--
+-- /See:/ 'newCatalogConfigurationUpdate' smart constructor.
+data CatalogConfigurationUpdate = CatalogConfigurationUpdate'
+  { -- | Updates to the configuration parameters for the default Amazon Glue
+    -- database. You use this database for SQL queries that you write in a
+    -- Kinesis Data Analytics Studio notebook.
+    glueDataCatalogConfigurationUpdate :: GlueDataCatalogConfigurationUpdate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CatalogConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'glueDataCatalogConfigurationUpdate', 'catalogConfigurationUpdate_glueDataCatalogConfigurationUpdate' - Updates to the configuration parameters for the default Amazon Glue
+-- database. You use this database for SQL queries that you write in a
+-- Kinesis Data Analytics Studio notebook.
+newCatalogConfigurationUpdate ::
+  -- | 'glueDataCatalogConfigurationUpdate'
+  GlueDataCatalogConfigurationUpdate ->
+  CatalogConfigurationUpdate
+newCatalogConfigurationUpdate
+  pGlueDataCatalogConfigurationUpdate_ =
+    CatalogConfigurationUpdate'
+      { glueDataCatalogConfigurationUpdate =
+          pGlueDataCatalogConfigurationUpdate_
+      }
+
+-- | Updates to the configuration parameters for the default Amazon Glue
+-- database. You use this database for SQL queries that you write in a
+-- Kinesis Data Analytics Studio notebook.
+catalogConfigurationUpdate_glueDataCatalogConfigurationUpdate :: Lens.Lens' CatalogConfigurationUpdate GlueDataCatalogConfigurationUpdate
+catalogConfigurationUpdate_glueDataCatalogConfigurationUpdate = Lens.lens (\CatalogConfigurationUpdate' {glueDataCatalogConfigurationUpdate} -> glueDataCatalogConfigurationUpdate) (\s@CatalogConfigurationUpdate' {} a -> s {glueDataCatalogConfigurationUpdate = a} :: CatalogConfigurationUpdate)
+
+instance Prelude.Hashable CatalogConfigurationUpdate where
+  hashWithSalt _salt CatalogConfigurationUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` glueDataCatalogConfigurationUpdate
+
+instance Prelude.NFData CatalogConfigurationUpdate where
+  rnf CatalogConfigurationUpdate' {..} =
+    Prelude.rnf glueDataCatalogConfigurationUpdate
+
+instance Data.ToJSON CatalogConfigurationUpdate where
+  toJSON CatalogConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "GlueDataCatalogConfigurationUpdate"
+                  Data..= glueDataCatalogConfigurationUpdate
+              )
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CheckpointConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CheckpointConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CheckpointConfiguration.hs
@@ -0,0 +1,222 @@
+{-# 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.KinesisAnalyticsV2.Types.CheckpointConfiguration
+-- 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.KinesisAnalyticsV2.Types.CheckpointConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ConfigurationType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes an application\'s checkpointing configuration. Checkpointing
+-- is the process of persisting application state for fault tolerance. For
+-- more information, see
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/concepts/programming-model.html#checkpoints-for-fault-tolerance Checkpoints for Fault Tolerance>
+-- in the
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink Documentation>.
+--
+-- /See:/ 'newCheckpointConfiguration' smart constructor.
+data CheckpointConfiguration = CheckpointConfiguration'
+  { -- | Describes the interval in milliseconds between checkpoint operations.
+    --
+    -- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+    -- application will use a @CheckpointInterval@ value of 60000, even if this
+    -- value is set to another value using this API or in application code.
+    checkpointInterval :: Prelude.Maybe Prelude.Natural,
+    -- | Describes whether checkpointing is enabled for a Flink-based Kinesis
+    -- Data Analytics application.
+    --
+    -- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+    -- application will use a @CheckpointingEnabled@ value of @true@, even if
+    -- this value is set to another value using this API or in application
+    -- code.
+    checkpointingEnabled :: Prelude.Maybe Prelude.Bool,
+    -- | Describes the minimum time in milliseconds after a checkpoint operation
+    -- completes that a new checkpoint operation can start. If a checkpoint
+    -- operation takes longer than the @CheckpointInterval@, the application
+    -- otherwise performs continual checkpoint operations. For more
+    -- information, see
+    -- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/state/large_state_tuning.html#tuning-checkpointing Tuning Checkpointing>
+    -- in the
+    -- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink Documentation>.
+    --
+    -- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+    -- application will use a @MinPauseBetweenCheckpoints@ value of 5000, even
+    -- if this value is set using this API or in application code.
+    minPauseBetweenCheckpoints :: Prelude.Maybe Prelude.Natural,
+    -- | Describes whether the application uses Kinesis Data Analytics\' default
+    -- checkpointing behavior. You must set this property to @CUSTOM@ in order
+    -- to set the @CheckpointingEnabled@, @CheckpointInterval@, or
+    -- @MinPauseBetweenCheckpoints@ parameters.
+    --
+    -- If this value is set to @DEFAULT@, the application will use the
+    -- following values, even if they are set to other values using APIs or
+    -- application code:
+    --
+    -- -   __CheckpointingEnabled:__ true
+    --
+    -- -   __CheckpointInterval:__ 60000
+    --
+    -- -   __MinPauseBetweenCheckpoints:__ 5000
+    configurationType :: ConfigurationType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CheckpointConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'checkpointInterval', 'checkpointConfiguration_checkpointInterval' - Describes the interval in milliseconds between checkpoint operations.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @CheckpointInterval@ value of 60000, even if this
+-- value is set to another value using this API or in application code.
+--
+-- 'checkpointingEnabled', 'checkpointConfiguration_checkpointingEnabled' - Describes whether checkpointing is enabled for a Flink-based Kinesis
+-- Data Analytics application.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @CheckpointingEnabled@ value of @true@, even if
+-- this value is set to another value using this API or in application
+-- code.
+--
+-- 'minPauseBetweenCheckpoints', 'checkpointConfiguration_minPauseBetweenCheckpoints' - Describes the minimum time in milliseconds after a checkpoint operation
+-- completes that a new checkpoint operation can start. If a checkpoint
+-- operation takes longer than the @CheckpointInterval@, the application
+-- otherwise performs continual checkpoint operations. For more
+-- information, see
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/state/large_state_tuning.html#tuning-checkpointing Tuning Checkpointing>
+-- in the
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink Documentation>.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @MinPauseBetweenCheckpoints@ value of 5000, even
+-- if this value is set using this API or in application code.
+--
+-- 'configurationType', 'checkpointConfiguration_configurationType' - Describes whether the application uses Kinesis Data Analytics\' default
+-- checkpointing behavior. You must set this property to @CUSTOM@ in order
+-- to set the @CheckpointingEnabled@, @CheckpointInterval@, or
+-- @MinPauseBetweenCheckpoints@ parameters.
+--
+-- If this value is set to @DEFAULT@, the application will use the
+-- following values, even if they are set to other values using APIs or
+-- application code:
+--
+-- -   __CheckpointingEnabled:__ true
+--
+-- -   __CheckpointInterval:__ 60000
+--
+-- -   __MinPauseBetweenCheckpoints:__ 5000
+newCheckpointConfiguration ::
+  -- | 'configurationType'
+  ConfigurationType ->
+  CheckpointConfiguration
+newCheckpointConfiguration pConfigurationType_ =
+  CheckpointConfiguration'
+    { checkpointInterval =
+        Prelude.Nothing,
+      checkpointingEnabled = Prelude.Nothing,
+      minPauseBetweenCheckpoints = Prelude.Nothing,
+      configurationType = pConfigurationType_
+    }
+
+-- | Describes the interval in milliseconds between checkpoint operations.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @CheckpointInterval@ value of 60000, even if this
+-- value is set to another value using this API or in application code.
+checkpointConfiguration_checkpointInterval :: Lens.Lens' CheckpointConfiguration (Prelude.Maybe Prelude.Natural)
+checkpointConfiguration_checkpointInterval = Lens.lens (\CheckpointConfiguration' {checkpointInterval} -> checkpointInterval) (\s@CheckpointConfiguration' {} a -> s {checkpointInterval = a} :: CheckpointConfiguration)
+
+-- | Describes whether checkpointing is enabled for a Flink-based Kinesis
+-- Data Analytics application.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @CheckpointingEnabled@ value of @true@, even if
+-- this value is set to another value using this API or in application
+-- code.
+checkpointConfiguration_checkpointingEnabled :: Lens.Lens' CheckpointConfiguration (Prelude.Maybe Prelude.Bool)
+checkpointConfiguration_checkpointingEnabled = Lens.lens (\CheckpointConfiguration' {checkpointingEnabled} -> checkpointingEnabled) (\s@CheckpointConfiguration' {} a -> s {checkpointingEnabled = a} :: CheckpointConfiguration)
+
+-- | Describes the minimum time in milliseconds after a checkpoint operation
+-- completes that a new checkpoint operation can start. If a checkpoint
+-- operation takes longer than the @CheckpointInterval@, the application
+-- otherwise performs continual checkpoint operations. For more
+-- information, see
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/state/large_state_tuning.html#tuning-checkpointing Tuning Checkpointing>
+-- in the
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink Documentation>.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @MinPauseBetweenCheckpoints@ value of 5000, even
+-- if this value is set using this API or in application code.
+checkpointConfiguration_minPauseBetweenCheckpoints :: Lens.Lens' CheckpointConfiguration (Prelude.Maybe Prelude.Natural)
+checkpointConfiguration_minPauseBetweenCheckpoints = Lens.lens (\CheckpointConfiguration' {minPauseBetweenCheckpoints} -> minPauseBetweenCheckpoints) (\s@CheckpointConfiguration' {} a -> s {minPauseBetweenCheckpoints = a} :: CheckpointConfiguration)
+
+-- | Describes whether the application uses Kinesis Data Analytics\' default
+-- checkpointing behavior. You must set this property to @CUSTOM@ in order
+-- to set the @CheckpointingEnabled@, @CheckpointInterval@, or
+-- @MinPauseBetweenCheckpoints@ parameters.
+--
+-- If this value is set to @DEFAULT@, the application will use the
+-- following values, even if they are set to other values using APIs or
+-- application code:
+--
+-- -   __CheckpointingEnabled:__ true
+--
+-- -   __CheckpointInterval:__ 60000
+--
+-- -   __MinPauseBetweenCheckpoints:__ 5000
+checkpointConfiguration_configurationType :: Lens.Lens' CheckpointConfiguration ConfigurationType
+checkpointConfiguration_configurationType = Lens.lens (\CheckpointConfiguration' {configurationType} -> configurationType) (\s@CheckpointConfiguration' {} a -> s {configurationType = a} :: CheckpointConfiguration)
+
+instance Prelude.Hashable CheckpointConfiguration where
+  hashWithSalt _salt CheckpointConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` checkpointInterval
+      `Prelude.hashWithSalt` checkpointingEnabled
+      `Prelude.hashWithSalt` minPauseBetweenCheckpoints
+      `Prelude.hashWithSalt` configurationType
+
+instance Prelude.NFData CheckpointConfiguration where
+  rnf CheckpointConfiguration' {..} =
+    Prelude.rnf checkpointInterval
+      `Prelude.seq` Prelude.rnf checkpointingEnabled
+      `Prelude.seq` Prelude.rnf minPauseBetweenCheckpoints
+      `Prelude.seq` Prelude.rnf configurationType
+
+instance Data.ToJSON CheckpointConfiguration where
+  toJSON CheckpointConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("CheckpointInterval" Data..=)
+              Prelude.<$> checkpointInterval,
+            ("CheckpointingEnabled" Data..=)
+              Prelude.<$> checkpointingEnabled,
+            ("MinPauseBetweenCheckpoints" Data..=)
+              Prelude.<$> minPauseBetweenCheckpoints,
+            Prelude.Just
+              ("ConfigurationType" Data..= configurationType)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CheckpointConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CheckpointConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CheckpointConfigurationDescription.hs
@@ -0,0 +1,201 @@
+{-# 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.KinesisAnalyticsV2.Types.CheckpointConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.CheckpointConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ConfigurationType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes checkpointing parameters for a Flink-based Kinesis Data
+-- Analytics application.
+--
+-- /See:/ 'newCheckpointConfigurationDescription' smart constructor.
+data CheckpointConfigurationDescription = CheckpointConfigurationDescription'
+  { -- | Describes the interval in milliseconds between checkpoint operations.
+    --
+    -- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+    -- application will use a @CheckpointInterval@ value of 60000, even if this
+    -- value is set to another value using this API or in application code.
+    checkpointInterval :: Prelude.Maybe Prelude.Natural,
+    -- | Describes whether checkpointing is enabled for a Flink-based Kinesis
+    -- Data Analytics application.
+    --
+    -- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+    -- application will use a @CheckpointingEnabled@ value of @true@, even if
+    -- this value is set to another value using this API or in application
+    -- code.
+    checkpointingEnabled :: Prelude.Maybe Prelude.Bool,
+    -- | Describes whether the application uses the default checkpointing
+    -- behavior in Kinesis Data Analytics.
+    --
+    -- If this value is set to @DEFAULT@, the application will use the
+    -- following values, even if they are set to other values using APIs or
+    -- application code:
+    --
+    -- -   __CheckpointingEnabled:__ true
+    --
+    -- -   __CheckpointInterval:__ 60000
+    --
+    -- -   __MinPauseBetweenCheckpoints:__ 5000
+    configurationType :: Prelude.Maybe ConfigurationType,
+    -- | Describes the minimum time in milliseconds after a checkpoint operation
+    -- completes that a new checkpoint operation can start.
+    --
+    -- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+    -- application will use a @MinPauseBetweenCheckpoints@ value of 5000, even
+    -- if this value is set using this API or in application code.
+    minPauseBetweenCheckpoints :: Prelude.Maybe Prelude.Natural
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CheckpointConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'checkpointInterval', 'checkpointConfigurationDescription_checkpointInterval' - Describes the interval in milliseconds between checkpoint operations.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @CheckpointInterval@ value of 60000, even if this
+-- value is set to another value using this API or in application code.
+--
+-- 'checkpointingEnabled', 'checkpointConfigurationDescription_checkpointingEnabled' - Describes whether checkpointing is enabled for a Flink-based Kinesis
+-- Data Analytics application.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @CheckpointingEnabled@ value of @true@, even if
+-- this value is set to another value using this API or in application
+-- code.
+--
+-- 'configurationType', 'checkpointConfigurationDescription_configurationType' - Describes whether the application uses the default checkpointing
+-- behavior in Kinesis Data Analytics.
+--
+-- If this value is set to @DEFAULT@, the application will use the
+-- following values, even if they are set to other values using APIs or
+-- application code:
+--
+-- -   __CheckpointingEnabled:__ true
+--
+-- -   __CheckpointInterval:__ 60000
+--
+-- -   __MinPauseBetweenCheckpoints:__ 5000
+--
+-- 'minPauseBetweenCheckpoints', 'checkpointConfigurationDescription_minPauseBetweenCheckpoints' - Describes the minimum time in milliseconds after a checkpoint operation
+-- completes that a new checkpoint operation can start.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @MinPauseBetweenCheckpoints@ value of 5000, even
+-- if this value is set using this API or in application code.
+newCheckpointConfigurationDescription ::
+  CheckpointConfigurationDescription
+newCheckpointConfigurationDescription =
+  CheckpointConfigurationDescription'
+    { checkpointInterval =
+        Prelude.Nothing,
+      checkpointingEnabled = Prelude.Nothing,
+      configurationType = Prelude.Nothing,
+      minPauseBetweenCheckpoints =
+        Prelude.Nothing
+    }
+
+-- | Describes the interval in milliseconds between checkpoint operations.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @CheckpointInterval@ value of 60000, even if this
+-- value is set to another value using this API or in application code.
+checkpointConfigurationDescription_checkpointInterval :: Lens.Lens' CheckpointConfigurationDescription (Prelude.Maybe Prelude.Natural)
+checkpointConfigurationDescription_checkpointInterval = Lens.lens (\CheckpointConfigurationDescription' {checkpointInterval} -> checkpointInterval) (\s@CheckpointConfigurationDescription' {} a -> s {checkpointInterval = a} :: CheckpointConfigurationDescription)
+
+-- | Describes whether checkpointing is enabled for a Flink-based Kinesis
+-- Data Analytics application.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @CheckpointingEnabled@ value of @true@, even if
+-- this value is set to another value using this API or in application
+-- code.
+checkpointConfigurationDescription_checkpointingEnabled :: Lens.Lens' CheckpointConfigurationDescription (Prelude.Maybe Prelude.Bool)
+checkpointConfigurationDescription_checkpointingEnabled = Lens.lens (\CheckpointConfigurationDescription' {checkpointingEnabled} -> checkpointingEnabled) (\s@CheckpointConfigurationDescription' {} a -> s {checkpointingEnabled = a} :: CheckpointConfigurationDescription)
+
+-- | Describes whether the application uses the default checkpointing
+-- behavior in Kinesis Data Analytics.
+--
+-- If this value is set to @DEFAULT@, the application will use the
+-- following values, even if they are set to other values using APIs or
+-- application code:
+--
+-- -   __CheckpointingEnabled:__ true
+--
+-- -   __CheckpointInterval:__ 60000
+--
+-- -   __MinPauseBetweenCheckpoints:__ 5000
+checkpointConfigurationDescription_configurationType :: Lens.Lens' CheckpointConfigurationDescription (Prelude.Maybe ConfigurationType)
+checkpointConfigurationDescription_configurationType = Lens.lens (\CheckpointConfigurationDescription' {configurationType} -> configurationType) (\s@CheckpointConfigurationDescription' {} a -> s {configurationType = a} :: CheckpointConfigurationDescription)
+
+-- | Describes the minimum time in milliseconds after a checkpoint operation
+-- completes that a new checkpoint operation can start.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @MinPauseBetweenCheckpoints@ value of 5000, even
+-- if this value is set using this API or in application code.
+checkpointConfigurationDescription_minPauseBetweenCheckpoints :: Lens.Lens' CheckpointConfigurationDescription (Prelude.Maybe Prelude.Natural)
+checkpointConfigurationDescription_minPauseBetweenCheckpoints = Lens.lens (\CheckpointConfigurationDescription' {minPauseBetweenCheckpoints} -> minPauseBetweenCheckpoints) (\s@CheckpointConfigurationDescription' {} a -> s {minPauseBetweenCheckpoints = a} :: CheckpointConfigurationDescription)
+
+instance
+  Data.FromJSON
+    CheckpointConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "CheckpointConfigurationDescription"
+      ( \x ->
+          CheckpointConfigurationDescription'
+            Prelude.<$> (x Data..:? "CheckpointInterval")
+            Prelude.<*> (x Data..:? "CheckpointingEnabled")
+            Prelude.<*> (x Data..:? "ConfigurationType")
+            Prelude.<*> (x Data..:? "MinPauseBetweenCheckpoints")
+      )
+
+instance
+  Prelude.Hashable
+    CheckpointConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    CheckpointConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` checkpointInterval
+        `Prelude.hashWithSalt` checkpointingEnabled
+        `Prelude.hashWithSalt` configurationType
+        `Prelude.hashWithSalt` minPauseBetweenCheckpoints
+
+instance
+  Prelude.NFData
+    CheckpointConfigurationDescription
+  where
+  rnf CheckpointConfigurationDescription' {..} =
+    Prelude.rnf checkpointInterval
+      `Prelude.seq` Prelude.rnf checkpointingEnabled
+      `Prelude.seq` Prelude.rnf configurationType
+      `Prelude.seq` Prelude.rnf minPauseBetweenCheckpoints
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CheckpointConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CheckpointConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CheckpointConfigurationUpdate.hs
@@ -0,0 +1,205 @@
+{-# 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.KinesisAnalyticsV2.Types.CheckpointConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.CheckpointConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ConfigurationType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes updates to the checkpointing parameters for a Flink-based
+-- Kinesis Data Analytics application.
+--
+-- /See:/ 'newCheckpointConfigurationUpdate' smart constructor.
+data CheckpointConfigurationUpdate = CheckpointConfigurationUpdate'
+  { -- | Describes updates to the interval in milliseconds between checkpoint
+    -- operations.
+    --
+    -- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+    -- application will use a @CheckpointInterval@ value of 60000, even if this
+    -- value is set to another value using this API or in application code.
+    checkpointIntervalUpdate :: Prelude.Maybe Prelude.Natural,
+    -- | Describes updates to whether checkpointing is enabled for an
+    -- application.
+    --
+    -- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+    -- application will use a @CheckpointingEnabled@ value of @true@, even if
+    -- this value is set to another value using this API or in application
+    -- code.
+    checkpointingEnabledUpdate :: Prelude.Maybe Prelude.Bool,
+    -- | Describes updates to whether the application uses the default
+    -- checkpointing behavior of Kinesis Data Analytics. You must set this
+    -- property to @CUSTOM@ in order to set the @CheckpointingEnabled@,
+    -- @CheckpointInterval@, or @MinPauseBetweenCheckpoints@ parameters.
+    --
+    -- If this value is set to @DEFAULT@, the application will use the
+    -- following values, even if they are set to other values using APIs or
+    -- application code:
+    --
+    -- -   __CheckpointingEnabled:__ true
+    --
+    -- -   __CheckpointInterval:__ 60000
+    --
+    -- -   __MinPauseBetweenCheckpoints:__ 5000
+    configurationTypeUpdate :: Prelude.Maybe ConfigurationType,
+    -- | Describes updates to the minimum time in milliseconds after a checkpoint
+    -- operation completes that a new checkpoint operation can start.
+    --
+    -- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+    -- application will use a @MinPauseBetweenCheckpoints@ value of 5000, even
+    -- if this value is set using this API or in application code.
+    minPauseBetweenCheckpointsUpdate :: Prelude.Maybe Prelude.Natural
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CheckpointConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'checkpointIntervalUpdate', 'checkpointConfigurationUpdate_checkpointIntervalUpdate' - Describes updates to the interval in milliseconds between checkpoint
+-- operations.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @CheckpointInterval@ value of 60000, even if this
+-- value is set to another value using this API or in application code.
+--
+-- 'checkpointingEnabledUpdate', 'checkpointConfigurationUpdate_checkpointingEnabledUpdate' - Describes updates to whether checkpointing is enabled for an
+-- application.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @CheckpointingEnabled@ value of @true@, even if
+-- this value is set to another value using this API or in application
+-- code.
+--
+-- 'configurationTypeUpdate', 'checkpointConfigurationUpdate_configurationTypeUpdate' - Describes updates to whether the application uses the default
+-- checkpointing behavior of Kinesis Data Analytics. You must set this
+-- property to @CUSTOM@ in order to set the @CheckpointingEnabled@,
+-- @CheckpointInterval@, or @MinPauseBetweenCheckpoints@ parameters.
+--
+-- If this value is set to @DEFAULT@, the application will use the
+-- following values, even if they are set to other values using APIs or
+-- application code:
+--
+-- -   __CheckpointingEnabled:__ true
+--
+-- -   __CheckpointInterval:__ 60000
+--
+-- -   __MinPauseBetweenCheckpoints:__ 5000
+--
+-- 'minPauseBetweenCheckpointsUpdate', 'checkpointConfigurationUpdate_minPauseBetweenCheckpointsUpdate' - Describes updates to the minimum time in milliseconds after a checkpoint
+-- operation completes that a new checkpoint operation can start.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @MinPauseBetweenCheckpoints@ value of 5000, even
+-- if this value is set using this API or in application code.
+newCheckpointConfigurationUpdate ::
+  CheckpointConfigurationUpdate
+newCheckpointConfigurationUpdate =
+  CheckpointConfigurationUpdate'
+    { checkpointIntervalUpdate =
+        Prelude.Nothing,
+      checkpointingEnabledUpdate = Prelude.Nothing,
+      configurationTypeUpdate = Prelude.Nothing,
+      minPauseBetweenCheckpointsUpdate =
+        Prelude.Nothing
+    }
+
+-- | Describes updates to the interval in milliseconds between checkpoint
+-- operations.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @CheckpointInterval@ value of 60000, even if this
+-- value is set to another value using this API or in application code.
+checkpointConfigurationUpdate_checkpointIntervalUpdate :: Lens.Lens' CheckpointConfigurationUpdate (Prelude.Maybe Prelude.Natural)
+checkpointConfigurationUpdate_checkpointIntervalUpdate = Lens.lens (\CheckpointConfigurationUpdate' {checkpointIntervalUpdate} -> checkpointIntervalUpdate) (\s@CheckpointConfigurationUpdate' {} a -> s {checkpointIntervalUpdate = a} :: CheckpointConfigurationUpdate)
+
+-- | Describes updates to whether checkpointing is enabled for an
+-- application.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @CheckpointingEnabled@ value of @true@, even if
+-- this value is set to another value using this API or in application
+-- code.
+checkpointConfigurationUpdate_checkpointingEnabledUpdate :: Lens.Lens' CheckpointConfigurationUpdate (Prelude.Maybe Prelude.Bool)
+checkpointConfigurationUpdate_checkpointingEnabledUpdate = Lens.lens (\CheckpointConfigurationUpdate' {checkpointingEnabledUpdate} -> checkpointingEnabledUpdate) (\s@CheckpointConfigurationUpdate' {} a -> s {checkpointingEnabledUpdate = a} :: CheckpointConfigurationUpdate)
+
+-- | Describes updates to whether the application uses the default
+-- checkpointing behavior of Kinesis Data Analytics. You must set this
+-- property to @CUSTOM@ in order to set the @CheckpointingEnabled@,
+-- @CheckpointInterval@, or @MinPauseBetweenCheckpoints@ parameters.
+--
+-- If this value is set to @DEFAULT@, the application will use the
+-- following values, even if they are set to other values using APIs or
+-- application code:
+--
+-- -   __CheckpointingEnabled:__ true
+--
+-- -   __CheckpointInterval:__ 60000
+--
+-- -   __MinPauseBetweenCheckpoints:__ 5000
+checkpointConfigurationUpdate_configurationTypeUpdate :: Lens.Lens' CheckpointConfigurationUpdate (Prelude.Maybe ConfigurationType)
+checkpointConfigurationUpdate_configurationTypeUpdate = Lens.lens (\CheckpointConfigurationUpdate' {configurationTypeUpdate} -> configurationTypeUpdate) (\s@CheckpointConfigurationUpdate' {} a -> s {configurationTypeUpdate = a} :: CheckpointConfigurationUpdate)
+
+-- | Describes updates to the minimum time in milliseconds after a checkpoint
+-- operation completes that a new checkpoint operation can start.
+--
+-- If @CheckpointConfiguration.ConfigurationType@ is @DEFAULT@, the
+-- application will use a @MinPauseBetweenCheckpoints@ value of 5000, even
+-- if this value is set using this API or in application code.
+checkpointConfigurationUpdate_minPauseBetweenCheckpointsUpdate :: Lens.Lens' CheckpointConfigurationUpdate (Prelude.Maybe Prelude.Natural)
+checkpointConfigurationUpdate_minPauseBetweenCheckpointsUpdate = Lens.lens (\CheckpointConfigurationUpdate' {minPauseBetweenCheckpointsUpdate} -> minPauseBetweenCheckpointsUpdate) (\s@CheckpointConfigurationUpdate' {} a -> s {minPauseBetweenCheckpointsUpdate = a} :: CheckpointConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    CheckpointConfigurationUpdate
+  where
+  hashWithSalt _salt CheckpointConfigurationUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` checkpointIntervalUpdate
+      `Prelude.hashWithSalt` checkpointingEnabledUpdate
+      `Prelude.hashWithSalt` configurationTypeUpdate
+      `Prelude.hashWithSalt` minPauseBetweenCheckpointsUpdate
+
+instance Prelude.NFData CheckpointConfigurationUpdate where
+  rnf CheckpointConfigurationUpdate' {..} =
+    Prelude.rnf checkpointIntervalUpdate
+      `Prelude.seq` Prelude.rnf checkpointingEnabledUpdate
+      `Prelude.seq` Prelude.rnf configurationTypeUpdate
+      `Prelude.seq` Prelude.rnf minPauseBetweenCheckpointsUpdate
+
+instance Data.ToJSON CheckpointConfigurationUpdate where
+  toJSON CheckpointConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("CheckpointIntervalUpdate" Data..=)
+              Prelude.<$> checkpointIntervalUpdate,
+            ("CheckpointingEnabledUpdate" Data..=)
+              Prelude.<$> checkpointingEnabledUpdate,
+            ("ConfigurationTypeUpdate" Data..=)
+              Prelude.<$> configurationTypeUpdate,
+            ("MinPauseBetweenCheckpointsUpdate" Data..=)
+              Prelude.<$> minPauseBetweenCheckpointsUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CloudWatchLoggingOption.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CloudWatchLoggingOption.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CloudWatchLoggingOption.hs
@@ -0,0 +1,73 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.CloudWatchLoggingOption
+-- 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.KinesisAnalyticsV2.Types.CloudWatchLoggingOption 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 description of Amazon CloudWatch logging options, including
+-- the log stream Amazon Resource Name (ARN).
+--
+-- /See:/ 'newCloudWatchLoggingOption' smart constructor.
+data CloudWatchLoggingOption = CloudWatchLoggingOption'
+  { -- | The ARN of the CloudWatch log to receive application messages.
+    logStreamARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CloudWatchLoggingOption' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'logStreamARN', 'cloudWatchLoggingOption_logStreamARN' - The ARN of the CloudWatch log to receive application messages.
+newCloudWatchLoggingOption ::
+  -- | 'logStreamARN'
+  Prelude.Text ->
+  CloudWatchLoggingOption
+newCloudWatchLoggingOption pLogStreamARN_ =
+  CloudWatchLoggingOption'
+    { logStreamARN =
+        pLogStreamARN_
+    }
+
+-- | The ARN of the CloudWatch log to receive application messages.
+cloudWatchLoggingOption_logStreamARN :: Lens.Lens' CloudWatchLoggingOption Prelude.Text
+cloudWatchLoggingOption_logStreamARN = Lens.lens (\CloudWatchLoggingOption' {logStreamARN} -> logStreamARN) (\s@CloudWatchLoggingOption' {} a -> s {logStreamARN = a} :: CloudWatchLoggingOption)
+
+instance Prelude.Hashable CloudWatchLoggingOption where
+  hashWithSalt _salt CloudWatchLoggingOption' {..} =
+    _salt `Prelude.hashWithSalt` logStreamARN
+
+instance Prelude.NFData CloudWatchLoggingOption where
+  rnf CloudWatchLoggingOption' {..} =
+    Prelude.rnf logStreamARN
+
+instance Data.ToJSON CloudWatchLoggingOption where
+  toJSON CloudWatchLoggingOption' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("LogStreamARN" Data..= logStreamARN)]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CloudWatchLoggingOptionDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CloudWatchLoggingOptionDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CloudWatchLoggingOptionDescription.hs
@@ -0,0 +1,125 @@
+{-# 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.KinesisAnalyticsV2.Types.CloudWatchLoggingOptionDescription
+-- 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.KinesisAnalyticsV2.Types.CloudWatchLoggingOptionDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the Amazon CloudWatch logging option.
+--
+-- /See:/ 'newCloudWatchLoggingOptionDescription' smart constructor.
+data CloudWatchLoggingOptionDescription = CloudWatchLoggingOptionDescription'
+  { -- | The ID of the CloudWatch logging option description.
+    cloudWatchLoggingOptionId :: Prelude.Maybe Prelude.Text,
+    -- | The IAM ARN of the role to use to send application messages.
+    --
+    -- Provided for backward compatibility. Applications created with the
+    -- current API version have an application-level service execution role
+    -- rather than a resource-level role.
+    roleARN :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the CloudWatch log to receive
+    -- application messages.
+    logStreamARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CloudWatchLoggingOptionDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'cloudWatchLoggingOptionId', 'cloudWatchLoggingOptionDescription_cloudWatchLoggingOptionId' - The ID of the CloudWatch logging option description.
+--
+-- 'roleARN', 'cloudWatchLoggingOptionDescription_roleARN' - The IAM ARN of the role to use to send application messages.
+--
+-- Provided for backward compatibility. Applications created with the
+-- current API version have an application-level service execution role
+-- rather than a resource-level role.
+--
+-- 'logStreamARN', 'cloudWatchLoggingOptionDescription_logStreamARN' - The Amazon Resource Name (ARN) of the CloudWatch log to receive
+-- application messages.
+newCloudWatchLoggingOptionDescription ::
+  -- | 'logStreamARN'
+  Prelude.Text ->
+  CloudWatchLoggingOptionDescription
+newCloudWatchLoggingOptionDescription pLogStreamARN_ =
+  CloudWatchLoggingOptionDescription'
+    { cloudWatchLoggingOptionId =
+        Prelude.Nothing,
+      roleARN = Prelude.Nothing,
+      logStreamARN = pLogStreamARN_
+    }
+
+-- | The ID of the CloudWatch logging option description.
+cloudWatchLoggingOptionDescription_cloudWatchLoggingOptionId :: Lens.Lens' CloudWatchLoggingOptionDescription (Prelude.Maybe Prelude.Text)
+cloudWatchLoggingOptionDescription_cloudWatchLoggingOptionId = Lens.lens (\CloudWatchLoggingOptionDescription' {cloudWatchLoggingOptionId} -> cloudWatchLoggingOptionId) (\s@CloudWatchLoggingOptionDescription' {} a -> s {cloudWatchLoggingOptionId = a} :: CloudWatchLoggingOptionDescription)
+
+-- | The IAM ARN of the role to use to send application messages.
+--
+-- Provided for backward compatibility. Applications created with the
+-- current API version have an application-level service execution role
+-- rather than a resource-level role.
+cloudWatchLoggingOptionDescription_roleARN :: Lens.Lens' CloudWatchLoggingOptionDescription (Prelude.Maybe Prelude.Text)
+cloudWatchLoggingOptionDescription_roleARN = Lens.lens (\CloudWatchLoggingOptionDescription' {roleARN} -> roleARN) (\s@CloudWatchLoggingOptionDescription' {} a -> s {roleARN = a} :: CloudWatchLoggingOptionDescription)
+
+-- | The Amazon Resource Name (ARN) of the CloudWatch log to receive
+-- application messages.
+cloudWatchLoggingOptionDescription_logStreamARN :: Lens.Lens' CloudWatchLoggingOptionDescription Prelude.Text
+cloudWatchLoggingOptionDescription_logStreamARN = Lens.lens (\CloudWatchLoggingOptionDescription' {logStreamARN} -> logStreamARN) (\s@CloudWatchLoggingOptionDescription' {} a -> s {logStreamARN = a} :: CloudWatchLoggingOptionDescription)
+
+instance
+  Data.FromJSON
+    CloudWatchLoggingOptionDescription
+  where
+  parseJSON =
+    Data.withObject
+      "CloudWatchLoggingOptionDescription"
+      ( \x ->
+          CloudWatchLoggingOptionDescription'
+            Prelude.<$> (x Data..:? "CloudWatchLoggingOptionId")
+            Prelude.<*> (x Data..:? "RoleARN")
+            Prelude.<*> (x Data..: "LogStreamARN")
+      )
+
+instance
+  Prelude.Hashable
+    CloudWatchLoggingOptionDescription
+  where
+  hashWithSalt
+    _salt
+    CloudWatchLoggingOptionDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` cloudWatchLoggingOptionId
+        `Prelude.hashWithSalt` roleARN
+        `Prelude.hashWithSalt` logStreamARN
+
+instance
+  Prelude.NFData
+    CloudWatchLoggingOptionDescription
+  where
+  rnf CloudWatchLoggingOptionDescription' {..} =
+    Prelude.rnf cloudWatchLoggingOptionId
+      `Prelude.seq` Prelude.rnf roleARN
+      `Prelude.seq` Prelude.rnf logStreamARN
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CloudWatchLoggingOptionUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CloudWatchLoggingOptionUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CloudWatchLoggingOptionUpdate.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.KinesisAnalyticsV2.Types.CloudWatchLoggingOptionUpdate
+-- 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.KinesisAnalyticsV2.Types.CloudWatchLoggingOptionUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the Amazon CloudWatch logging option updates.
+--
+-- /See:/ 'newCloudWatchLoggingOptionUpdate' smart constructor.
+data CloudWatchLoggingOptionUpdate = CloudWatchLoggingOptionUpdate'
+  { -- | The Amazon Resource Name (ARN) of the CloudWatch log to receive
+    -- application messages.
+    logStreamARNUpdate :: Prelude.Maybe Prelude.Text,
+    -- | The ID of the CloudWatch logging option to update
+    cloudWatchLoggingOptionId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CloudWatchLoggingOptionUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'logStreamARNUpdate', 'cloudWatchLoggingOptionUpdate_logStreamARNUpdate' - The Amazon Resource Name (ARN) of the CloudWatch log to receive
+-- application messages.
+--
+-- 'cloudWatchLoggingOptionId', 'cloudWatchLoggingOptionUpdate_cloudWatchLoggingOptionId' - The ID of the CloudWatch logging option to update
+newCloudWatchLoggingOptionUpdate ::
+  -- | 'cloudWatchLoggingOptionId'
+  Prelude.Text ->
+  CloudWatchLoggingOptionUpdate
+newCloudWatchLoggingOptionUpdate
+  pCloudWatchLoggingOptionId_ =
+    CloudWatchLoggingOptionUpdate'
+      { logStreamARNUpdate =
+          Prelude.Nothing,
+        cloudWatchLoggingOptionId =
+          pCloudWatchLoggingOptionId_
+      }
+
+-- | The Amazon Resource Name (ARN) of the CloudWatch log to receive
+-- application messages.
+cloudWatchLoggingOptionUpdate_logStreamARNUpdate :: Lens.Lens' CloudWatchLoggingOptionUpdate (Prelude.Maybe Prelude.Text)
+cloudWatchLoggingOptionUpdate_logStreamARNUpdate = Lens.lens (\CloudWatchLoggingOptionUpdate' {logStreamARNUpdate} -> logStreamARNUpdate) (\s@CloudWatchLoggingOptionUpdate' {} a -> s {logStreamARNUpdate = a} :: CloudWatchLoggingOptionUpdate)
+
+-- | The ID of the CloudWatch logging option to update
+cloudWatchLoggingOptionUpdate_cloudWatchLoggingOptionId :: Lens.Lens' CloudWatchLoggingOptionUpdate Prelude.Text
+cloudWatchLoggingOptionUpdate_cloudWatchLoggingOptionId = Lens.lens (\CloudWatchLoggingOptionUpdate' {cloudWatchLoggingOptionId} -> cloudWatchLoggingOptionId) (\s@CloudWatchLoggingOptionUpdate' {} a -> s {cloudWatchLoggingOptionId = a} :: CloudWatchLoggingOptionUpdate)
+
+instance
+  Prelude.Hashable
+    CloudWatchLoggingOptionUpdate
+  where
+  hashWithSalt _salt CloudWatchLoggingOptionUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` logStreamARNUpdate
+      `Prelude.hashWithSalt` cloudWatchLoggingOptionId
+
+instance Prelude.NFData CloudWatchLoggingOptionUpdate where
+  rnf CloudWatchLoggingOptionUpdate' {..} =
+    Prelude.rnf logStreamARNUpdate
+      `Prelude.seq` Prelude.rnf cloudWatchLoggingOptionId
+
+instance Data.ToJSON CloudWatchLoggingOptionUpdate where
+  toJSON CloudWatchLoggingOptionUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("LogStreamARNUpdate" Data..=)
+              Prelude.<$> logStreamARNUpdate,
+            Prelude.Just
+              ( "CloudWatchLoggingOptionId"
+                  Data..= cloudWatchLoggingOptionId
+              )
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CodeContent.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CodeContent.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CodeContent.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.CodeContent
+-- 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.KinesisAnalyticsV2.Types.CodeContent where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentLocation
+import qualified Amazonka.Prelude as Prelude
+
+-- | Specifies either the application code, or the location of the
+-- application code, for a Flink-based Kinesis Data Analytics application.
+--
+-- /See:/ 'newCodeContent' smart constructor.
+data CodeContent = CodeContent'
+  { -- | Information about the Amazon S3 bucket that contains the application
+    -- code.
+    s3ContentLocation :: Prelude.Maybe S3ContentLocation,
+    -- | The text-format code for a Flink-based Kinesis Data Analytics
+    -- application.
+    textContent :: Prelude.Maybe Prelude.Text,
+    -- | The zip-format code for a Flink-based Kinesis Data Analytics
+    -- application.
+    zipFileContent :: Prelude.Maybe Data.Base64
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CodeContent' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 's3ContentLocation', 'codeContent_s3ContentLocation' - Information about the Amazon S3 bucket that contains the application
+-- code.
+--
+-- 'textContent', 'codeContent_textContent' - The text-format code for a Flink-based Kinesis Data Analytics
+-- application.
+--
+-- 'zipFileContent', 'codeContent_zipFileContent' - The zip-format code for a Flink-based Kinesis Data Analytics
+-- application.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+newCodeContent ::
+  CodeContent
+newCodeContent =
+  CodeContent'
+    { s3ContentLocation = Prelude.Nothing,
+      textContent = Prelude.Nothing,
+      zipFileContent = Prelude.Nothing
+    }
+
+-- | Information about the Amazon S3 bucket that contains the application
+-- code.
+codeContent_s3ContentLocation :: Lens.Lens' CodeContent (Prelude.Maybe S3ContentLocation)
+codeContent_s3ContentLocation = Lens.lens (\CodeContent' {s3ContentLocation} -> s3ContentLocation) (\s@CodeContent' {} a -> s {s3ContentLocation = a} :: CodeContent)
+
+-- | The text-format code for a Flink-based Kinesis Data Analytics
+-- application.
+codeContent_textContent :: Lens.Lens' CodeContent (Prelude.Maybe Prelude.Text)
+codeContent_textContent = Lens.lens (\CodeContent' {textContent} -> textContent) (\s@CodeContent' {} a -> s {textContent = a} :: CodeContent)
+
+-- | The zip-format code for a Flink-based Kinesis Data Analytics
+-- application.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+codeContent_zipFileContent :: Lens.Lens' CodeContent (Prelude.Maybe Prelude.ByteString)
+codeContent_zipFileContent = Lens.lens (\CodeContent' {zipFileContent} -> zipFileContent) (\s@CodeContent' {} a -> s {zipFileContent = a} :: CodeContent) Prelude.. Lens.mapping Data._Base64
+
+instance Prelude.Hashable CodeContent where
+  hashWithSalt _salt CodeContent' {..} =
+    _salt
+      `Prelude.hashWithSalt` s3ContentLocation
+      `Prelude.hashWithSalt` textContent
+      `Prelude.hashWithSalt` zipFileContent
+
+instance Prelude.NFData CodeContent where
+  rnf CodeContent' {..} =
+    Prelude.rnf s3ContentLocation
+      `Prelude.seq` Prelude.rnf textContent
+      `Prelude.seq` Prelude.rnf zipFileContent
+
+instance Data.ToJSON CodeContent where
+  toJSON CodeContent' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("S3ContentLocation" Data..=)
+              Prelude.<$> s3ContentLocation,
+            ("TextContent" Data..=) Prelude.<$> textContent,
+            ("ZipFileContent" Data..=)
+              Prelude.<$> zipFileContent
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CodeContentDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CodeContentDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CodeContentDescription.hs
@@ -0,0 +1,117 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.CodeContentDescription
+-- 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.KinesisAnalyticsV2.Types.CodeContentDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.S3ApplicationCodeLocationDescription
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes details about the code of a Kinesis Data Analytics
+-- application.
+--
+-- /See:/ 'newCodeContentDescription' smart constructor.
+data CodeContentDescription = CodeContentDescription'
+  { -- | The checksum that can be used to validate zip-format code.
+    codeMD5 :: Prelude.Maybe Prelude.Text,
+    -- | The size in bytes of the application code. Can be used to validate
+    -- zip-format code.
+    codeSize :: Prelude.Maybe Prelude.Natural,
+    -- | The S3 bucket Amazon Resource Name (ARN), file key, and object version
+    -- of the application code stored in Amazon S3.
+    s3ApplicationCodeLocationDescription :: Prelude.Maybe S3ApplicationCodeLocationDescription,
+    -- | The text-format code
+    textContent :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CodeContentDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'codeMD5', 'codeContentDescription_codeMD5' - The checksum that can be used to validate zip-format code.
+--
+-- 'codeSize', 'codeContentDescription_codeSize' - The size in bytes of the application code. Can be used to validate
+-- zip-format code.
+--
+-- 's3ApplicationCodeLocationDescription', 'codeContentDescription_s3ApplicationCodeLocationDescription' - The S3 bucket Amazon Resource Name (ARN), file key, and object version
+-- of the application code stored in Amazon S3.
+--
+-- 'textContent', 'codeContentDescription_textContent' - The text-format code
+newCodeContentDescription ::
+  CodeContentDescription
+newCodeContentDescription =
+  CodeContentDescription'
+    { codeMD5 = Prelude.Nothing,
+      codeSize = Prelude.Nothing,
+      s3ApplicationCodeLocationDescription =
+        Prelude.Nothing,
+      textContent = Prelude.Nothing
+    }
+
+-- | The checksum that can be used to validate zip-format code.
+codeContentDescription_codeMD5 :: Lens.Lens' CodeContentDescription (Prelude.Maybe Prelude.Text)
+codeContentDescription_codeMD5 = Lens.lens (\CodeContentDescription' {codeMD5} -> codeMD5) (\s@CodeContentDescription' {} a -> s {codeMD5 = a} :: CodeContentDescription)
+
+-- | The size in bytes of the application code. Can be used to validate
+-- zip-format code.
+codeContentDescription_codeSize :: Lens.Lens' CodeContentDescription (Prelude.Maybe Prelude.Natural)
+codeContentDescription_codeSize = Lens.lens (\CodeContentDescription' {codeSize} -> codeSize) (\s@CodeContentDescription' {} a -> s {codeSize = a} :: CodeContentDescription)
+
+-- | The S3 bucket Amazon Resource Name (ARN), file key, and object version
+-- of the application code stored in Amazon S3.
+codeContentDescription_s3ApplicationCodeLocationDescription :: Lens.Lens' CodeContentDescription (Prelude.Maybe S3ApplicationCodeLocationDescription)
+codeContentDescription_s3ApplicationCodeLocationDescription = Lens.lens (\CodeContentDescription' {s3ApplicationCodeLocationDescription} -> s3ApplicationCodeLocationDescription) (\s@CodeContentDescription' {} a -> s {s3ApplicationCodeLocationDescription = a} :: CodeContentDescription)
+
+-- | The text-format code
+codeContentDescription_textContent :: Lens.Lens' CodeContentDescription (Prelude.Maybe Prelude.Text)
+codeContentDescription_textContent = Lens.lens (\CodeContentDescription' {textContent} -> textContent) (\s@CodeContentDescription' {} a -> s {textContent = a} :: CodeContentDescription)
+
+instance Data.FromJSON CodeContentDescription where
+  parseJSON =
+    Data.withObject
+      "CodeContentDescription"
+      ( \x ->
+          CodeContentDescription'
+            Prelude.<$> (x Data..:? "CodeMD5")
+            Prelude.<*> (x Data..:? "CodeSize")
+            Prelude.<*> (x Data..:? "S3ApplicationCodeLocationDescription")
+            Prelude.<*> (x Data..:? "TextContent")
+      )
+
+instance Prelude.Hashable CodeContentDescription where
+  hashWithSalt _salt CodeContentDescription' {..} =
+    _salt
+      `Prelude.hashWithSalt` codeMD5
+      `Prelude.hashWithSalt` codeSize
+      `Prelude.hashWithSalt` s3ApplicationCodeLocationDescription
+      `Prelude.hashWithSalt` textContent
+
+instance Prelude.NFData CodeContentDescription where
+  rnf CodeContentDescription' {..} =
+    Prelude.rnf codeMD5
+      `Prelude.seq` Prelude.rnf codeSize
+      `Prelude.seq` Prelude.rnf s3ApplicationCodeLocationDescription
+      `Prelude.seq` Prelude.rnf textContent
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CodeContentType.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CodeContentType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CodeContentType.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.KinesisAnalyticsV2.Types.CodeContentType
+-- 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.KinesisAnalyticsV2.Types.CodeContentType
+  ( CodeContentType
+      ( ..,
+        CodeContentType_PLAINTEXT,
+        CodeContentType_ZIPFILE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype CodeContentType = CodeContentType'
+  { fromCodeContentType ::
+      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 CodeContentType_PLAINTEXT :: CodeContentType
+pattern CodeContentType_PLAINTEXT = CodeContentType' "PLAINTEXT"
+
+pattern CodeContentType_ZIPFILE :: CodeContentType
+pattern CodeContentType_ZIPFILE = CodeContentType' "ZIPFILE"
+
+{-# COMPLETE
+  CodeContentType_PLAINTEXT,
+  CodeContentType_ZIPFILE,
+  CodeContentType'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CodeContentUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CodeContentUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CodeContentUpdate.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.KinesisAnalyticsV2.Types.CodeContentUpdate
+-- 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.KinesisAnalyticsV2.Types.CodeContentUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentLocationUpdate
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes an update to the code of an application. Not supported for
+-- Apache Zeppelin.
+--
+-- /See:/ 'newCodeContentUpdate' smart constructor.
+data CodeContentUpdate = CodeContentUpdate'
+  { -- | Describes an update to the location of code for an application.
+    s3ContentLocationUpdate :: Prelude.Maybe S3ContentLocationUpdate,
+    -- | Describes an update to the text code for an application.
+    textContentUpdate :: Prelude.Maybe Prelude.Text,
+    -- | Describes an update to the zipped code for an application.
+    zipFileContentUpdate :: Prelude.Maybe Data.Base64
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CodeContentUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 's3ContentLocationUpdate', 'codeContentUpdate_s3ContentLocationUpdate' - Describes an update to the location of code for an application.
+--
+-- 'textContentUpdate', 'codeContentUpdate_textContentUpdate' - Describes an update to the text code for an application.
+--
+-- 'zipFileContentUpdate', 'codeContentUpdate_zipFileContentUpdate' - Describes an update to the zipped code for an application.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+newCodeContentUpdate ::
+  CodeContentUpdate
+newCodeContentUpdate =
+  CodeContentUpdate'
+    { s3ContentLocationUpdate =
+        Prelude.Nothing,
+      textContentUpdate = Prelude.Nothing,
+      zipFileContentUpdate = Prelude.Nothing
+    }
+
+-- | Describes an update to the location of code for an application.
+codeContentUpdate_s3ContentLocationUpdate :: Lens.Lens' CodeContentUpdate (Prelude.Maybe S3ContentLocationUpdate)
+codeContentUpdate_s3ContentLocationUpdate = Lens.lens (\CodeContentUpdate' {s3ContentLocationUpdate} -> s3ContentLocationUpdate) (\s@CodeContentUpdate' {} a -> s {s3ContentLocationUpdate = a} :: CodeContentUpdate)
+
+-- | Describes an update to the text code for an application.
+codeContentUpdate_textContentUpdate :: Lens.Lens' CodeContentUpdate (Prelude.Maybe Prelude.Text)
+codeContentUpdate_textContentUpdate = Lens.lens (\CodeContentUpdate' {textContentUpdate} -> textContentUpdate) (\s@CodeContentUpdate' {} a -> s {textContentUpdate = a} :: CodeContentUpdate)
+
+-- | Describes an update to the zipped code for an application.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+codeContentUpdate_zipFileContentUpdate :: Lens.Lens' CodeContentUpdate (Prelude.Maybe Prelude.ByteString)
+codeContentUpdate_zipFileContentUpdate = Lens.lens (\CodeContentUpdate' {zipFileContentUpdate} -> zipFileContentUpdate) (\s@CodeContentUpdate' {} a -> s {zipFileContentUpdate = a} :: CodeContentUpdate) Prelude.. Lens.mapping Data._Base64
+
+instance Prelude.Hashable CodeContentUpdate where
+  hashWithSalt _salt CodeContentUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` s3ContentLocationUpdate
+      `Prelude.hashWithSalt` textContentUpdate
+      `Prelude.hashWithSalt` zipFileContentUpdate
+
+instance Prelude.NFData CodeContentUpdate where
+  rnf CodeContentUpdate' {..} =
+    Prelude.rnf s3ContentLocationUpdate
+      `Prelude.seq` Prelude.rnf textContentUpdate
+      `Prelude.seq` Prelude.rnf zipFileContentUpdate
+
+instance Data.ToJSON CodeContentUpdate where
+  toJSON CodeContentUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("S3ContentLocationUpdate" Data..=)
+              Prelude.<$> s3ContentLocationUpdate,
+            ("TextContentUpdate" Data..=)
+              Prelude.<$> textContentUpdate,
+            ("ZipFileContentUpdate" Data..=)
+              Prelude.<$> zipFileContentUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ConfigurationType.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ConfigurationType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ConfigurationType.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.KinesisAnalyticsV2.Types.ConfigurationType
+-- 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.KinesisAnalyticsV2.Types.ConfigurationType
+  ( ConfigurationType
+      ( ..,
+        ConfigurationType_CUSTOM,
+        ConfigurationType_DEFAULT
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ConfigurationType = ConfigurationType'
+  { fromConfigurationType ::
+      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 ConfigurationType_CUSTOM :: ConfigurationType
+pattern ConfigurationType_CUSTOM = ConfigurationType' "CUSTOM"
+
+pattern ConfigurationType_DEFAULT :: ConfigurationType
+pattern ConfigurationType_DEFAULT = ConfigurationType' "DEFAULT"
+
+{-# COMPLETE
+  ConfigurationType_CUSTOM,
+  ConfigurationType_DEFAULT,
+  ConfigurationType'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CustomArtifactConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CustomArtifactConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CustomArtifactConfiguration.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.KinesisAnalyticsV2.Types.CustomArtifactConfiguration
+-- 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.KinesisAnalyticsV2.Types.CustomArtifactConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ArtifactType
+import Amazonka.KinesisAnalyticsV2.Types.MavenReference
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentLocation
+import qualified Amazonka.Prelude as Prelude
+
+-- | Specifies dependency JARs, as well as JAR files that contain
+-- user-defined functions (UDF).
+--
+-- /See:/ 'newCustomArtifactConfiguration' smart constructor.
+data CustomArtifactConfiguration = CustomArtifactConfiguration'
+  { -- | The parameters required to fully specify a Maven reference.
+    mavenReference :: Prelude.Maybe MavenReference,
+    s3ContentLocation :: Prelude.Maybe S3ContentLocation,
+    -- | @UDF@ stands for user-defined functions. This type of artifact must be
+    -- in an S3 bucket. A @DEPENDENCY_JAR@ can be in either Maven or an S3
+    -- bucket.
+    artifactType :: ArtifactType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CustomArtifactConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'mavenReference', 'customArtifactConfiguration_mavenReference' - The parameters required to fully specify a Maven reference.
+--
+-- 's3ContentLocation', 'customArtifactConfiguration_s3ContentLocation' - Undocumented member.
+--
+-- 'artifactType', 'customArtifactConfiguration_artifactType' - @UDF@ stands for user-defined functions. This type of artifact must be
+-- in an S3 bucket. A @DEPENDENCY_JAR@ can be in either Maven or an S3
+-- bucket.
+newCustomArtifactConfiguration ::
+  -- | 'artifactType'
+  ArtifactType ->
+  CustomArtifactConfiguration
+newCustomArtifactConfiguration pArtifactType_ =
+  CustomArtifactConfiguration'
+    { mavenReference =
+        Prelude.Nothing,
+      s3ContentLocation = Prelude.Nothing,
+      artifactType = pArtifactType_
+    }
+
+-- | The parameters required to fully specify a Maven reference.
+customArtifactConfiguration_mavenReference :: Lens.Lens' CustomArtifactConfiguration (Prelude.Maybe MavenReference)
+customArtifactConfiguration_mavenReference = Lens.lens (\CustomArtifactConfiguration' {mavenReference} -> mavenReference) (\s@CustomArtifactConfiguration' {} a -> s {mavenReference = a} :: CustomArtifactConfiguration)
+
+-- | Undocumented member.
+customArtifactConfiguration_s3ContentLocation :: Lens.Lens' CustomArtifactConfiguration (Prelude.Maybe S3ContentLocation)
+customArtifactConfiguration_s3ContentLocation = Lens.lens (\CustomArtifactConfiguration' {s3ContentLocation} -> s3ContentLocation) (\s@CustomArtifactConfiguration' {} a -> s {s3ContentLocation = a} :: CustomArtifactConfiguration)
+
+-- | @UDF@ stands for user-defined functions. This type of artifact must be
+-- in an S3 bucket. A @DEPENDENCY_JAR@ can be in either Maven or an S3
+-- bucket.
+customArtifactConfiguration_artifactType :: Lens.Lens' CustomArtifactConfiguration ArtifactType
+customArtifactConfiguration_artifactType = Lens.lens (\CustomArtifactConfiguration' {artifactType} -> artifactType) (\s@CustomArtifactConfiguration' {} a -> s {artifactType = a} :: CustomArtifactConfiguration)
+
+instance Prelude.Hashable CustomArtifactConfiguration where
+  hashWithSalt _salt CustomArtifactConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` mavenReference
+      `Prelude.hashWithSalt` s3ContentLocation
+      `Prelude.hashWithSalt` artifactType
+
+instance Prelude.NFData CustomArtifactConfiguration where
+  rnf CustomArtifactConfiguration' {..} =
+    Prelude.rnf mavenReference
+      `Prelude.seq` Prelude.rnf s3ContentLocation
+      `Prelude.seq` Prelude.rnf artifactType
+
+instance Data.ToJSON CustomArtifactConfiguration where
+  toJSON CustomArtifactConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("MavenReference" Data..=)
+              Prelude.<$> mavenReference,
+            ("S3ContentLocation" Data..=)
+              Prelude.<$> s3ContentLocation,
+            Prelude.Just ("ArtifactType" Data..= artifactType)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/CustomArtifactConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/CustomArtifactConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/CustomArtifactConfigurationDescription.hs
@@ -0,0 +1,118 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.CustomArtifactConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.CustomArtifactConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ArtifactType
+import Amazonka.KinesisAnalyticsV2.Types.MavenReference
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentLocation
+import qualified Amazonka.Prelude as Prelude
+
+-- | Specifies a dependency JAR or a JAR of user-defined functions.
+--
+-- /See:/ 'newCustomArtifactConfigurationDescription' smart constructor.
+data CustomArtifactConfigurationDescription = CustomArtifactConfigurationDescription'
+  { -- | @UDF@ stands for user-defined functions. This type of artifact must be
+    -- in an S3 bucket. A @DEPENDENCY_JAR@ can be in either Maven or an S3
+    -- bucket.
+    artifactType :: Prelude.Maybe ArtifactType,
+    -- | The parameters that are required to specify a Maven dependency.
+    mavenReferenceDescription :: Prelude.Maybe MavenReference,
+    s3ContentLocationDescription :: Prelude.Maybe S3ContentLocation
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CustomArtifactConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'artifactType', 'customArtifactConfigurationDescription_artifactType' - @UDF@ stands for user-defined functions. This type of artifact must be
+-- in an S3 bucket. A @DEPENDENCY_JAR@ can be in either Maven or an S3
+-- bucket.
+--
+-- 'mavenReferenceDescription', 'customArtifactConfigurationDescription_mavenReferenceDescription' - The parameters that are required to specify a Maven dependency.
+--
+-- 's3ContentLocationDescription', 'customArtifactConfigurationDescription_s3ContentLocationDescription' - Undocumented member.
+newCustomArtifactConfigurationDescription ::
+  CustomArtifactConfigurationDescription
+newCustomArtifactConfigurationDescription =
+  CustomArtifactConfigurationDescription'
+    { artifactType =
+        Prelude.Nothing,
+      mavenReferenceDescription =
+        Prelude.Nothing,
+      s3ContentLocationDescription =
+        Prelude.Nothing
+    }
+
+-- | @UDF@ stands for user-defined functions. This type of artifact must be
+-- in an S3 bucket. A @DEPENDENCY_JAR@ can be in either Maven or an S3
+-- bucket.
+customArtifactConfigurationDescription_artifactType :: Lens.Lens' CustomArtifactConfigurationDescription (Prelude.Maybe ArtifactType)
+customArtifactConfigurationDescription_artifactType = Lens.lens (\CustomArtifactConfigurationDescription' {artifactType} -> artifactType) (\s@CustomArtifactConfigurationDescription' {} a -> s {artifactType = a} :: CustomArtifactConfigurationDescription)
+
+-- | The parameters that are required to specify a Maven dependency.
+customArtifactConfigurationDescription_mavenReferenceDescription :: Lens.Lens' CustomArtifactConfigurationDescription (Prelude.Maybe MavenReference)
+customArtifactConfigurationDescription_mavenReferenceDescription = Lens.lens (\CustomArtifactConfigurationDescription' {mavenReferenceDescription} -> mavenReferenceDescription) (\s@CustomArtifactConfigurationDescription' {} a -> s {mavenReferenceDescription = a} :: CustomArtifactConfigurationDescription)
+
+-- | Undocumented member.
+customArtifactConfigurationDescription_s3ContentLocationDescription :: Lens.Lens' CustomArtifactConfigurationDescription (Prelude.Maybe S3ContentLocation)
+customArtifactConfigurationDescription_s3ContentLocationDescription = Lens.lens (\CustomArtifactConfigurationDescription' {s3ContentLocationDescription} -> s3ContentLocationDescription) (\s@CustomArtifactConfigurationDescription' {} a -> s {s3ContentLocationDescription = a} :: CustomArtifactConfigurationDescription)
+
+instance
+  Data.FromJSON
+    CustomArtifactConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "CustomArtifactConfigurationDescription"
+      ( \x ->
+          CustomArtifactConfigurationDescription'
+            Prelude.<$> (x Data..:? "ArtifactType")
+            Prelude.<*> (x Data..:? "MavenReferenceDescription")
+            Prelude.<*> (x Data..:? "S3ContentLocationDescription")
+      )
+
+instance
+  Prelude.Hashable
+    CustomArtifactConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    CustomArtifactConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` artifactType
+        `Prelude.hashWithSalt` mavenReferenceDescription
+        `Prelude.hashWithSalt` s3ContentLocationDescription
+
+instance
+  Prelude.NFData
+    CustomArtifactConfigurationDescription
+  where
+  rnf CustomArtifactConfigurationDescription' {..} =
+    Prelude.rnf artifactType
+      `Prelude.seq` Prelude.rnf mavenReferenceDescription
+      `Prelude.seq` Prelude.rnf s3ContentLocationDescription
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/DeployAsApplicationConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/DeployAsApplicationConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/DeployAsApplicationConfiguration.hs
@@ -0,0 +1,94 @@
+{-# 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.KinesisAnalyticsV2.Types.DeployAsApplicationConfiguration
+-- 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.KinesisAnalyticsV2.Types.DeployAsApplicationConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocation
+import qualified Amazonka.Prelude as Prelude
+
+-- | The information required to deploy a Kinesis Data Analytics Studio
+-- notebook as an application with durable state.
+--
+-- /See:/ 'newDeployAsApplicationConfiguration' smart constructor.
+data DeployAsApplicationConfiguration = DeployAsApplicationConfiguration'
+  { -- | The description of an Amazon S3 object that contains the Amazon Data
+    -- Analytics application, including the Amazon Resource Name (ARN) of the
+    -- S3 bucket, the name of the Amazon S3 object that contains the data, and
+    -- the version number of the Amazon S3 object that contains the data.
+    s3ContentLocation :: S3ContentBaseLocation
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeployAsApplicationConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 's3ContentLocation', 'deployAsApplicationConfiguration_s3ContentLocation' - The description of an Amazon S3 object that contains the Amazon Data
+-- Analytics application, including the Amazon Resource Name (ARN) of the
+-- S3 bucket, the name of the Amazon S3 object that contains the data, and
+-- the version number of the Amazon S3 object that contains the data.
+newDeployAsApplicationConfiguration ::
+  -- | 's3ContentLocation'
+  S3ContentBaseLocation ->
+  DeployAsApplicationConfiguration
+newDeployAsApplicationConfiguration
+  pS3ContentLocation_ =
+    DeployAsApplicationConfiguration'
+      { s3ContentLocation =
+          pS3ContentLocation_
+      }
+
+-- | The description of an Amazon S3 object that contains the Amazon Data
+-- Analytics application, including the Amazon Resource Name (ARN) of the
+-- S3 bucket, the name of the Amazon S3 object that contains the data, and
+-- the version number of the Amazon S3 object that contains the data.
+deployAsApplicationConfiguration_s3ContentLocation :: Lens.Lens' DeployAsApplicationConfiguration S3ContentBaseLocation
+deployAsApplicationConfiguration_s3ContentLocation = Lens.lens (\DeployAsApplicationConfiguration' {s3ContentLocation} -> s3ContentLocation) (\s@DeployAsApplicationConfiguration' {} a -> s {s3ContentLocation = a} :: DeployAsApplicationConfiguration)
+
+instance
+  Prelude.Hashable
+    DeployAsApplicationConfiguration
+  where
+  hashWithSalt
+    _salt
+    DeployAsApplicationConfiguration' {..} =
+      _salt `Prelude.hashWithSalt` s3ContentLocation
+
+instance
+  Prelude.NFData
+    DeployAsApplicationConfiguration
+  where
+  rnf DeployAsApplicationConfiguration' {..} =
+    Prelude.rnf s3ContentLocation
+
+instance Data.ToJSON DeployAsApplicationConfiguration where
+  toJSON DeployAsApplicationConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("S3ContentLocation" Data..= s3ContentLocation)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/DeployAsApplicationConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/DeployAsApplicationConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/DeployAsApplicationConfigurationDescription.hs
@@ -0,0 +1,92 @@
+{-# 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.KinesisAnalyticsV2.Types.DeployAsApplicationConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.DeployAsApplicationConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocationDescription
+import qualified Amazonka.Prelude as Prelude
+
+-- | The configuration information required to deploy an Amazon Data
+-- Analytics Studio notebook as an application with durable state.
+--
+-- /See:/ 'newDeployAsApplicationConfigurationDescription' smart constructor.
+data DeployAsApplicationConfigurationDescription = DeployAsApplicationConfigurationDescription'
+  { -- | The location that holds the data required to specify an Amazon Data
+    -- Analytics application.
+    s3ContentLocationDescription :: S3ContentBaseLocationDescription
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeployAsApplicationConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 's3ContentLocationDescription', 'deployAsApplicationConfigurationDescription_s3ContentLocationDescription' - The location that holds the data required to specify an Amazon Data
+-- Analytics application.
+newDeployAsApplicationConfigurationDescription ::
+  -- | 's3ContentLocationDescription'
+  S3ContentBaseLocationDescription ->
+  DeployAsApplicationConfigurationDescription
+newDeployAsApplicationConfigurationDescription
+  pS3ContentLocationDescription_ =
+    DeployAsApplicationConfigurationDescription'
+      { s3ContentLocationDescription =
+          pS3ContentLocationDescription_
+      }
+
+-- | The location that holds the data required to specify an Amazon Data
+-- Analytics application.
+deployAsApplicationConfigurationDescription_s3ContentLocationDescription :: Lens.Lens' DeployAsApplicationConfigurationDescription S3ContentBaseLocationDescription
+deployAsApplicationConfigurationDescription_s3ContentLocationDescription = Lens.lens (\DeployAsApplicationConfigurationDescription' {s3ContentLocationDescription} -> s3ContentLocationDescription) (\s@DeployAsApplicationConfigurationDescription' {} a -> s {s3ContentLocationDescription = a} :: DeployAsApplicationConfigurationDescription)
+
+instance
+  Data.FromJSON
+    DeployAsApplicationConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "DeployAsApplicationConfigurationDescription"
+      ( \x ->
+          DeployAsApplicationConfigurationDescription'
+            Prelude.<$> (x Data..: "S3ContentLocationDescription")
+      )
+
+instance
+  Prelude.Hashable
+    DeployAsApplicationConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    DeployAsApplicationConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` s3ContentLocationDescription
+
+instance
+  Prelude.NFData
+    DeployAsApplicationConfigurationDescription
+  where
+  rnf DeployAsApplicationConfigurationDescription' {..} =
+    Prelude.rnf s3ContentLocationDescription
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/DeployAsApplicationConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/DeployAsApplicationConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/DeployAsApplicationConfigurationUpdate.hs
@@ -0,0 +1,89 @@
+{-# 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.KinesisAnalyticsV2.Types.DeployAsApplicationConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.DeployAsApplicationConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocationUpdate
+import qualified Amazonka.Prelude as Prelude
+
+-- | Updates to the configuration information required to deploy an Amazon
+-- Data Analytics Studio notebook as an application with durable state.
+--
+-- /See:/ 'newDeployAsApplicationConfigurationUpdate' smart constructor.
+data DeployAsApplicationConfigurationUpdate = DeployAsApplicationConfigurationUpdate'
+  { -- | Updates to the location that holds the data required to specify an
+    -- Amazon Data Analytics application.
+    s3ContentLocationUpdate :: Prelude.Maybe S3ContentBaseLocationUpdate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeployAsApplicationConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 's3ContentLocationUpdate', 'deployAsApplicationConfigurationUpdate_s3ContentLocationUpdate' - Updates to the location that holds the data required to specify an
+-- Amazon Data Analytics application.
+newDeployAsApplicationConfigurationUpdate ::
+  DeployAsApplicationConfigurationUpdate
+newDeployAsApplicationConfigurationUpdate =
+  DeployAsApplicationConfigurationUpdate'
+    { s3ContentLocationUpdate =
+        Prelude.Nothing
+    }
+
+-- | Updates to the location that holds the data required to specify an
+-- Amazon Data Analytics application.
+deployAsApplicationConfigurationUpdate_s3ContentLocationUpdate :: Lens.Lens' DeployAsApplicationConfigurationUpdate (Prelude.Maybe S3ContentBaseLocationUpdate)
+deployAsApplicationConfigurationUpdate_s3ContentLocationUpdate = Lens.lens (\DeployAsApplicationConfigurationUpdate' {s3ContentLocationUpdate} -> s3ContentLocationUpdate) (\s@DeployAsApplicationConfigurationUpdate' {} a -> s {s3ContentLocationUpdate = a} :: DeployAsApplicationConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    DeployAsApplicationConfigurationUpdate
+  where
+  hashWithSalt
+    _salt
+    DeployAsApplicationConfigurationUpdate' {..} =
+      _salt
+        `Prelude.hashWithSalt` s3ContentLocationUpdate
+
+instance
+  Prelude.NFData
+    DeployAsApplicationConfigurationUpdate
+  where
+  rnf DeployAsApplicationConfigurationUpdate' {..} =
+    Prelude.rnf s3ContentLocationUpdate
+
+instance
+  Data.ToJSON
+    DeployAsApplicationConfigurationUpdate
+  where
+  toJSON DeployAsApplicationConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("S3ContentLocationUpdate" Data..=)
+              Prelude.<$> s3ContentLocationUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/DestinationSchema.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/DestinationSchema.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/DestinationSchema.hs
@@ -0,0 +1,85 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.DestinationSchema
+-- 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.KinesisAnalyticsV2.Types.DestinationSchema where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.RecordFormatType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the data format when records are written to the destination in
+-- a SQL-based Kinesis Data Analytics application.
+--
+-- /See:/ 'newDestinationSchema' smart constructor.
+data DestinationSchema = DestinationSchema'
+  { -- | Specifies the format of the records on the output stream.
+    recordFormatType :: RecordFormatType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DestinationSchema' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'recordFormatType', 'destinationSchema_recordFormatType' - Specifies the format of the records on the output stream.
+newDestinationSchema ::
+  -- | 'recordFormatType'
+  RecordFormatType ->
+  DestinationSchema
+newDestinationSchema pRecordFormatType_ =
+  DestinationSchema'
+    { recordFormatType =
+        pRecordFormatType_
+    }
+
+-- | Specifies the format of the records on the output stream.
+destinationSchema_recordFormatType :: Lens.Lens' DestinationSchema RecordFormatType
+destinationSchema_recordFormatType = Lens.lens (\DestinationSchema' {recordFormatType} -> recordFormatType) (\s@DestinationSchema' {} a -> s {recordFormatType = a} :: DestinationSchema)
+
+instance Data.FromJSON DestinationSchema where
+  parseJSON =
+    Data.withObject
+      "DestinationSchema"
+      ( \x ->
+          DestinationSchema'
+            Prelude.<$> (x Data..: "RecordFormatType")
+      )
+
+instance Prelude.Hashable DestinationSchema where
+  hashWithSalt _salt DestinationSchema' {..} =
+    _salt `Prelude.hashWithSalt` recordFormatType
+
+instance Prelude.NFData DestinationSchema where
+  rnf DestinationSchema' {..} =
+    Prelude.rnf recordFormatType
+
+instance Data.ToJSON DestinationSchema where
+  toJSON DestinationSchema' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("RecordFormatType" Data..= recordFormatType)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/EnvironmentProperties.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/EnvironmentProperties.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/EnvironmentProperties.hs
@@ -0,0 +1,74 @@
+{-# 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.KinesisAnalyticsV2.Types.EnvironmentProperties
+-- 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.KinesisAnalyticsV2.Types.EnvironmentProperties where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.PropertyGroup
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes execution properties for a Flink-based Kinesis Data Analytics
+-- application.
+--
+-- /See:/ 'newEnvironmentProperties' smart constructor.
+data EnvironmentProperties = EnvironmentProperties'
+  { -- | Describes the execution property groups.
+    propertyGroups :: [PropertyGroup]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'EnvironmentProperties' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'propertyGroups', 'environmentProperties_propertyGroups' - Describes the execution property groups.
+newEnvironmentProperties ::
+  EnvironmentProperties
+newEnvironmentProperties =
+  EnvironmentProperties'
+    { propertyGroups =
+        Prelude.mempty
+    }
+
+-- | Describes the execution property groups.
+environmentProperties_propertyGroups :: Lens.Lens' EnvironmentProperties [PropertyGroup]
+environmentProperties_propertyGroups = Lens.lens (\EnvironmentProperties' {propertyGroups} -> propertyGroups) (\s@EnvironmentProperties' {} a -> s {propertyGroups = a} :: EnvironmentProperties) Prelude.. Lens.coerced
+
+instance Prelude.Hashable EnvironmentProperties where
+  hashWithSalt _salt EnvironmentProperties' {..} =
+    _salt `Prelude.hashWithSalt` propertyGroups
+
+instance Prelude.NFData EnvironmentProperties where
+  rnf EnvironmentProperties' {..} =
+    Prelude.rnf propertyGroups
+
+instance Data.ToJSON EnvironmentProperties where
+  toJSON EnvironmentProperties' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("PropertyGroups" Data..= propertyGroups)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/EnvironmentPropertyDescriptions.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/EnvironmentPropertyDescriptions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/EnvironmentPropertyDescriptions.hs
@@ -0,0 +1,88 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.EnvironmentPropertyDescriptions
+-- 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.KinesisAnalyticsV2.Types.EnvironmentPropertyDescriptions where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.PropertyGroup
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the execution properties for an Apache Flink runtime.
+--
+-- /See:/ 'newEnvironmentPropertyDescriptions' smart constructor.
+data EnvironmentPropertyDescriptions = EnvironmentPropertyDescriptions'
+  { -- | Describes the execution property groups.
+    propertyGroupDescriptions :: Prelude.Maybe [PropertyGroup]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'EnvironmentPropertyDescriptions' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'propertyGroupDescriptions', 'environmentPropertyDescriptions_propertyGroupDescriptions' - Describes the execution property groups.
+newEnvironmentPropertyDescriptions ::
+  EnvironmentPropertyDescriptions
+newEnvironmentPropertyDescriptions =
+  EnvironmentPropertyDescriptions'
+    { propertyGroupDescriptions =
+        Prelude.Nothing
+    }
+
+-- | Describes the execution property groups.
+environmentPropertyDescriptions_propertyGroupDescriptions :: Lens.Lens' EnvironmentPropertyDescriptions (Prelude.Maybe [PropertyGroup])
+environmentPropertyDescriptions_propertyGroupDescriptions = Lens.lens (\EnvironmentPropertyDescriptions' {propertyGroupDescriptions} -> propertyGroupDescriptions) (\s@EnvironmentPropertyDescriptions' {} a -> s {propertyGroupDescriptions = a} :: EnvironmentPropertyDescriptions) Prelude.. Lens.mapping Lens.coerced
+
+instance
+  Data.FromJSON
+    EnvironmentPropertyDescriptions
+  where
+  parseJSON =
+    Data.withObject
+      "EnvironmentPropertyDescriptions"
+      ( \x ->
+          EnvironmentPropertyDescriptions'
+            Prelude.<$> ( x
+                            Data..:? "PropertyGroupDescriptions"
+                            Data..!= Prelude.mempty
+                        )
+      )
+
+instance
+  Prelude.Hashable
+    EnvironmentPropertyDescriptions
+  where
+  hashWithSalt
+    _salt
+    EnvironmentPropertyDescriptions' {..} =
+      _salt
+        `Prelude.hashWithSalt` propertyGroupDescriptions
+
+instance
+  Prelude.NFData
+    EnvironmentPropertyDescriptions
+  where
+  rnf EnvironmentPropertyDescriptions' {..} =
+    Prelude.rnf propertyGroupDescriptions
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/EnvironmentPropertyUpdates.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/EnvironmentPropertyUpdates.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/EnvironmentPropertyUpdates.hs
@@ -0,0 +1,74 @@
+{-# 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.KinesisAnalyticsV2.Types.EnvironmentPropertyUpdates
+-- 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.KinesisAnalyticsV2.Types.EnvironmentPropertyUpdates where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.PropertyGroup
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes updates to the execution property groups for a Flink-based
+-- Kinesis Data Analytics application or a Studio notebook.
+--
+-- /See:/ 'newEnvironmentPropertyUpdates' smart constructor.
+data EnvironmentPropertyUpdates = EnvironmentPropertyUpdates'
+  { -- | Describes updates to the execution property groups.
+    propertyGroups :: [PropertyGroup]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'EnvironmentPropertyUpdates' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'propertyGroups', 'environmentPropertyUpdates_propertyGroups' - Describes updates to the execution property groups.
+newEnvironmentPropertyUpdates ::
+  EnvironmentPropertyUpdates
+newEnvironmentPropertyUpdates =
+  EnvironmentPropertyUpdates'
+    { propertyGroups =
+        Prelude.mempty
+    }
+
+-- | Describes updates to the execution property groups.
+environmentPropertyUpdates_propertyGroups :: Lens.Lens' EnvironmentPropertyUpdates [PropertyGroup]
+environmentPropertyUpdates_propertyGroups = Lens.lens (\EnvironmentPropertyUpdates' {propertyGroups} -> propertyGroups) (\s@EnvironmentPropertyUpdates' {} a -> s {propertyGroups = a} :: EnvironmentPropertyUpdates) Prelude.. Lens.coerced
+
+instance Prelude.Hashable EnvironmentPropertyUpdates where
+  hashWithSalt _salt EnvironmentPropertyUpdates' {..} =
+    _salt `Prelude.hashWithSalt` propertyGroups
+
+instance Prelude.NFData EnvironmentPropertyUpdates where
+  rnf EnvironmentPropertyUpdates' {..} =
+    Prelude.rnf propertyGroups
+
+instance Data.ToJSON EnvironmentPropertyUpdates where
+  toJSON EnvironmentPropertyUpdates' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("PropertyGroups" Data..= propertyGroups)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/FlinkApplicationConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/FlinkApplicationConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/FlinkApplicationConfiguration.hs
@@ -0,0 +1,127 @@
+{-# 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.KinesisAnalyticsV2.Types.FlinkApplicationConfiguration
+-- 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.KinesisAnalyticsV2.Types.FlinkApplicationConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.CheckpointConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.MonitoringConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ParallelismConfiguration
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes configuration parameters for a Flink-based Kinesis Data
+-- Analytics application or a Studio notebook.
+--
+-- /See:/ 'newFlinkApplicationConfiguration' smart constructor.
+data FlinkApplicationConfiguration = FlinkApplicationConfiguration'
+  { -- | Describes an application\'s checkpointing configuration. Checkpointing
+    -- is the process of persisting application state for fault tolerance. For
+    -- more information, see
+    -- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/concepts/programming-model.html#checkpoints-for-fault-tolerance Checkpoints for Fault Tolerance>
+    -- in the
+    -- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink Documentation>.
+    checkpointConfiguration :: Prelude.Maybe CheckpointConfiguration,
+    -- | Describes configuration parameters for Amazon CloudWatch logging for an
+    -- application.
+    monitoringConfiguration :: Prelude.Maybe MonitoringConfiguration,
+    -- | Describes parameters for how an application executes multiple tasks
+    -- simultaneously.
+    parallelismConfiguration :: Prelude.Maybe ParallelismConfiguration
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'FlinkApplicationConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'checkpointConfiguration', 'flinkApplicationConfiguration_checkpointConfiguration' - Describes an application\'s checkpointing configuration. Checkpointing
+-- is the process of persisting application state for fault tolerance. For
+-- more information, see
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/concepts/programming-model.html#checkpoints-for-fault-tolerance Checkpoints for Fault Tolerance>
+-- in the
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink Documentation>.
+--
+-- 'monitoringConfiguration', 'flinkApplicationConfiguration_monitoringConfiguration' - Describes configuration parameters for Amazon CloudWatch logging for an
+-- application.
+--
+-- 'parallelismConfiguration', 'flinkApplicationConfiguration_parallelismConfiguration' - Describes parameters for how an application executes multiple tasks
+-- simultaneously.
+newFlinkApplicationConfiguration ::
+  FlinkApplicationConfiguration
+newFlinkApplicationConfiguration =
+  FlinkApplicationConfiguration'
+    { checkpointConfiguration =
+        Prelude.Nothing,
+      monitoringConfiguration = Prelude.Nothing,
+      parallelismConfiguration = Prelude.Nothing
+    }
+
+-- | Describes an application\'s checkpointing configuration. Checkpointing
+-- is the process of persisting application state for fault tolerance. For
+-- more information, see
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/concepts/programming-model.html#checkpoints-for-fault-tolerance Checkpoints for Fault Tolerance>
+-- in the
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink Documentation>.
+flinkApplicationConfiguration_checkpointConfiguration :: Lens.Lens' FlinkApplicationConfiguration (Prelude.Maybe CheckpointConfiguration)
+flinkApplicationConfiguration_checkpointConfiguration = Lens.lens (\FlinkApplicationConfiguration' {checkpointConfiguration} -> checkpointConfiguration) (\s@FlinkApplicationConfiguration' {} a -> s {checkpointConfiguration = a} :: FlinkApplicationConfiguration)
+
+-- | Describes configuration parameters for Amazon CloudWatch logging for an
+-- application.
+flinkApplicationConfiguration_monitoringConfiguration :: Lens.Lens' FlinkApplicationConfiguration (Prelude.Maybe MonitoringConfiguration)
+flinkApplicationConfiguration_monitoringConfiguration = Lens.lens (\FlinkApplicationConfiguration' {monitoringConfiguration} -> monitoringConfiguration) (\s@FlinkApplicationConfiguration' {} a -> s {monitoringConfiguration = a} :: FlinkApplicationConfiguration)
+
+-- | Describes parameters for how an application executes multiple tasks
+-- simultaneously.
+flinkApplicationConfiguration_parallelismConfiguration :: Lens.Lens' FlinkApplicationConfiguration (Prelude.Maybe ParallelismConfiguration)
+flinkApplicationConfiguration_parallelismConfiguration = Lens.lens (\FlinkApplicationConfiguration' {parallelismConfiguration} -> parallelismConfiguration) (\s@FlinkApplicationConfiguration' {} a -> s {parallelismConfiguration = a} :: FlinkApplicationConfiguration)
+
+instance
+  Prelude.Hashable
+    FlinkApplicationConfiguration
+  where
+  hashWithSalt _salt FlinkApplicationConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` checkpointConfiguration
+      `Prelude.hashWithSalt` monitoringConfiguration
+      `Prelude.hashWithSalt` parallelismConfiguration
+
+instance Prelude.NFData FlinkApplicationConfiguration where
+  rnf FlinkApplicationConfiguration' {..} =
+    Prelude.rnf checkpointConfiguration
+      `Prelude.seq` Prelude.rnf monitoringConfiguration
+      `Prelude.seq` Prelude.rnf parallelismConfiguration
+
+instance Data.ToJSON FlinkApplicationConfiguration where
+  toJSON FlinkApplicationConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("CheckpointConfiguration" Data..=)
+              Prelude.<$> checkpointConfiguration,
+            ("MonitoringConfiguration" Data..=)
+              Prelude.<$> monitoringConfiguration,
+            ("ParallelismConfiguration" Data..=)
+              Prelude.<$> parallelismConfiguration
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/FlinkApplicationConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/FlinkApplicationConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/FlinkApplicationConfigurationDescription.hs
@@ -0,0 +1,157 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.FlinkApplicationConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.CheckpointConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.MonitoringConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ParallelismConfigurationDescription
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes configuration parameters for a Flink-based Kinesis Data
+-- Analytics application.
+--
+-- /See:/ 'newFlinkApplicationConfigurationDescription' smart constructor.
+data FlinkApplicationConfigurationDescription = FlinkApplicationConfigurationDescription'
+  { -- | Describes an application\'s checkpointing configuration. Checkpointing
+    -- is the process of persisting application state for fault tolerance.
+    checkpointConfigurationDescription :: Prelude.Maybe CheckpointConfigurationDescription,
+    -- | The job plan for an application. For more information about the job
+    -- plan, see
+    -- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/internals/job_scheduling.html Jobs and Scheduling>
+    -- in the
+    -- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink Documentation>.
+    -- To retrieve the job plan for the application, use the
+    -- DescribeApplicationRequest$IncludeAdditionalDetails parameter of the
+    -- DescribeApplication operation.
+    jobPlanDescription :: Prelude.Maybe Prelude.Text,
+    -- | Describes configuration parameters for Amazon CloudWatch logging for an
+    -- application.
+    monitoringConfigurationDescription :: Prelude.Maybe MonitoringConfigurationDescription,
+    -- | Describes parameters for how an application executes multiple tasks
+    -- simultaneously.
+    parallelismConfigurationDescription :: Prelude.Maybe ParallelismConfigurationDescription
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'FlinkApplicationConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'checkpointConfigurationDescription', 'flinkApplicationConfigurationDescription_checkpointConfigurationDescription' - Describes an application\'s checkpointing configuration. Checkpointing
+-- is the process of persisting application state for fault tolerance.
+--
+-- 'jobPlanDescription', 'flinkApplicationConfigurationDescription_jobPlanDescription' - The job plan for an application. For more information about the job
+-- plan, see
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/internals/job_scheduling.html Jobs and Scheduling>
+-- in the
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink Documentation>.
+-- To retrieve the job plan for the application, use the
+-- DescribeApplicationRequest$IncludeAdditionalDetails parameter of the
+-- DescribeApplication operation.
+--
+-- 'monitoringConfigurationDescription', 'flinkApplicationConfigurationDescription_monitoringConfigurationDescription' - Describes configuration parameters for Amazon CloudWatch logging for an
+-- application.
+--
+-- 'parallelismConfigurationDescription', 'flinkApplicationConfigurationDescription_parallelismConfigurationDescription' - Describes parameters for how an application executes multiple tasks
+-- simultaneously.
+newFlinkApplicationConfigurationDescription ::
+  FlinkApplicationConfigurationDescription
+newFlinkApplicationConfigurationDescription =
+  FlinkApplicationConfigurationDescription'
+    { checkpointConfigurationDescription =
+        Prelude.Nothing,
+      jobPlanDescription =
+        Prelude.Nothing,
+      monitoringConfigurationDescription =
+        Prelude.Nothing,
+      parallelismConfigurationDescription =
+        Prelude.Nothing
+    }
+
+-- | Describes an application\'s checkpointing configuration. Checkpointing
+-- is the process of persisting application state for fault tolerance.
+flinkApplicationConfigurationDescription_checkpointConfigurationDescription :: Lens.Lens' FlinkApplicationConfigurationDescription (Prelude.Maybe CheckpointConfigurationDescription)
+flinkApplicationConfigurationDescription_checkpointConfigurationDescription = Lens.lens (\FlinkApplicationConfigurationDescription' {checkpointConfigurationDescription} -> checkpointConfigurationDescription) (\s@FlinkApplicationConfigurationDescription' {} a -> s {checkpointConfigurationDescription = a} :: FlinkApplicationConfigurationDescription)
+
+-- | The job plan for an application. For more information about the job
+-- plan, see
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/internals/job_scheduling.html Jobs and Scheduling>
+-- in the
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink Documentation>.
+-- To retrieve the job plan for the application, use the
+-- DescribeApplicationRequest$IncludeAdditionalDetails parameter of the
+-- DescribeApplication operation.
+flinkApplicationConfigurationDescription_jobPlanDescription :: Lens.Lens' FlinkApplicationConfigurationDescription (Prelude.Maybe Prelude.Text)
+flinkApplicationConfigurationDescription_jobPlanDescription = Lens.lens (\FlinkApplicationConfigurationDescription' {jobPlanDescription} -> jobPlanDescription) (\s@FlinkApplicationConfigurationDescription' {} a -> s {jobPlanDescription = a} :: FlinkApplicationConfigurationDescription)
+
+-- | Describes configuration parameters for Amazon CloudWatch logging for an
+-- application.
+flinkApplicationConfigurationDescription_monitoringConfigurationDescription :: Lens.Lens' FlinkApplicationConfigurationDescription (Prelude.Maybe MonitoringConfigurationDescription)
+flinkApplicationConfigurationDescription_monitoringConfigurationDescription = Lens.lens (\FlinkApplicationConfigurationDescription' {monitoringConfigurationDescription} -> monitoringConfigurationDescription) (\s@FlinkApplicationConfigurationDescription' {} a -> s {monitoringConfigurationDescription = a} :: FlinkApplicationConfigurationDescription)
+
+-- | Describes parameters for how an application executes multiple tasks
+-- simultaneously.
+flinkApplicationConfigurationDescription_parallelismConfigurationDescription :: Lens.Lens' FlinkApplicationConfigurationDescription (Prelude.Maybe ParallelismConfigurationDescription)
+flinkApplicationConfigurationDescription_parallelismConfigurationDescription = Lens.lens (\FlinkApplicationConfigurationDescription' {parallelismConfigurationDescription} -> parallelismConfigurationDescription) (\s@FlinkApplicationConfigurationDescription' {} a -> s {parallelismConfigurationDescription = a} :: FlinkApplicationConfigurationDescription)
+
+instance
+  Data.FromJSON
+    FlinkApplicationConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "FlinkApplicationConfigurationDescription"
+      ( \x ->
+          FlinkApplicationConfigurationDescription'
+            Prelude.<$> (x Data..:? "CheckpointConfigurationDescription")
+            Prelude.<*> (x Data..:? "JobPlanDescription")
+            Prelude.<*> (x Data..:? "MonitoringConfigurationDescription")
+            Prelude.<*> (x Data..:? "ParallelismConfigurationDescription")
+      )
+
+instance
+  Prelude.Hashable
+    FlinkApplicationConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    FlinkApplicationConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` checkpointConfigurationDescription
+        `Prelude.hashWithSalt` jobPlanDescription
+        `Prelude.hashWithSalt` monitoringConfigurationDescription
+        `Prelude.hashWithSalt` parallelismConfigurationDescription
+
+instance
+  Prelude.NFData
+    FlinkApplicationConfigurationDescription
+  where
+  rnf FlinkApplicationConfigurationDescription' {..} =
+    Prelude.rnf checkpointConfigurationDescription
+      `Prelude.seq` Prelude.rnf jobPlanDescription
+      `Prelude.seq` Prelude.rnf monitoringConfigurationDescription
+      `Prelude.seq` Prelude.rnf parallelismConfigurationDescription
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/FlinkApplicationConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/FlinkApplicationConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/FlinkApplicationConfigurationUpdate.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.FlinkApplicationConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.FlinkApplicationConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.CheckpointConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.MonitoringConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ParallelismConfigurationUpdate
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes updates to the configuration parameters for a Flink-based
+-- Kinesis Data Analytics application.
+--
+-- /See:/ 'newFlinkApplicationConfigurationUpdate' smart constructor.
+data FlinkApplicationConfigurationUpdate = FlinkApplicationConfigurationUpdate'
+  { -- | Describes updates to an application\'s checkpointing configuration.
+    -- Checkpointing is the process of persisting application state for fault
+    -- tolerance.
+    checkpointConfigurationUpdate :: Prelude.Maybe CheckpointConfigurationUpdate,
+    -- | Describes updates to the configuration parameters for Amazon CloudWatch
+    -- logging for an application.
+    monitoringConfigurationUpdate :: Prelude.Maybe MonitoringConfigurationUpdate,
+    -- | Describes updates to the parameters for how an application executes
+    -- multiple tasks simultaneously.
+    parallelismConfigurationUpdate :: Prelude.Maybe ParallelismConfigurationUpdate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'FlinkApplicationConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'checkpointConfigurationUpdate', 'flinkApplicationConfigurationUpdate_checkpointConfigurationUpdate' - Describes updates to an application\'s checkpointing configuration.
+-- Checkpointing is the process of persisting application state for fault
+-- tolerance.
+--
+-- 'monitoringConfigurationUpdate', 'flinkApplicationConfigurationUpdate_monitoringConfigurationUpdate' - Describes updates to the configuration parameters for Amazon CloudWatch
+-- logging for an application.
+--
+-- 'parallelismConfigurationUpdate', 'flinkApplicationConfigurationUpdate_parallelismConfigurationUpdate' - Describes updates to the parameters for how an application executes
+-- multiple tasks simultaneously.
+newFlinkApplicationConfigurationUpdate ::
+  FlinkApplicationConfigurationUpdate
+newFlinkApplicationConfigurationUpdate =
+  FlinkApplicationConfigurationUpdate'
+    { checkpointConfigurationUpdate =
+        Prelude.Nothing,
+      monitoringConfigurationUpdate =
+        Prelude.Nothing,
+      parallelismConfigurationUpdate =
+        Prelude.Nothing
+    }
+
+-- | Describes updates to an application\'s checkpointing configuration.
+-- Checkpointing is the process of persisting application state for fault
+-- tolerance.
+flinkApplicationConfigurationUpdate_checkpointConfigurationUpdate :: Lens.Lens' FlinkApplicationConfigurationUpdate (Prelude.Maybe CheckpointConfigurationUpdate)
+flinkApplicationConfigurationUpdate_checkpointConfigurationUpdate = Lens.lens (\FlinkApplicationConfigurationUpdate' {checkpointConfigurationUpdate} -> checkpointConfigurationUpdate) (\s@FlinkApplicationConfigurationUpdate' {} a -> s {checkpointConfigurationUpdate = a} :: FlinkApplicationConfigurationUpdate)
+
+-- | Describes updates to the configuration parameters for Amazon CloudWatch
+-- logging for an application.
+flinkApplicationConfigurationUpdate_monitoringConfigurationUpdate :: Lens.Lens' FlinkApplicationConfigurationUpdate (Prelude.Maybe MonitoringConfigurationUpdate)
+flinkApplicationConfigurationUpdate_monitoringConfigurationUpdate = Lens.lens (\FlinkApplicationConfigurationUpdate' {monitoringConfigurationUpdate} -> monitoringConfigurationUpdate) (\s@FlinkApplicationConfigurationUpdate' {} a -> s {monitoringConfigurationUpdate = a} :: FlinkApplicationConfigurationUpdate)
+
+-- | Describes updates to the parameters for how an application executes
+-- multiple tasks simultaneously.
+flinkApplicationConfigurationUpdate_parallelismConfigurationUpdate :: Lens.Lens' FlinkApplicationConfigurationUpdate (Prelude.Maybe ParallelismConfigurationUpdate)
+flinkApplicationConfigurationUpdate_parallelismConfigurationUpdate = Lens.lens (\FlinkApplicationConfigurationUpdate' {parallelismConfigurationUpdate} -> parallelismConfigurationUpdate) (\s@FlinkApplicationConfigurationUpdate' {} a -> s {parallelismConfigurationUpdate = a} :: FlinkApplicationConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    FlinkApplicationConfigurationUpdate
+  where
+  hashWithSalt
+    _salt
+    FlinkApplicationConfigurationUpdate' {..} =
+      _salt
+        `Prelude.hashWithSalt` checkpointConfigurationUpdate
+        `Prelude.hashWithSalt` monitoringConfigurationUpdate
+        `Prelude.hashWithSalt` parallelismConfigurationUpdate
+
+instance
+  Prelude.NFData
+    FlinkApplicationConfigurationUpdate
+  where
+  rnf FlinkApplicationConfigurationUpdate' {..} =
+    Prelude.rnf checkpointConfigurationUpdate
+      `Prelude.seq` Prelude.rnf monitoringConfigurationUpdate
+      `Prelude.seq` Prelude.rnf parallelismConfigurationUpdate
+
+instance
+  Data.ToJSON
+    FlinkApplicationConfigurationUpdate
+  where
+  toJSON FlinkApplicationConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("CheckpointConfigurationUpdate" Data..=)
+              Prelude.<$> checkpointConfigurationUpdate,
+            ("MonitoringConfigurationUpdate" Data..=)
+              Prelude.<$> monitoringConfigurationUpdate,
+            ("ParallelismConfigurationUpdate" Data..=)
+              Prelude.<$> parallelismConfigurationUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/FlinkRunConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/FlinkRunConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/FlinkRunConfiguration.hs
@@ -0,0 +1,115 @@
+{-# 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.KinesisAnalyticsV2.Types.FlinkRunConfiguration
+-- 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.KinesisAnalyticsV2.Types.FlinkRunConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the starting parameters for a Flink-based Kinesis Data
+-- Analytics application.
+--
+-- /See:/ 'newFlinkRunConfiguration' smart constructor.
+data FlinkRunConfiguration = FlinkRunConfiguration'
+  { -- | When restoring from a snapshot, specifies whether the runtime is allowed
+    -- to skip a state that cannot be mapped to the new program. This will
+    -- happen if the program is updated between snapshots to remove stateful
+    -- parameters, and state data in the snapshot no longer corresponds to
+    -- valid application data. For more information, see
+    -- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/state/savepoints.html#allowing-non-restored-state Allowing Non-Restored State>
+    -- in the
+    -- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink documentation>.
+    --
+    -- This value defaults to @false@. If you update your application without
+    -- specifying this parameter, @AllowNonRestoredState@ will be set to
+    -- @false@, even if it was previously set to @true@.
+    allowNonRestoredState :: Prelude.Maybe Prelude.Bool
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'FlinkRunConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'allowNonRestoredState', 'flinkRunConfiguration_allowNonRestoredState' - When restoring from a snapshot, specifies whether the runtime is allowed
+-- to skip a state that cannot be mapped to the new program. This will
+-- happen if the program is updated between snapshots to remove stateful
+-- parameters, and state data in the snapshot no longer corresponds to
+-- valid application data. For more information, see
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/state/savepoints.html#allowing-non-restored-state Allowing Non-Restored State>
+-- in the
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink documentation>.
+--
+-- This value defaults to @false@. If you update your application without
+-- specifying this parameter, @AllowNonRestoredState@ will be set to
+-- @false@, even if it was previously set to @true@.
+newFlinkRunConfiguration ::
+  FlinkRunConfiguration
+newFlinkRunConfiguration =
+  FlinkRunConfiguration'
+    { allowNonRestoredState =
+        Prelude.Nothing
+    }
+
+-- | When restoring from a snapshot, specifies whether the runtime is allowed
+-- to skip a state that cannot be mapped to the new program. This will
+-- happen if the program is updated between snapshots to remove stateful
+-- parameters, and state data in the snapshot no longer corresponds to
+-- valid application data. For more information, see
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/state/savepoints.html#allowing-non-restored-state Allowing Non-Restored State>
+-- in the
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink documentation>.
+--
+-- This value defaults to @false@. If you update your application without
+-- specifying this parameter, @AllowNonRestoredState@ will be set to
+-- @false@, even if it was previously set to @true@.
+flinkRunConfiguration_allowNonRestoredState :: Lens.Lens' FlinkRunConfiguration (Prelude.Maybe Prelude.Bool)
+flinkRunConfiguration_allowNonRestoredState = Lens.lens (\FlinkRunConfiguration' {allowNonRestoredState} -> allowNonRestoredState) (\s@FlinkRunConfiguration' {} a -> s {allowNonRestoredState = a} :: FlinkRunConfiguration)
+
+instance Data.FromJSON FlinkRunConfiguration where
+  parseJSON =
+    Data.withObject
+      "FlinkRunConfiguration"
+      ( \x ->
+          FlinkRunConfiguration'
+            Prelude.<$> (x Data..:? "AllowNonRestoredState")
+      )
+
+instance Prelude.Hashable FlinkRunConfiguration where
+  hashWithSalt _salt FlinkRunConfiguration' {..} =
+    _salt `Prelude.hashWithSalt` allowNonRestoredState
+
+instance Prelude.NFData FlinkRunConfiguration where
+  rnf FlinkRunConfiguration' {..} =
+    Prelude.rnf allowNonRestoredState
+
+instance Data.ToJSON FlinkRunConfiguration where
+  toJSON FlinkRunConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("AllowNonRestoredState" Data..=)
+              Prelude.<$> allowNonRestoredState
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/GlueDataCatalogConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/GlueDataCatalogConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/GlueDataCatalogConfiguration.hs
@@ -0,0 +1,76 @@
+{-# 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.KinesisAnalyticsV2.Types.GlueDataCatalogConfiguration
+-- 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.KinesisAnalyticsV2.Types.GlueDataCatalogConfiguration 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 of the Glue Data Catalog that you use for Apache Flink
+-- SQL queries and table API transforms that you write in an application.
+--
+-- /See:/ 'newGlueDataCatalogConfiguration' smart constructor.
+data GlueDataCatalogConfiguration = GlueDataCatalogConfiguration'
+  { -- | The Amazon Resource Name (ARN) of the database.
+    databaseARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GlueDataCatalogConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'databaseARN', 'glueDataCatalogConfiguration_databaseARN' - The Amazon Resource Name (ARN) of the database.
+newGlueDataCatalogConfiguration ::
+  -- | 'databaseARN'
+  Prelude.Text ->
+  GlueDataCatalogConfiguration
+newGlueDataCatalogConfiguration pDatabaseARN_ =
+  GlueDataCatalogConfiguration'
+    { databaseARN =
+        pDatabaseARN_
+    }
+
+-- | The Amazon Resource Name (ARN) of the database.
+glueDataCatalogConfiguration_databaseARN :: Lens.Lens' GlueDataCatalogConfiguration Prelude.Text
+glueDataCatalogConfiguration_databaseARN = Lens.lens (\GlueDataCatalogConfiguration' {databaseARN} -> databaseARN) (\s@GlueDataCatalogConfiguration' {} a -> s {databaseARN = a} :: GlueDataCatalogConfiguration)
+
+instance
+  Prelude.Hashable
+    GlueDataCatalogConfiguration
+  where
+  hashWithSalt _salt GlueDataCatalogConfiguration' {..} =
+    _salt `Prelude.hashWithSalt` databaseARN
+
+instance Prelude.NFData GlueDataCatalogConfiguration where
+  rnf GlueDataCatalogConfiguration' {..} =
+    Prelude.rnf databaseARN
+
+instance Data.ToJSON GlueDataCatalogConfiguration where
+  toJSON GlueDataCatalogConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("DatabaseARN" Data..= databaseARN)]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/GlueDataCatalogConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/GlueDataCatalogConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/GlueDataCatalogConfigurationDescription.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.KinesisAnalyticsV2.Types.GlueDataCatalogConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.GlueDataCatalogConfigurationDescription 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 of the Glue Data Catalog that you use for Apache Flink
+-- SQL queries and table API transforms that you write in an application.
+--
+-- /See:/ 'newGlueDataCatalogConfigurationDescription' smart constructor.
+data GlueDataCatalogConfigurationDescription = GlueDataCatalogConfigurationDescription'
+  { -- | The Amazon Resource Name (ARN) of the database.
+    databaseARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GlueDataCatalogConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'databaseARN', 'glueDataCatalogConfigurationDescription_databaseARN' - The Amazon Resource Name (ARN) of the database.
+newGlueDataCatalogConfigurationDescription ::
+  -- | 'databaseARN'
+  Prelude.Text ->
+  GlueDataCatalogConfigurationDescription
+newGlueDataCatalogConfigurationDescription
+  pDatabaseARN_ =
+    GlueDataCatalogConfigurationDescription'
+      { databaseARN =
+          pDatabaseARN_
+      }
+
+-- | The Amazon Resource Name (ARN) of the database.
+glueDataCatalogConfigurationDescription_databaseARN :: Lens.Lens' GlueDataCatalogConfigurationDescription Prelude.Text
+glueDataCatalogConfigurationDescription_databaseARN = Lens.lens (\GlueDataCatalogConfigurationDescription' {databaseARN} -> databaseARN) (\s@GlueDataCatalogConfigurationDescription' {} a -> s {databaseARN = a} :: GlueDataCatalogConfigurationDescription)
+
+instance
+  Data.FromJSON
+    GlueDataCatalogConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "GlueDataCatalogConfigurationDescription"
+      ( \x ->
+          GlueDataCatalogConfigurationDescription'
+            Prelude.<$> (x Data..: "DatabaseARN")
+      )
+
+instance
+  Prelude.Hashable
+    GlueDataCatalogConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    GlueDataCatalogConfigurationDescription' {..} =
+      _salt `Prelude.hashWithSalt` databaseARN
+
+instance
+  Prelude.NFData
+    GlueDataCatalogConfigurationDescription
+  where
+  rnf GlueDataCatalogConfigurationDescription' {..} =
+    Prelude.rnf databaseARN
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/GlueDataCatalogConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/GlueDataCatalogConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/GlueDataCatalogConfigurationUpdate.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.KinesisAnalyticsV2.Types.GlueDataCatalogConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.GlueDataCatalogConfigurationUpdate 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
+
+-- | Updates to the configuration of the Glue Data Catalog that you use for
+-- SQL queries that you write in a Kinesis Data Analytics Studio notebook.
+--
+-- /See:/ 'newGlueDataCatalogConfigurationUpdate' smart constructor.
+data GlueDataCatalogConfigurationUpdate = GlueDataCatalogConfigurationUpdate'
+  { -- | The updated Amazon Resource Name (ARN) of the database.
+    databaseARNUpdate :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GlueDataCatalogConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'databaseARNUpdate', 'glueDataCatalogConfigurationUpdate_databaseARNUpdate' - The updated Amazon Resource Name (ARN) of the database.
+newGlueDataCatalogConfigurationUpdate ::
+  -- | 'databaseARNUpdate'
+  Prelude.Text ->
+  GlueDataCatalogConfigurationUpdate
+newGlueDataCatalogConfigurationUpdate
+  pDatabaseARNUpdate_ =
+    GlueDataCatalogConfigurationUpdate'
+      { databaseARNUpdate =
+          pDatabaseARNUpdate_
+      }
+
+-- | The updated Amazon Resource Name (ARN) of the database.
+glueDataCatalogConfigurationUpdate_databaseARNUpdate :: Lens.Lens' GlueDataCatalogConfigurationUpdate Prelude.Text
+glueDataCatalogConfigurationUpdate_databaseARNUpdate = Lens.lens (\GlueDataCatalogConfigurationUpdate' {databaseARNUpdate} -> databaseARNUpdate) (\s@GlueDataCatalogConfigurationUpdate' {} a -> s {databaseARNUpdate = a} :: GlueDataCatalogConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    GlueDataCatalogConfigurationUpdate
+  where
+  hashWithSalt
+    _salt
+    GlueDataCatalogConfigurationUpdate' {..} =
+      _salt `Prelude.hashWithSalt` databaseARNUpdate
+
+instance
+  Prelude.NFData
+    GlueDataCatalogConfigurationUpdate
+  where
+  rnf GlueDataCatalogConfigurationUpdate' {..} =
+    Prelude.rnf databaseARNUpdate
+
+instance
+  Data.ToJSON
+    GlueDataCatalogConfigurationUpdate
+  where
+  toJSON GlueDataCatalogConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("DatabaseARNUpdate" Data..= databaseARNUpdate)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/Input.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/Input.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/Input.hs
@@ -0,0 +1,189 @@
+{-# 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.KinesisAnalyticsV2.Types.Input
+-- 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.KinesisAnalyticsV2.Types.Input where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.InputParallelism
+import Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInput
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInput
+import Amazonka.KinesisAnalyticsV2.Types.SourceSchema
+import qualified Amazonka.Prelude as Prelude
+
+-- | When you configure the application input for a SQL-based Kinesis Data
+-- Analytics application, you specify the streaming source, the
+-- in-application stream name that is created, and the mapping between the
+-- two.
+--
+-- /See:/ 'newInput' smart constructor.
+data Input = Input'
+  { -- | Describes the number of in-application streams to create.
+    inputParallelism :: Prelude.Maybe InputParallelism,
+    -- | The InputProcessingConfiguration for the input. An input processor
+    -- transforms records as they are received from the stream, before the
+    -- application\'s SQL code executes. Currently, the only input processing
+    -- configuration available is InputLambdaProcessor.
+    inputProcessingConfiguration :: Prelude.Maybe InputProcessingConfiguration,
+    -- | If the streaming source is an Amazon Kinesis Data Firehose delivery
+    -- stream, identifies the delivery stream\'s ARN.
+    kinesisFirehoseInput :: Prelude.Maybe KinesisFirehoseInput,
+    -- | If the streaming source is an Amazon Kinesis data stream, identifies the
+    -- stream\'s Amazon Resource Name (ARN).
+    kinesisStreamsInput :: Prelude.Maybe KinesisStreamsInput,
+    -- | The name prefix to use when creating an in-application stream. Suppose
+    -- that you specify a prefix \"@MyInApplicationStream@.\" Kinesis Data
+    -- Analytics then creates one or more (as per the @InputParallelism@ count
+    -- you specified) in-application streams with the names
+    -- \"@MyInApplicationStream_001@,\" \"@MyInApplicationStream_002@,\" and so
+    -- on.
+    namePrefix :: Prelude.Text,
+    -- | Describes the format of the data in the streaming source, and how each
+    -- data element maps to corresponding columns in the in-application stream
+    -- that is being created.
+    --
+    -- Also used to describe the format of the reference data source.
+    inputSchema :: SourceSchema
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Input' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inputParallelism', 'input_inputParallelism' - Describes the number of in-application streams to create.
+--
+-- 'inputProcessingConfiguration', 'input_inputProcessingConfiguration' - The InputProcessingConfiguration for the input. An input processor
+-- transforms records as they are received from the stream, before the
+-- application\'s SQL code executes. Currently, the only input processing
+-- configuration available is InputLambdaProcessor.
+--
+-- 'kinesisFirehoseInput', 'input_kinesisFirehoseInput' - If the streaming source is an Amazon Kinesis Data Firehose delivery
+-- stream, identifies the delivery stream\'s ARN.
+--
+-- 'kinesisStreamsInput', 'input_kinesisStreamsInput' - If the streaming source is an Amazon Kinesis data stream, identifies the
+-- stream\'s Amazon Resource Name (ARN).
+--
+-- 'namePrefix', 'input_namePrefix' - The name prefix to use when creating an in-application stream. Suppose
+-- that you specify a prefix \"@MyInApplicationStream@.\" Kinesis Data
+-- Analytics then creates one or more (as per the @InputParallelism@ count
+-- you specified) in-application streams with the names
+-- \"@MyInApplicationStream_001@,\" \"@MyInApplicationStream_002@,\" and so
+-- on.
+--
+-- 'inputSchema', 'input_inputSchema' - Describes the format of the data in the streaming source, and how each
+-- data element maps to corresponding columns in the in-application stream
+-- that is being created.
+--
+-- Also used to describe the format of the reference data source.
+newInput ::
+  -- | 'namePrefix'
+  Prelude.Text ->
+  -- | 'inputSchema'
+  SourceSchema ->
+  Input
+newInput pNamePrefix_ pInputSchema_ =
+  Input'
+    { inputParallelism = Prelude.Nothing,
+      inputProcessingConfiguration = Prelude.Nothing,
+      kinesisFirehoseInput = Prelude.Nothing,
+      kinesisStreamsInput = Prelude.Nothing,
+      namePrefix = pNamePrefix_,
+      inputSchema = pInputSchema_
+    }
+
+-- | Describes the number of in-application streams to create.
+input_inputParallelism :: Lens.Lens' Input (Prelude.Maybe InputParallelism)
+input_inputParallelism = Lens.lens (\Input' {inputParallelism} -> inputParallelism) (\s@Input' {} a -> s {inputParallelism = a} :: Input)
+
+-- | The InputProcessingConfiguration for the input. An input processor
+-- transforms records as they are received from the stream, before the
+-- application\'s SQL code executes. Currently, the only input processing
+-- configuration available is InputLambdaProcessor.
+input_inputProcessingConfiguration :: Lens.Lens' Input (Prelude.Maybe InputProcessingConfiguration)
+input_inputProcessingConfiguration = Lens.lens (\Input' {inputProcessingConfiguration} -> inputProcessingConfiguration) (\s@Input' {} a -> s {inputProcessingConfiguration = a} :: Input)
+
+-- | If the streaming source is an Amazon Kinesis Data Firehose delivery
+-- stream, identifies the delivery stream\'s ARN.
+input_kinesisFirehoseInput :: Lens.Lens' Input (Prelude.Maybe KinesisFirehoseInput)
+input_kinesisFirehoseInput = Lens.lens (\Input' {kinesisFirehoseInput} -> kinesisFirehoseInput) (\s@Input' {} a -> s {kinesisFirehoseInput = a} :: Input)
+
+-- | If the streaming source is an Amazon Kinesis data stream, identifies the
+-- stream\'s Amazon Resource Name (ARN).
+input_kinesisStreamsInput :: Lens.Lens' Input (Prelude.Maybe KinesisStreamsInput)
+input_kinesisStreamsInput = Lens.lens (\Input' {kinesisStreamsInput} -> kinesisStreamsInput) (\s@Input' {} a -> s {kinesisStreamsInput = a} :: Input)
+
+-- | The name prefix to use when creating an in-application stream. Suppose
+-- that you specify a prefix \"@MyInApplicationStream@.\" Kinesis Data
+-- Analytics then creates one or more (as per the @InputParallelism@ count
+-- you specified) in-application streams with the names
+-- \"@MyInApplicationStream_001@,\" \"@MyInApplicationStream_002@,\" and so
+-- on.
+input_namePrefix :: Lens.Lens' Input Prelude.Text
+input_namePrefix = Lens.lens (\Input' {namePrefix} -> namePrefix) (\s@Input' {} a -> s {namePrefix = a} :: Input)
+
+-- | Describes the format of the data in the streaming source, and how each
+-- data element maps to corresponding columns in the in-application stream
+-- that is being created.
+--
+-- Also used to describe the format of the reference data source.
+input_inputSchema :: Lens.Lens' Input SourceSchema
+input_inputSchema = Lens.lens (\Input' {inputSchema} -> inputSchema) (\s@Input' {} a -> s {inputSchema = a} :: Input)
+
+instance Prelude.Hashable Input where
+  hashWithSalt _salt Input' {..} =
+    _salt
+      `Prelude.hashWithSalt` inputParallelism
+      `Prelude.hashWithSalt` inputProcessingConfiguration
+      `Prelude.hashWithSalt` kinesisFirehoseInput
+      `Prelude.hashWithSalt` kinesisStreamsInput
+      `Prelude.hashWithSalt` namePrefix
+      `Prelude.hashWithSalt` inputSchema
+
+instance Prelude.NFData Input where
+  rnf Input' {..} =
+    Prelude.rnf inputParallelism
+      `Prelude.seq` Prelude.rnf inputProcessingConfiguration
+      `Prelude.seq` Prelude.rnf kinesisFirehoseInput
+      `Prelude.seq` Prelude.rnf kinesisStreamsInput
+      `Prelude.seq` Prelude.rnf namePrefix
+      `Prelude.seq` Prelude.rnf inputSchema
+
+instance Data.ToJSON Input where
+  toJSON Input' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("InputParallelism" Data..=)
+              Prelude.<$> inputParallelism,
+            ("InputProcessingConfiguration" Data..=)
+              Prelude.<$> inputProcessingConfiguration,
+            ("KinesisFirehoseInput" Data..=)
+              Prelude.<$> kinesisFirehoseInput,
+            ("KinesisStreamsInput" Data..=)
+              Prelude.<$> kinesisStreamsInput,
+            Prelude.Just ("NamePrefix" Data..= namePrefix),
+            Prelude.Just ("InputSchema" Data..= inputSchema)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputDescription.hs
@@ -0,0 +1,212 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.InputDescription
+-- 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.KinesisAnalyticsV2.Types.InputDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.InputParallelism
+import Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.InputStartingPositionConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInputDescription
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInputDescription
+import Amazonka.KinesisAnalyticsV2.Types.SourceSchema
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the application input configuration for a SQL-based Kinesis
+-- Data Analytics application.
+--
+-- /See:/ 'newInputDescription' smart constructor.
+data InputDescription = InputDescription'
+  { -- | Returns the in-application stream names that are mapped to the stream
+    -- source.
+    inAppStreamNames :: Prelude.Maybe [Prelude.Text],
+    -- | The input ID that is associated with the application input. This is the
+    -- ID that Kinesis Data Analytics assigns to each input configuration that
+    -- you add to your application.
+    inputId :: Prelude.Maybe Prelude.Text,
+    -- | Describes the configured parallelism (number of in-application streams
+    -- mapped to the streaming source).
+    inputParallelism :: Prelude.Maybe InputParallelism,
+    -- | The description of the preprocessor that executes on records in this
+    -- input before the application\'s code is run.
+    inputProcessingConfigurationDescription :: Prelude.Maybe InputProcessingConfigurationDescription,
+    -- | Describes the format of the data in the streaming source, and how each
+    -- data element maps to corresponding columns in the in-application stream
+    -- that is being created.
+    inputSchema :: Prelude.Maybe SourceSchema,
+    -- | The point at which the application is configured to read from the input
+    -- stream.
+    inputStartingPositionConfiguration :: Prelude.Maybe InputStartingPositionConfiguration,
+    -- | If a Kinesis Data Firehose delivery stream is configured as a streaming
+    -- source, provides the delivery stream\'s ARN.
+    kinesisFirehoseInputDescription :: Prelude.Maybe KinesisFirehoseInputDescription,
+    -- | If a Kinesis data stream is configured as a streaming source, provides
+    -- the Kinesis data stream\'s Amazon Resource Name (ARN).
+    kinesisStreamsInputDescription :: Prelude.Maybe KinesisStreamsInputDescription,
+    -- | The in-application name prefix.
+    namePrefix :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InputDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inAppStreamNames', 'inputDescription_inAppStreamNames' - Returns the in-application stream names that are mapped to the stream
+-- source.
+--
+-- 'inputId', 'inputDescription_inputId' - The input ID that is associated with the application input. This is the
+-- ID that Kinesis Data Analytics assigns to each input configuration that
+-- you add to your application.
+--
+-- 'inputParallelism', 'inputDescription_inputParallelism' - Describes the configured parallelism (number of in-application streams
+-- mapped to the streaming source).
+--
+-- 'inputProcessingConfigurationDescription', 'inputDescription_inputProcessingConfigurationDescription' - The description of the preprocessor that executes on records in this
+-- input before the application\'s code is run.
+--
+-- 'inputSchema', 'inputDescription_inputSchema' - Describes the format of the data in the streaming source, and how each
+-- data element maps to corresponding columns in the in-application stream
+-- that is being created.
+--
+-- 'inputStartingPositionConfiguration', 'inputDescription_inputStartingPositionConfiguration' - The point at which the application is configured to read from the input
+-- stream.
+--
+-- 'kinesisFirehoseInputDescription', 'inputDescription_kinesisFirehoseInputDescription' - If a Kinesis Data Firehose delivery stream is configured as a streaming
+-- source, provides the delivery stream\'s ARN.
+--
+-- 'kinesisStreamsInputDescription', 'inputDescription_kinesisStreamsInputDescription' - If a Kinesis data stream is configured as a streaming source, provides
+-- the Kinesis data stream\'s Amazon Resource Name (ARN).
+--
+-- 'namePrefix', 'inputDescription_namePrefix' - The in-application name prefix.
+newInputDescription ::
+  InputDescription
+newInputDescription =
+  InputDescription'
+    { inAppStreamNames =
+        Prelude.Nothing,
+      inputId = Prelude.Nothing,
+      inputParallelism = Prelude.Nothing,
+      inputProcessingConfigurationDescription =
+        Prelude.Nothing,
+      inputSchema = Prelude.Nothing,
+      inputStartingPositionConfiguration = Prelude.Nothing,
+      kinesisFirehoseInputDescription = Prelude.Nothing,
+      kinesisStreamsInputDescription = Prelude.Nothing,
+      namePrefix = Prelude.Nothing
+    }
+
+-- | Returns the in-application stream names that are mapped to the stream
+-- source.
+inputDescription_inAppStreamNames :: Lens.Lens' InputDescription (Prelude.Maybe [Prelude.Text])
+inputDescription_inAppStreamNames = Lens.lens (\InputDescription' {inAppStreamNames} -> inAppStreamNames) (\s@InputDescription' {} a -> s {inAppStreamNames = a} :: InputDescription) Prelude.. Lens.mapping Lens.coerced
+
+-- | The input ID that is associated with the application input. This is the
+-- ID that Kinesis Data Analytics assigns to each input configuration that
+-- you add to your application.
+inputDescription_inputId :: Lens.Lens' InputDescription (Prelude.Maybe Prelude.Text)
+inputDescription_inputId = Lens.lens (\InputDescription' {inputId} -> inputId) (\s@InputDescription' {} a -> s {inputId = a} :: InputDescription)
+
+-- | Describes the configured parallelism (number of in-application streams
+-- mapped to the streaming source).
+inputDescription_inputParallelism :: Lens.Lens' InputDescription (Prelude.Maybe InputParallelism)
+inputDescription_inputParallelism = Lens.lens (\InputDescription' {inputParallelism} -> inputParallelism) (\s@InputDescription' {} a -> s {inputParallelism = a} :: InputDescription)
+
+-- | The description of the preprocessor that executes on records in this
+-- input before the application\'s code is run.
+inputDescription_inputProcessingConfigurationDescription :: Lens.Lens' InputDescription (Prelude.Maybe InputProcessingConfigurationDescription)
+inputDescription_inputProcessingConfigurationDescription = Lens.lens (\InputDescription' {inputProcessingConfigurationDescription} -> inputProcessingConfigurationDescription) (\s@InputDescription' {} a -> s {inputProcessingConfigurationDescription = a} :: InputDescription)
+
+-- | Describes the format of the data in the streaming source, and how each
+-- data element maps to corresponding columns in the in-application stream
+-- that is being created.
+inputDescription_inputSchema :: Lens.Lens' InputDescription (Prelude.Maybe SourceSchema)
+inputDescription_inputSchema = Lens.lens (\InputDescription' {inputSchema} -> inputSchema) (\s@InputDescription' {} a -> s {inputSchema = a} :: InputDescription)
+
+-- | The point at which the application is configured to read from the input
+-- stream.
+inputDescription_inputStartingPositionConfiguration :: Lens.Lens' InputDescription (Prelude.Maybe InputStartingPositionConfiguration)
+inputDescription_inputStartingPositionConfiguration = Lens.lens (\InputDescription' {inputStartingPositionConfiguration} -> inputStartingPositionConfiguration) (\s@InputDescription' {} a -> s {inputStartingPositionConfiguration = a} :: InputDescription)
+
+-- | If a Kinesis Data Firehose delivery stream is configured as a streaming
+-- source, provides the delivery stream\'s ARN.
+inputDescription_kinesisFirehoseInputDescription :: Lens.Lens' InputDescription (Prelude.Maybe KinesisFirehoseInputDescription)
+inputDescription_kinesisFirehoseInputDescription = Lens.lens (\InputDescription' {kinesisFirehoseInputDescription} -> kinesisFirehoseInputDescription) (\s@InputDescription' {} a -> s {kinesisFirehoseInputDescription = a} :: InputDescription)
+
+-- | If a Kinesis data stream is configured as a streaming source, provides
+-- the Kinesis data stream\'s Amazon Resource Name (ARN).
+inputDescription_kinesisStreamsInputDescription :: Lens.Lens' InputDescription (Prelude.Maybe KinesisStreamsInputDescription)
+inputDescription_kinesisStreamsInputDescription = Lens.lens (\InputDescription' {kinesisStreamsInputDescription} -> kinesisStreamsInputDescription) (\s@InputDescription' {} a -> s {kinesisStreamsInputDescription = a} :: InputDescription)
+
+-- | The in-application name prefix.
+inputDescription_namePrefix :: Lens.Lens' InputDescription (Prelude.Maybe Prelude.Text)
+inputDescription_namePrefix = Lens.lens (\InputDescription' {namePrefix} -> namePrefix) (\s@InputDescription' {} a -> s {namePrefix = a} :: InputDescription)
+
+instance Data.FromJSON InputDescription where
+  parseJSON =
+    Data.withObject
+      "InputDescription"
+      ( \x ->
+          InputDescription'
+            Prelude.<$> ( x
+                            Data..:? "InAppStreamNames"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "InputId")
+            Prelude.<*> (x Data..:? "InputParallelism")
+            Prelude.<*> ( x
+                            Data..:? "InputProcessingConfigurationDescription"
+                        )
+            Prelude.<*> (x Data..:? "InputSchema")
+            Prelude.<*> (x Data..:? "InputStartingPositionConfiguration")
+            Prelude.<*> (x Data..:? "KinesisFirehoseInputDescription")
+            Prelude.<*> (x Data..:? "KinesisStreamsInputDescription")
+            Prelude.<*> (x Data..:? "NamePrefix")
+      )
+
+instance Prelude.Hashable InputDescription where
+  hashWithSalt _salt InputDescription' {..} =
+    _salt
+      `Prelude.hashWithSalt` inAppStreamNames
+      `Prelude.hashWithSalt` inputId
+      `Prelude.hashWithSalt` inputParallelism
+      `Prelude.hashWithSalt` inputProcessingConfigurationDescription
+      `Prelude.hashWithSalt` inputSchema
+      `Prelude.hashWithSalt` inputStartingPositionConfiguration
+      `Prelude.hashWithSalt` kinesisFirehoseInputDescription
+      `Prelude.hashWithSalt` kinesisStreamsInputDescription
+      `Prelude.hashWithSalt` namePrefix
+
+instance Prelude.NFData InputDescription where
+  rnf InputDescription' {..} =
+    Prelude.rnf inAppStreamNames
+      `Prelude.seq` Prelude.rnf inputId
+      `Prelude.seq` Prelude.rnf inputParallelism
+      `Prelude.seq` Prelude.rnf inputProcessingConfigurationDescription
+      `Prelude.seq` Prelude.rnf inputSchema
+      `Prelude.seq` Prelude.rnf inputStartingPositionConfiguration
+      `Prelude.seq` Prelude.rnf kinesisFirehoseInputDescription
+      `Prelude.seq` Prelude.rnf kinesisStreamsInputDescription
+      `Prelude.seq` Prelude.rnf namePrefix
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputLambdaProcessor.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputLambdaProcessor.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputLambdaProcessor.hs
@@ -0,0 +1,89 @@
+{-# 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.KinesisAnalyticsV2.Types.InputLambdaProcessor
+-- 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.KinesisAnalyticsV2.Types.InputLambdaProcessor 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 object that contains the Amazon Resource Name (ARN) of the Amazon
+-- Lambda function that is used to preprocess records in the stream in a
+-- SQL-based Kinesis Data Analytics application.
+--
+-- /See:/ 'newInputLambdaProcessor' smart constructor.
+data InputLambdaProcessor = InputLambdaProcessor'
+  { -- | The ARN of the Amazon Lambda function that operates on records in the
+    -- stream.
+    --
+    -- To specify an earlier version of the Lambda function than the latest,
+    -- include the Lambda function version in the Lambda function ARN. For more
+    -- information about Lambda ARNs, see
+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InputLambdaProcessor' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARN', 'inputLambdaProcessor_resourceARN' - The ARN of the Amazon Lambda function that operates on records in the
+-- stream.
+--
+-- To specify an earlier version of the Lambda function than the latest,
+-- include the Lambda function version in the Lambda function ARN. For more
+-- information about Lambda ARNs, see
+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+newInputLambdaProcessor ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  InputLambdaProcessor
+newInputLambdaProcessor pResourceARN_ =
+  InputLambdaProcessor' {resourceARN = pResourceARN_}
+
+-- | The ARN of the Amazon Lambda function that operates on records in the
+-- stream.
+--
+-- To specify an earlier version of the Lambda function than the latest,
+-- include the Lambda function version in the Lambda function ARN. For more
+-- information about Lambda ARNs, see
+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+inputLambdaProcessor_resourceARN :: Lens.Lens' InputLambdaProcessor Prelude.Text
+inputLambdaProcessor_resourceARN = Lens.lens (\InputLambdaProcessor' {resourceARN} -> resourceARN) (\s@InputLambdaProcessor' {} a -> s {resourceARN = a} :: InputLambdaProcessor)
+
+instance Prelude.Hashable InputLambdaProcessor where
+  hashWithSalt _salt InputLambdaProcessor' {..} =
+    _salt `Prelude.hashWithSalt` resourceARN
+
+instance Prelude.NFData InputLambdaProcessor where
+  rnf InputLambdaProcessor' {..} =
+    Prelude.rnf resourceARN
+
+instance Data.ToJSON InputLambdaProcessor where
+  toJSON InputLambdaProcessor' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("ResourceARN" Data..= resourceARN)]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputLambdaProcessorDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputLambdaProcessorDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputLambdaProcessorDescription.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessorDescription
+-- 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.KinesisAnalyticsV2.Types.InputLambdaProcessorDescription 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
+
+-- | For a SQL-based Kinesis Data Analytics application, an object that
+-- contains the Amazon Resource Name (ARN) of the Amazon Lambda function
+-- that is used to preprocess records in the stream.
+--
+-- /See:/ 'newInputLambdaProcessorDescription' smart constructor.
+data InputLambdaProcessorDescription = InputLambdaProcessorDescription'
+  { -- | The ARN of the IAM role that is used to access the Amazon Lambda
+    -- function.
+    --
+    -- Provided for backward compatibility. Applications that are created with
+    -- the current API version have an application-level service execution role
+    -- rather than a resource-level role.
+    roleARN :: Prelude.Maybe Prelude.Text,
+    -- | The ARN of the Amazon Lambda function that is used to preprocess the
+    -- records in the stream.
+    --
+    -- To specify an earlier version of the Lambda function than the latest,
+    -- include the Lambda function version in the Lambda function ARN. For more
+    -- information about Lambda ARNs, see
+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InputLambdaProcessorDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'roleARN', 'inputLambdaProcessorDescription_roleARN' - The ARN of the IAM role that is used to access the Amazon Lambda
+-- function.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+--
+-- 'resourceARN', 'inputLambdaProcessorDescription_resourceARN' - The ARN of the Amazon Lambda function that is used to preprocess the
+-- records in the stream.
+--
+-- To specify an earlier version of the Lambda function than the latest,
+-- include the Lambda function version in the Lambda function ARN. For more
+-- information about Lambda ARNs, see
+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+newInputLambdaProcessorDescription ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  InputLambdaProcessorDescription
+newInputLambdaProcessorDescription pResourceARN_ =
+  InputLambdaProcessorDescription'
+    { roleARN =
+        Prelude.Nothing,
+      resourceARN = pResourceARN_
+    }
+
+-- | The ARN of the IAM role that is used to access the Amazon Lambda
+-- function.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+inputLambdaProcessorDescription_roleARN :: Lens.Lens' InputLambdaProcessorDescription (Prelude.Maybe Prelude.Text)
+inputLambdaProcessorDescription_roleARN = Lens.lens (\InputLambdaProcessorDescription' {roleARN} -> roleARN) (\s@InputLambdaProcessorDescription' {} a -> s {roleARN = a} :: InputLambdaProcessorDescription)
+
+-- | The ARN of the Amazon Lambda function that is used to preprocess the
+-- records in the stream.
+--
+-- To specify an earlier version of the Lambda function than the latest,
+-- include the Lambda function version in the Lambda function ARN. For more
+-- information about Lambda ARNs, see
+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+inputLambdaProcessorDescription_resourceARN :: Lens.Lens' InputLambdaProcessorDescription Prelude.Text
+inputLambdaProcessorDescription_resourceARN = Lens.lens (\InputLambdaProcessorDescription' {resourceARN} -> resourceARN) (\s@InputLambdaProcessorDescription' {} a -> s {resourceARN = a} :: InputLambdaProcessorDescription)
+
+instance
+  Data.FromJSON
+    InputLambdaProcessorDescription
+  where
+  parseJSON =
+    Data.withObject
+      "InputLambdaProcessorDescription"
+      ( \x ->
+          InputLambdaProcessorDescription'
+            Prelude.<$> (x Data..:? "RoleARN")
+            Prelude.<*> (x Data..: "ResourceARN")
+      )
+
+instance
+  Prelude.Hashable
+    InputLambdaProcessorDescription
+  where
+  hashWithSalt
+    _salt
+    InputLambdaProcessorDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` roleARN
+        `Prelude.hashWithSalt` resourceARN
+
+instance
+  Prelude.NFData
+    InputLambdaProcessorDescription
+  where
+  rnf InputLambdaProcessorDescription' {..} =
+    Prelude.rnf roleARN
+      `Prelude.seq` Prelude.rnf resourceARN
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputLambdaProcessorUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputLambdaProcessorUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputLambdaProcessorUpdate.hs
@@ -0,0 +1,94 @@
+{-# 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.KinesisAnalyticsV2.Types.InputLambdaProcessorUpdate
+-- 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.KinesisAnalyticsV2.Types.InputLambdaProcessorUpdate 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
+
+-- | For a SQL-based Kinesis Data Analytics application, represents an update
+-- to the InputLambdaProcessor that is used to preprocess the records in
+-- the stream.
+--
+-- /See:/ 'newInputLambdaProcessorUpdate' smart constructor.
+data InputLambdaProcessorUpdate = InputLambdaProcessorUpdate'
+  { -- | The Amazon Resource Name (ARN) of the new Amazon Lambda function that is
+    -- used to preprocess the records in the stream.
+    --
+    -- To specify an earlier version of the Lambda function than the latest,
+    -- include the Lambda function version in the Lambda function ARN. For more
+    -- information about Lambda ARNs, see
+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+    resourceARNUpdate :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InputLambdaProcessorUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARNUpdate', 'inputLambdaProcessorUpdate_resourceARNUpdate' - The Amazon Resource Name (ARN) of the new Amazon Lambda function that is
+-- used to preprocess the records in the stream.
+--
+-- To specify an earlier version of the Lambda function than the latest,
+-- include the Lambda function version in the Lambda function ARN. For more
+-- information about Lambda ARNs, see
+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+newInputLambdaProcessorUpdate ::
+  -- | 'resourceARNUpdate'
+  Prelude.Text ->
+  InputLambdaProcessorUpdate
+newInputLambdaProcessorUpdate pResourceARNUpdate_ =
+  InputLambdaProcessorUpdate'
+    { resourceARNUpdate =
+        pResourceARNUpdate_
+    }
+
+-- | The Amazon Resource Name (ARN) of the new Amazon Lambda function that is
+-- used to preprocess the records in the stream.
+--
+-- To specify an earlier version of the Lambda function than the latest,
+-- include the Lambda function version in the Lambda function ARN. For more
+-- information about Lambda ARNs, see
+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+inputLambdaProcessorUpdate_resourceARNUpdate :: Lens.Lens' InputLambdaProcessorUpdate Prelude.Text
+inputLambdaProcessorUpdate_resourceARNUpdate = Lens.lens (\InputLambdaProcessorUpdate' {resourceARNUpdate} -> resourceARNUpdate) (\s@InputLambdaProcessorUpdate' {} a -> s {resourceARNUpdate = a} :: InputLambdaProcessorUpdate)
+
+instance Prelude.Hashable InputLambdaProcessorUpdate where
+  hashWithSalt _salt InputLambdaProcessorUpdate' {..} =
+    _salt `Prelude.hashWithSalt` resourceARNUpdate
+
+instance Prelude.NFData InputLambdaProcessorUpdate where
+  rnf InputLambdaProcessorUpdate' {..} =
+    Prelude.rnf resourceARNUpdate
+
+instance Data.ToJSON InputLambdaProcessorUpdate where
+  toJSON InputLambdaProcessorUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ResourceARNUpdate" Data..= resourceARNUpdate)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputParallelism.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputParallelism.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputParallelism.hs
@@ -0,0 +1,75 @@
+{-# 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.KinesisAnalyticsV2.Types.InputParallelism
+-- 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.KinesisAnalyticsV2.Types.InputParallelism 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
+
+-- | For a SQL-based Kinesis Data Analytics application, describes the number
+-- of in-application streams to create for a given streaming source.
+--
+-- /See:/ 'newInputParallelism' smart constructor.
+data InputParallelism = InputParallelism'
+  { -- | The number of in-application streams to create.
+    count :: Prelude.Maybe Prelude.Natural
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InputParallelism' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'count', 'inputParallelism_count' - The number of in-application streams to create.
+newInputParallelism ::
+  InputParallelism
+newInputParallelism =
+  InputParallelism' {count = Prelude.Nothing}
+
+-- | The number of in-application streams to create.
+inputParallelism_count :: Lens.Lens' InputParallelism (Prelude.Maybe Prelude.Natural)
+inputParallelism_count = Lens.lens (\InputParallelism' {count} -> count) (\s@InputParallelism' {} a -> s {count = a} :: InputParallelism)
+
+instance Data.FromJSON InputParallelism where
+  parseJSON =
+    Data.withObject
+      "InputParallelism"
+      ( \x ->
+          InputParallelism' Prelude.<$> (x Data..:? "Count")
+      )
+
+instance Prelude.Hashable InputParallelism where
+  hashWithSalt _salt InputParallelism' {..} =
+    _salt `Prelude.hashWithSalt` count
+
+instance Prelude.NFData InputParallelism where
+  rnf InputParallelism' {..} = Prelude.rnf count
+
+instance Data.ToJSON InputParallelism where
+  toJSON InputParallelism' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [("Count" Data..=) Prelude.<$> count]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputParallelismUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputParallelismUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputParallelismUpdate.hs
@@ -0,0 +1,76 @@
+{-# 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.KinesisAnalyticsV2.Types.InputParallelismUpdate
+-- 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.KinesisAnalyticsV2.Types.InputParallelismUpdate 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
+
+-- | For a SQL-based Kinesis Data Analytics application, provides updates to
+-- the parallelism count.
+--
+-- /See:/ 'newInputParallelismUpdate' smart constructor.
+data InputParallelismUpdate = InputParallelismUpdate'
+  { -- | The number of in-application streams to create for the specified
+    -- streaming source.
+    countUpdate :: Prelude.Natural
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InputParallelismUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'countUpdate', 'inputParallelismUpdate_countUpdate' - The number of in-application streams to create for the specified
+-- streaming source.
+newInputParallelismUpdate ::
+  -- | 'countUpdate'
+  Prelude.Natural ->
+  InputParallelismUpdate
+newInputParallelismUpdate pCountUpdate_ =
+  InputParallelismUpdate'
+    { countUpdate =
+        pCountUpdate_
+    }
+
+-- | The number of in-application streams to create for the specified
+-- streaming source.
+inputParallelismUpdate_countUpdate :: Lens.Lens' InputParallelismUpdate Prelude.Natural
+inputParallelismUpdate_countUpdate = Lens.lens (\InputParallelismUpdate' {countUpdate} -> countUpdate) (\s@InputParallelismUpdate' {} a -> s {countUpdate = a} :: InputParallelismUpdate)
+
+instance Prelude.Hashable InputParallelismUpdate where
+  hashWithSalt _salt InputParallelismUpdate' {..} =
+    _salt `Prelude.hashWithSalt` countUpdate
+
+instance Prelude.NFData InputParallelismUpdate where
+  rnf InputParallelismUpdate' {..} =
+    Prelude.rnf countUpdate
+
+instance Data.ToJSON InputParallelismUpdate where
+  toJSON InputParallelismUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("CountUpdate" Data..= countUpdate)]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputProcessingConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputProcessingConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputProcessingConfiguration.hs
@@ -0,0 +1,88 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfiguration
+-- 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.KinesisAnalyticsV2.Types.InputProcessingConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessor
+import qualified Amazonka.Prelude as Prelude
+
+-- | For a SQL-based Kinesis Data Analytics application, describes a
+-- processor that is used to preprocess the records in the stream before
+-- being processed by your application code. Currently, the only input
+-- processor available is
+-- <https://docs.aws.amazon.com/lambda/ Amazon Lambda>.
+--
+-- /See:/ 'newInputProcessingConfiguration' smart constructor.
+data InputProcessingConfiguration = InputProcessingConfiguration'
+  { -- | The InputLambdaProcessor that is used to preprocess the records in the
+    -- stream before being processed by your application code.
+    inputLambdaProcessor :: InputLambdaProcessor
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InputProcessingConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inputLambdaProcessor', 'inputProcessingConfiguration_inputLambdaProcessor' - The InputLambdaProcessor that is used to preprocess the records in the
+-- stream before being processed by your application code.
+newInputProcessingConfiguration ::
+  -- | 'inputLambdaProcessor'
+  InputLambdaProcessor ->
+  InputProcessingConfiguration
+newInputProcessingConfiguration
+  pInputLambdaProcessor_ =
+    InputProcessingConfiguration'
+      { inputLambdaProcessor =
+          pInputLambdaProcessor_
+      }
+
+-- | The InputLambdaProcessor that is used to preprocess the records in the
+-- stream before being processed by your application code.
+inputProcessingConfiguration_inputLambdaProcessor :: Lens.Lens' InputProcessingConfiguration InputLambdaProcessor
+inputProcessingConfiguration_inputLambdaProcessor = Lens.lens (\InputProcessingConfiguration' {inputLambdaProcessor} -> inputLambdaProcessor) (\s@InputProcessingConfiguration' {} a -> s {inputLambdaProcessor = a} :: InputProcessingConfiguration)
+
+instance
+  Prelude.Hashable
+    InputProcessingConfiguration
+  where
+  hashWithSalt _salt InputProcessingConfiguration' {..} =
+    _salt `Prelude.hashWithSalt` inputLambdaProcessor
+
+instance Prelude.NFData InputProcessingConfiguration where
+  rnf InputProcessingConfiguration' {..} =
+    Prelude.rnf inputLambdaProcessor
+
+instance Data.ToJSON InputProcessingConfiguration where
+  toJSON InputProcessingConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "InputLambdaProcessor"
+                  Data..= inputLambdaProcessor
+              )
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputProcessingConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputProcessingConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputProcessingConfigurationDescription.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.KinesisAnalyticsV2.Types.InputProcessingConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.InputProcessingConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessorDescription
+import qualified Amazonka.Prelude as Prelude
+
+-- | For a SQL-based Kinesis Data Analytics application, provides the
+-- configuration information about an input processor. Currently, the only
+-- input processor available is
+-- <https://docs.aws.amazon.com/lambda/ Amazon Lambda>.
+--
+-- /See:/ 'newInputProcessingConfigurationDescription' smart constructor.
+data InputProcessingConfigurationDescription = InputProcessingConfigurationDescription'
+  { -- | Provides configuration information about the associated
+    -- InputLambdaProcessorDescription
+    inputLambdaProcessorDescription :: Prelude.Maybe InputLambdaProcessorDescription
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InputProcessingConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inputLambdaProcessorDescription', 'inputProcessingConfigurationDescription_inputLambdaProcessorDescription' - Provides configuration information about the associated
+-- InputLambdaProcessorDescription
+newInputProcessingConfigurationDescription ::
+  InputProcessingConfigurationDescription
+newInputProcessingConfigurationDescription =
+  InputProcessingConfigurationDescription'
+    { inputLambdaProcessorDescription =
+        Prelude.Nothing
+    }
+
+-- | Provides configuration information about the associated
+-- InputLambdaProcessorDescription
+inputProcessingConfigurationDescription_inputLambdaProcessorDescription :: Lens.Lens' InputProcessingConfigurationDescription (Prelude.Maybe InputLambdaProcessorDescription)
+inputProcessingConfigurationDescription_inputLambdaProcessorDescription = Lens.lens (\InputProcessingConfigurationDescription' {inputLambdaProcessorDescription} -> inputLambdaProcessorDescription) (\s@InputProcessingConfigurationDescription' {} a -> s {inputLambdaProcessorDescription = a} :: InputProcessingConfigurationDescription)
+
+instance
+  Data.FromJSON
+    InputProcessingConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "InputProcessingConfigurationDescription"
+      ( \x ->
+          InputProcessingConfigurationDescription'
+            Prelude.<$> (x Data..:? "InputLambdaProcessorDescription")
+      )
+
+instance
+  Prelude.Hashable
+    InputProcessingConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    InputProcessingConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` inputLambdaProcessorDescription
+
+instance
+  Prelude.NFData
+    InputProcessingConfigurationDescription
+  where
+  rnf InputProcessingConfigurationDescription' {..} =
+    Prelude.rnf inputLambdaProcessorDescription
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputProcessingConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputProcessingConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputProcessingConfigurationUpdate.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.KinesisAnalyticsV2.Types.InputProcessingConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.InputProcessingConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.InputLambdaProcessorUpdate
+import qualified Amazonka.Prelude as Prelude
+
+-- | For a SQL-based Kinesis Data Analytics application, describes updates to
+-- an InputProcessingConfiguration.
+--
+-- /See:/ 'newInputProcessingConfigurationUpdate' smart constructor.
+data InputProcessingConfigurationUpdate = InputProcessingConfigurationUpdate'
+  { -- | Provides update information for an InputLambdaProcessor.
+    inputLambdaProcessorUpdate :: InputLambdaProcessorUpdate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InputProcessingConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inputLambdaProcessorUpdate', 'inputProcessingConfigurationUpdate_inputLambdaProcessorUpdate' - Provides update information for an InputLambdaProcessor.
+newInputProcessingConfigurationUpdate ::
+  -- | 'inputLambdaProcessorUpdate'
+  InputLambdaProcessorUpdate ->
+  InputProcessingConfigurationUpdate
+newInputProcessingConfigurationUpdate
+  pInputLambdaProcessorUpdate_ =
+    InputProcessingConfigurationUpdate'
+      { inputLambdaProcessorUpdate =
+          pInputLambdaProcessorUpdate_
+      }
+
+-- | Provides update information for an InputLambdaProcessor.
+inputProcessingConfigurationUpdate_inputLambdaProcessorUpdate :: Lens.Lens' InputProcessingConfigurationUpdate InputLambdaProcessorUpdate
+inputProcessingConfigurationUpdate_inputLambdaProcessorUpdate = Lens.lens (\InputProcessingConfigurationUpdate' {inputLambdaProcessorUpdate} -> inputLambdaProcessorUpdate) (\s@InputProcessingConfigurationUpdate' {} a -> s {inputLambdaProcessorUpdate = a} :: InputProcessingConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    InputProcessingConfigurationUpdate
+  where
+  hashWithSalt
+    _salt
+    InputProcessingConfigurationUpdate' {..} =
+      _salt
+        `Prelude.hashWithSalt` inputLambdaProcessorUpdate
+
+instance
+  Prelude.NFData
+    InputProcessingConfigurationUpdate
+  where
+  rnf InputProcessingConfigurationUpdate' {..} =
+    Prelude.rnf inputLambdaProcessorUpdate
+
+instance
+  Data.ToJSON
+    InputProcessingConfigurationUpdate
+  where
+  toJSON InputProcessingConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "InputLambdaProcessorUpdate"
+                  Data..= inputLambdaProcessorUpdate
+              )
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputSchemaUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputSchemaUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputSchemaUpdate.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.KinesisAnalyticsV2.Types.InputSchemaUpdate
+-- 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.KinesisAnalyticsV2.Types.InputSchemaUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.RecordColumn
+import Amazonka.KinesisAnalyticsV2.Types.RecordFormat
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes updates for an SQL-based Kinesis Data Analytics application\'s
+-- input schema.
+--
+-- /See:/ 'newInputSchemaUpdate' smart constructor.
+data InputSchemaUpdate = InputSchemaUpdate'
+  { -- | A list of @RecordColumn@ objects. Each object describes the mapping of
+    -- the streaming source element to the corresponding column in the
+    -- in-application stream.
+    recordColumnUpdates :: Prelude.Maybe (Prelude.NonEmpty RecordColumn),
+    -- | Specifies the encoding of the records in the streaming source; for
+    -- example, UTF-8.
+    recordEncodingUpdate :: Prelude.Maybe Prelude.Text,
+    -- | Specifies the format of the records on the streaming source.
+    recordFormatUpdate :: Prelude.Maybe RecordFormat
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InputSchemaUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'recordColumnUpdates', 'inputSchemaUpdate_recordColumnUpdates' - A list of @RecordColumn@ objects. Each object describes the mapping of
+-- the streaming source element to the corresponding column in the
+-- in-application stream.
+--
+-- 'recordEncodingUpdate', 'inputSchemaUpdate_recordEncodingUpdate' - Specifies the encoding of the records in the streaming source; for
+-- example, UTF-8.
+--
+-- 'recordFormatUpdate', 'inputSchemaUpdate_recordFormatUpdate' - Specifies the format of the records on the streaming source.
+newInputSchemaUpdate ::
+  InputSchemaUpdate
+newInputSchemaUpdate =
+  InputSchemaUpdate'
+    { recordColumnUpdates =
+        Prelude.Nothing,
+      recordEncodingUpdate = Prelude.Nothing,
+      recordFormatUpdate = Prelude.Nothing
+    }
+
+-- | A list of @RecordColumn@ objects. Each object describes the mapping of
+-- the streaming source element to the corresponding column in the
+-- in-application stream.
+inputSchemaUpdate_recordColumnUpdates :: Lens.Lens' InputSchemaUpdate (Prelude.Maybe (Prelude.NonEmpty RecordColumn))
+inputSchemaUpdate_recordColumnUpdates = Lens.lens (\InputSchemaUpdate' {recordColumnUpdates} -> recordColumnUpdates) (\s@InputSchemaUpdate' {} a -> s {recordColumnUpdates = a} :: InputSchemaUpdate) Prelude.. Lens.mapping Lens.coerced
+
+-- | Specifies the encoding of the records in the streaming source; for
+-- example, UTF-8.
+inputSchemaUpdate_recordEncodingUpdate :: Lens.Lens' InputSchemaUpdate (Prelude.Maybe Prelude.Text)
+inputSchemaUpdate_recordEncodingUpdate = Lens.lens (\InputSchemaUpdate' {recordEncodingUpdate} -> recordEncodingUpdate) (\s@InputSchemaUpdate' {} a -> s {recordEncodingUpdate = a} :: InputSchemaUpdate)
+
+-- | Specifies the format of the records on the streaming source.
+inputSchemaUpdate_recordFormatUpdate :: Lens.Lens' InputSchemaUpdate (Prelude.Maybe RecordFormat)
+inputSchemaUpdate_recordFormatUpdate = Lens.lens (\InputSchemaUpdate' {recordFormatUpdate} -> recordFormatUpdate) (\s@InputSchemaUpdate' {} a -> s {recordFormatUpdate = a} :: InputSchemaUpdate)
+
+instance Prelude.Hashable InputSchemaUpdate where
+  hashWithSalt _salt InputSchemaUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` recordColumnUpdates
+      `Prelude.hashWithSalt` recordEncodingUpdate
+      `Prelude.hashWithSalt` recordFormatUpdate
+
+instance Prelude.NFData InputSchemaUpdate where
+  rnf InputSchemaUpdate' {..} =
+    Prelude.rnf recordColumnUpdates
+      `Prelude.seq` Prelude.rnf recordEncodingUpdate
+      `Prelude.seq` Prelude.rnf recordFormatUpdate
+
+instance Data.ToJSON InputSchemaUpdate where
+  toJSON InputSchemaUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("RecordColumnUpdates" Data..=)
+              Prelude.<$> recordColumnUpdates,
+            ("RecordEncodingUpdate" Data..=)
+              Prelude.<$> recordEncodingUpdate,
+            ("RecordFormatUpdate" Data..=)
+              Prelude.<$> recordFormatUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputStartingPosition.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputStartingPosition.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputStartingPosition.hs
@@ -0,0 +1,76 @@
+{-# 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.KinesisAnalyticsV2.Types.InputStartingPosition
+-- 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.KinesisAnalyticsV2.Types.InputStartingPosition
+  ( InputStartingPosition
+      ( ..,
+        InputStartingPosition_LAST_STOPPED_POINT,
+        InputStartingPosition_NOW,
+        InputStartingPosition_TRIM_HORIZON
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype InputStartingPosition = InputStartingPosition'
+  { fromInputStartingPosition ::
+      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 InputStartingPosition_LAST_STOPPED_POINT :: InputStartingPosition
+pattern InputStartingPosition_LAST_STOPPED_POINT = InputStartingPosition' "LAST_STOPPED_POINT"
+
+pattern InputStartingPosition_NOW :: InputStartingPosition
+pattern InputStartingPosition_NOW = InputStartingPosition' "NOW"
+
+pattern InputStartingPosition_TRIM_HORIZON :: InputStartingPosition
+pattern InputStartingPosition_TRIM_HORIZON = InputStartingPosition' "TRIM_HORIZON"
+
+{-# COMPLETE
+  InputStartingPosition_LAST_STOPPED_POINT,
+  InputStartingPosition_NOW,
+  InputStartingPosition_TRIM_HORIZON,
+  InputStartingPosition'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputStartingPositionConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputStartingPositionConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputStartingPositionConfiguration.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.InputStartingPositionConfiguration
+-- 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.KinesisAnalyticsV2.Types.InputStartingPositionConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.InputStartingPosition
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the point at which the application reads from the streaming
+-- source.
+--
+-- /See:/ 'newInputStartingPositionConfiguration' smart constructor.
+data InputStartingPositionConfiguration = InputStartingPositionConfiguration'
+  { -- | The starting position on the stream.
+    --
+    -- -   @NOW@ - Start reading just after the most recent record in the
+    --     stream, and start at the request timestamp that the customer issued.
+    --
+    -- -   @TRIM_HORIZON@ - Start reading at the last untrimmed record in the
+    --     stream, which is the oldest record available in the stream. This
+    --     option is not available for an Amazon Kinesis Data Firehose delivery
+    --     stream.
+    --
+    -- -   @LAST_STOPPED_POINT@ - Resume reading from where the application
+    --     last stopped reading.
+    inputStartingPosition :: Prelude.Maybe InputStartingPosition
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InputStartingPositionConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inputStartingPosition', 'inputStartingPositionConfiguration_inputStartingPosition' - The starting position on the stream.
+--
+-- -   @NOW@ - Start reading just after the most recent record in the
+--     stream, and start at the request timestamp that the customer issued.
+--
+-- -   @TRIM_HORIZON@ - Start reading at the last untrimmed record in the
+--     stream, which is the oldest record available in the stream. This
+--     option is not available for an Amazon Kinesis Data Firehose delivery
+--     stream.
+--
+-- -   @LAST_STOPPED_POINT@ - Resume reading from where the application
+--     last stopped reading.
+newInputStartingPositionConfiguration ::
+  InputStartingPositionConfiguration
+newInputStartingPositionConfiguration =
+  InputStartingPositionConfiguration'
+    { inputStartingPosition =
+        Prelude.Nothing
+    }
+
+-- | The starting position on the stream.
+--
+-- -   @NOW@ - Start reading just after the most recent record in the
+--     stream, and start at the request timestamp that the customer issued.
+--
+-- -   @TRIM_HORIZON@ - Start reading at the last untrimmed record in the
+--     stream, which is the oldest record available in the stream. This
+--     option is not available for an Amazon Kinesis Data Firehose delivery
+--     stream.
+--
+-- -   @LAST_STOPPED_POINT@ - Resume reading from where the application
+--     last stopped reading.
+inputStartingPositionConfiguration_inputStartingPosition :: Lens.Lens' InputStartingPositionConfiguration (Prelude.Maybe InputStartingPosition)
+inputStartingPositionConfiguration_inputStartingPosition = Lens.lens (\InputStartingPositionConfiguration' {inputStartingPosition} -> inputStartingPosition) (\s@InputStartingPositionConfiguration' {} a -> s {inputStartingPosition = a} :: InputStartingPositionConfiguration)
+
+instance
+  Data.FromJSON
+    InputStartingPositionConfiguration
+  where
+  parseJSON =
+    Data.withObject
+      "InputStartingPositionConfiguration"
+      ( \x ->
+          InputStartingPositionConfiguration'
+            Prelude.<$> (x Data..:? "InputStartingPosition")
+      )
+
+instance
+  Prelude.Hashable
+    InputStartingPositionConfiguration
+  where
+  hashWithSalt
+    _salt
+    InputStartingPositionConfiguration' {..} =
+      _salt `Prelude.hashWithSalt` inputStartingPosition
+
+instance
+  Prelude.NFData
+    InputStartingPositionConfiguration
+  where
+  rnf InputStartingPositionConfiguration' {..} =
+    Prelude.rnf inputStartingPosition
+
+instance
+  Data.ToJSON
+    InputStartingPositionConfiguration
+  where
+  toJSON InputStartingPositionConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("InputStartingPosition" Data..=)
+              Prelude.<$> inputStartingPosition
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/InputUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/InputUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/InputUpdate.hs
@@ -0,0 +1,177 @@
+{-# 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.KinesisAnalyticsV2.Types.InputUpdate
+-- 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.KinesisAnalyticsV2.Types.InputUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.InputParallelismUpdate
+import Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.InputSchemaUpdate
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInputUpdate
+import qualified Amazonka.Prelude as Prelude
+
+-- | For a SQL-based Kinesis Data Analytics application, describes updates to
+-- a specific input configuration (identified by the @InputId@ of an
+-- application).
+--
+-- /See:/ 'newInputUpdate' smart constructor.
+data InputUpdate = InputUpdate'
+  { -- | Describes the parallelism updates (the number of in-application streams
+    -- Kinesis Data Analytics creates for the specific streaming source).
+    inputParallelismUpdate :: Prelude.Maybe InputParallelismUpdate,
+    -- | Describes updates to an InputProcessingConfiguration.
+    inputProcessingConfigurationUpdate :: Prelude.Maybe InputProcessingConfigurationUpdate,
+    -- | Describes the data format on the streaming source, and how record
+    -- elements on the streaming source map to columns of the in-application
+    -- stream that is created.
+    inputSchemaUpdate :: Prelude.Maybe InputSchemaUpdate,
+    -- | If a Kinesis Data Firehose delivery stream is the streaming source to be
+    -- updated, provides an updated stream ARN.
+    kinesisFirehoseInputUpdate :: Prelude.Maybe KinesisFirehoseInputUpdate,
+    -- | If a Kinesis data stream is the streaming source to be updated, provides
+    -- an updated stream Amazon Resource Name (ARN).
+    kinesisStreamsInputUpdate :: Prelude.Maybe KinesisStreamsInputUpdate,
+    -- | The name prefix for in-application streams that Kinesis Data Analytics
+    -- creates for the specific streaming source.
+    namePrefixUpdate :: Prelude.Maybe Prelude.Text,
+    -- | The input ID of the application input to be updated.
+    inputId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InputUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inputParallelismUpdate', 'inputUpdate_inputParallelismUpdate' - Describes the parallelism updates (the number of in-application streams
+-- Kinesis Data Analytics creates for the specific streaming source).
+--
+-- 'inputProcessingConfigurationUpdate', 'inputUpdate_inputProcessingConfigurationUpdate' - Describes updates to an InputProcessingConfiguration.
+--
+-- 'inputSchemaUpdate', 'inputUpdate_inputSchemaUpdate' - Describes the data format on the streaming source, and how record
+-- elements on the streaming source map to columns of the in-application
+-- stream that is created.
+--
+-- 'kinesisFirehoseInputUpdate', 'inputUpdate_kinesisFirehoseInputUpdate' - If a Kinesis Data Firehose delivery stream is the streaming source to be
+-- updated, provides an updated stream ARN.
+--
+-- 'kinesisStreamsInputUpdate', 'inputUpdate_kinesisStreamsInputUpdate' - If a Kinesis data stream is the streaming source to be updated, provides
+-- an updated stream Amazon Resource Name (ARN).
+--
+-- 'namePrefixUpdate', 'inputUpdate_namePrefixUpdate' - The name prefix for in-application streams that Kinesis Data Analytics
+-- creates for the specific streaming source.
+--
+-- 'inputId', 'inputUpdate_inputId' - The input ID of the application input to be updated.
+newInputUpdate ::
+  -- | 'inputId'
+  Prelude.Text ->
+  InputUpdate
+newInputUpdate pInputId_ =
+  InputUpdate'
+    { inputParallelismUpdate =
+        Prelude.Nothing,
+      inputProcessingConfigurationUpdate = Prelude.Nothing,
+      inputSchemaUpdate = Prelude.Nothing,
+      kinesisFirehoseInputUpdate = Prelude.Nothing,
+      kinesisStreamsInputUpdate = Prelude.Nothing,
+      namePrefixUpdate = Prelude.Nothing,
+      inputId = pInputId_
+    }
+
+-- | Describes the parallelism updates (the number of in-application streams
+-- Kinesis Data Analytics creates for the specific streaming source).
+inputUpdate_inputParallelismUpdate :: Lens.Lens' InputUpdate (Prelude.Maybe InputParallelismUpdate)
+inputUpdate_inputParallelismUpdate = Lens.lens (\InputUpdate' {inputParallelismUpdate} -> inputParallelismUpdate) (\s@InputUpdate' {} a -> s {inputParallelismUpdate = a} :: InputUpdate)
+
+-- | Describes updates to an InputProcessingConfiguration.
+inputUpdate_inputProcessingConfigurationUpdate :: Lens.Lens' InputUpdate (Prelude.Maybe InputProcessingConfigurationUpdate)
+inputUpdate_inputProcessingConfigurationUpdate = Lens.lens (\InputUpdate' {inputProcessingConfigurationUpdate} -> inputProcessingConfigurationUpdate) (\s@InputUpdate' {} a -> s {inputProcessingConfigurationUpdate = a} :: InputUpdate)
+
+-- | Describes the data format on the streaming source, and how record
+-- elements on the streaming source map to columns of the in-application
+-- stream that is created.
+inputUpdate_inputSchemaUpdate :: Lens.Lens' InputUpdate (Prelude.Maybe InputSchemaUpdate)
+inputUpdate_inputSchemaUpdate = Lens.lens (\InputUpdate' {inputSchemaUpdate} -> inputSchemaUpdate) (\s@InputUpdate' {} a -> s {inputSchemaUpdate = a} :: InputUpdate)
+
+-- | If a Kinesis Data Firehose delivery stream is the streaming source to be
+-- updated, provides an updated stream ARN.
+inputUpdate_kinesisFirehoseInputUpdate :: Lens.Lens' InputUpdate (Prelude.Maybe KinesisFirehoseInputUpdate)
+inputUpdate_kinesisFirehoseInputUpdate = Lens.lens (\InputUpdate' {kinesisFirehoseInputUpdate} -> kinesisFirehoseInputUpdate) (\s@InputUpdate' {} a -> s {kinesisFirehoseInputUpdate = a} :: InputUpdate)
+
+-- | If a Kinesis data stream is the streaming source to be updated, provides
+-- an updated stream Amazon Resource Name (ARN).
+inputUpdate_kinesisStreamsInputUpdate :: Lens.Lens' InputUpdate (Prelude.Maybe KinesisStreamsInputUpdate)
+inputUpdate_kinesisStreamsInputUpdate = Lens.lens (\InputUpdate' {kinesisStreamsInputUpdate} -> kinesisStreamsInputUpdate) (\s@InputUpdate' {} a -> s {kinesisStreamsInputUpdate = a} :: InputUpdate)
+
+-- | The name prefix for in-application streams that Kinesis Data Analytics
+-- creates for the specific streaming source.
+inputUpdate_namePrefixUpdate :: Lens.Lens' InputUpdate (Prelude.Maybe Prelude.Text)
+inputUpdate_namePrefixUpdate = Lens.lens (\InputUpdate' {namePrefixUpdate} -> namePrefixUpdate) (\s@InputUpdate' {} a -> s {namePrefixUpdate = a} :: InputUpdate)
+
+-- | The input ID of the application input to be updated.
+inputUpdate_inputId :: Lens.Lens' InputUpdate Prelude.Text
+inputUpdate_inputId = Lens.lens (\InputUpdate' {inputId} -> inputId) (\s@InputUpdate' {} a -> s {inputId = a} :: InputUpdate)
+
+instance Prelude.Hashable InputUpdate where
+  hashWithSalt _salt InputUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` inputParallelismUpdate
+      `Prelude.hashWithSalt` inputProcessingConfigurationUpdate
+      `Prelude.hashWithSalt` inputSchemaUpdate
+      `Prelude.hashWithSalt` kinesisFirehoseInputUpdate
+      `Prelude.hashWithSalt` kinesisStreamsInputUpdate
+      `Prelude.hashWithSalt` namePrefixUpdate
+      `Prelude.hashWithSalt` inputId
+
+instance Prelude.NFData InputUpdate where
+  rnf InputUpdate' {..} =
+    Prelude.rnf inputParallelismUpdate
+      `Prelude.seq` Prelude.rnf inputProcessingConfigurationUpdate
+      `Prelude.seq` Prelude.rnf inputSchemaUpdate
+      `Prelude.seq` Prelude.rnf kinesisFirehoseInputUpdate
+      `Prelude.seq` Prelude.rnf kinesisStreamsInputUpdate
+      `Prelude.seq` Prelude.rnf namePrefixUpdate
+      `Prelude.seq` Prelude.rnf inputId
+
+instance Data.ToJSON InputUpdate where
+  toJSON InputUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("InputParallelismUpdate" Data..=)
+              Prelude.<$> inputParallelismUpdate,
+            ("InputProcessingConfigurationUpdate" Data..=)
+              Prelude.<$> inputProcessingConfigurationUpdate,
+            ("InputSchemaUpdate" Data..=)
+              Prelude.<$> inputSchemaUpdate,
+            ("KinesisFirehoseInputUpdate" Data..=)
+              Prelude.<$> kinesisFirehoseInputUpdate,
+            ("KinesisStreamsInputUpdate" Data..=)
+              Prelude.<$> kinesisStreamsInputUpdate,
+            ("NamePrefixUpdate" Data..=)
+              Prelude.<$> namePrefixUpdate,
+            Prelude.Just ("InputId" Data..= inputId)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/JSONMappingParameters.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/JSONMappingParameters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/JSONMappingParameters.hs
@@ -0,0 +1,85 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.JSONMappingParameters
+-- 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.KinesisAnalyticsV2.Types.JSONMappingParameters 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
+
+-- | For a SQL-based Kinesis Data Analytics application, provides additional
+-- mapping information when JSON is the record format on the streaming
+-- source.
+--
+-- /See:/ 'newJSONMappingParameters' smart constructor.
+data JSONMappingParameters = JSONMappingParameters'
+  { -- | The path to the top-level parent that contains the records.
+    recordRowPath :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'JSONMappingParameters' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'recordRowPath', 'jSONMappingParameters_recordRowPath' - The path to the top-level parent that contains the records.
+newJSONMappingParameters ::
+  -- | 'recordRowPath'
+  Prelude.Text ->
+  JSONMappingParameters
+newJSONMappingParameters pRecordRowPath_ =
+  JSONMappingParameters'
+    { recordRowPath =
+        pRecordRowPath_
+    }
+
+-- | The path to the top-level parent that contains the records.
+jSONMappingParameters_recordRowPath :: Lens.Lens' JSONMappingParameters Prelude.Text
+jSONMappingParameters_recordRowPath = Lens.lens (\JSONMappingParameters' {recordRowPath} -> recordRowPath) (\s@JSONMappingParameters' {} a -> s {recordRowPath = a} :: JSONMappingParameters)
+
+instance Data.FromJSON JSONMappingParameters where
+  parseJSON =
+    Data.withObject
+      "JSONMappingParameters"
+      ( \x ->
+          JSONMappingParameters'
+            Prelude.<$> (x Data..: "RecordRowPath")
+      )
+
+instance Prelude.Hashable JSONMappingParameters where
+  hashWithSalt _salt JSONMappingParameters' {..} =
+    _salt `Prelude.hashWithSalt` recordRowPath
+
+instance Prelude.NFData JSONMappingParameters where
+  rnf JSONMappingParameters' {..} =
+    Prelude.rnf recordRowPath
+
+instance Data.ToJSON JSONMappingParameters where
+  toJSON JSONMappingParameters' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("RecordRowPath" Data..= recordRowPath)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseInput.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseInput.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseInput.hs
@@ -0,0 +1,71 @@
+{-# 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.KinesisAnalyticsV2.Types.KinesisFirehoseInput
+-- 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.KinesisAnalyticsV2.Types.KinesisFirehoseInput 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
+
+-- | For a SQL-based Kinesis Data Analytics application, identifies a Kinesis
+-- Data Firehose delivery stream as the streaming source. You provide the
+-- delivery stream\'s Amazon Resource Name (ARN).
+--
+-- /See:/ 'newKinesisFirehoseInput' smart constructor.
+data KinesisFirehoseInput = KinesisFirehoseInput'
+  { -- | The Amazon Resource Name (ARN) of the delivery stream.
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'KinesisFirehoseInput' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARN', 'kinesisFirehoseInput_resourceARN' - The Amazon Resource Name (ARN) of the delivery stream.
+newKinesisFirehoseInput ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  KinesisFirehoseInput
+newKinesisFirehoseInput pResourceARN_ =
+  KinesisFirehoseInput' {resourceARN = pResourceARN_}
+
+-- | The Amazon Resource Name (ARN) of the delivery stream.
+kinesisFirehoseInput_resourceARN :: Lens.Lens' KinesisFirehoseInput Prelude.Text
+kinesisFirehoseInput_resourceARN = Lens.lens (\KinesisFirehoseInput' {resourceARN} -> resourceARN) (\s@KinesisFirehoseInput' {} a -> s {resourceARN = a} :: KinesisFirehoseInput)
+
+instance Prelude.Hashable KinesisFirehoseInput where
+  hashWithSalt _salt KinesisFirehoseInput' {..} =
+    _salt `Prelude.hashWithSalt` resourceARN
+
+instance Prelude.NFData KinesisFirehoseInput where
+  rnf KinesisFirehoseInput' {..} =
+    Prelude.rnf resourceARN
+
+instance Data.ToJSON KinesisFirehoseInput where
+  toJSON KinesisFirehoseInput' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("ResourceARN" Data..= resourceARN)]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseInputDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseInputDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseInputDescription.hs
@@ -0,0 +1,115 @@
+{-# 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.KinesisAnalyticsV2.Types.KinesisFirehoseInputDescription
+-- 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.KinesisAnalyticsV2.Types.KinesisFirehoseInputDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the Amazon Kinesis Data Firehose delivery stream that is
+-- configured as the streaming source in the application input
+-- configuration.
+--
+-- /See:/ 'newKinesisFirehoseInputDescription' smart constructor.
+data KinesisFirehoseInputDescription = KinesisFirehoseInputDescription'
+  { -- | The ARN of the IAM role that Kinesis Data Analytics assumes to access
+    -- the stream.
+    --
+    -- Provided for backward compatibility. Applications that are created with
+    -- the current API version have an application-level service execution role
+    -- rather than a resource-level role.
+    roleARN :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the delivery stream.
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'KinesisFirehoseInputDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'roleARN', 'kinesisFirehoseInputDescription_roleARN' - The ARN of the IAM role that Kinesis Data Analytics assumes to access
+-- the stream.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+--
+-- 'resourceARN', 'kinesisFirehoseInputDescription_resourceARN' - The Amazon Resource Name (ARN) of the delivery stream.
+newKinesisFirehoseInputDescription ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  KinesisFirehoseInputDescription
+newKinesisFirehoseInputDescription pResourceARN_ =
+  KinesisFirehoseInputDescription'
+    { roleARN =
+        Prelude.Nothing,
+      resourceARN = pResourceARN_
+    }
+
+-- | The ARN of the IAM role that Kinesis Data Analytics assumes to access
+-- the stream.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+kinesisFirehoseInputDescription_roleARN :: Lens.Lens' KinesisFirehoseInputDescription (Prelude.Maybe Prelude.Text)
+kinesisFirehoseInputDescription_roleARN = Lens.lens (\KinesisFirehoseInputDescription' {roleARN} -> roleARN) (\s@KinesisFirehoseInputDescription' {} a -> s {roleARN = a} :: KinesisFirehoseInputDescription)
+
+-- | The Amazon Resource Name (ARN) of the delivery stream.
+kinesisFirehoseInputDescription_resourceARN :: Lens.Lens' KinesisFirehoseInputDescription Prelude.Text
+kinesisFirehoseInputDescription_resourceARN = Lens.lens (\KinesisFirehoseInputDescription' {resourceARN} -> resourceARN) (\s@KinesisFirehoseInputDescription' {} a -> s {resourceARN = a} :: KinesisFirehoseInputDescription)
+
+instance
+  Data.FromJSON
+    KinesisFirehoseInputDescription
+  where
+  parseJSON =
+    Data.withObject
+      "KinesisFirehoseInputDescription"
+      ( \x ->
+          KinesisFirehoseInputDescription'
+            Prelude.<$> (x Data..:? "RoleARN")
+            Prelude.<*> (x Data..: "ResourceARN")
+      )
+
+instance
+  Prelude.Hashable
+    KinesisFirehoseInputDescription
+  where
+  hashWithSalt
+    _salt
+    KinesisFirehoseInputDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` roleARN
+        `Prelude.hashWithSalt` resourceARN
+
+instance
+  Prelude.NFData
+    KinesisFirehoseInputDescription
+  where
+  rnf KinesisFirehoseInputDescription' {..} =
+    Prelude.rnf roleARN
+      `Prelude.seq` Prelude.rnf resourceARN
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseInputUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseInputUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseInputUpdate.hs
@@ -0,0 +1,76 @@
+{-# 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.KinesisAnalyticsV2.Types.KinesisFirehoseInputUpdate
+-- 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.KinesisAnalyticsV2.Types.KinesisFirehoseInputUpdate 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
+
+-- | For a SQL-based Kinesis Data Analytics application, when updating
+-- application input configuration, provides information about a Kinesis
+-- Data Firehose delivery stream as the streaming source.
+--
+-- /See:/ 'newKinesisFirehoseInputUpdate' smart constructor.
+data KinesisFirehoseInputUpdate = KinesisFirehoseInputUpdate'
+  { -- | The Amazon Resource Name (ARN) of the input delivery stream to read.
+    resourceARNUpdate :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'KinesisFirehoseInputUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARNUpdate', 'kinesisFirehoseInputUpdate_resourceARNUpdate' - The Amazon Resource Name (ARN) of the input delivery stream to read.
+newKinesisFirehoseInputUpdate ::
+  -- | 'resourceARNUpdate'
+  Prelude.Text ->
+  KinesisFirehoseInputUpdate
+newKinesisFirehoseInputUpdate pResourceARNUpdate_ =
+  KinesisFirehoseInputUpdate'
+    { resourceARNUpdate =
+        pResourceARNUpdate_
+    }
+
+-- | The Amazon Resource Name (ARN) of the input delivery stream to read.
+kinesisFirehoseInputUpdate_resourceARNUpdate :: Lens.Lens' KinesisFirehoseInputUpdate Prelude.Text
+kinesisFirehoseInputUpdate_resourceARNUpdate = Lens.lens (\KinesisFirehoseInputUpdate' {resourceARNUpdate} -> resourceARNUpdate) (\s@KinesisFirehoseInputUpdate' {} a -> s {resourceARNUpdate = a} :: KinesisFirehoseInputUpdate)
+
+instance Prelude.Hashable KinesisFirehoseInputUpdate where
+  hashWithSalt _salt KinesisFirehoseInputUpdate' {..} =
+    _salt `Prelude.hashWithSalt` resourceARNUpdate
+
+instance Prelude.NFData KinesisFirehoseInputUpdate where
+  rnf KinesisFirehoseInputUpdate' {..} =
+    Prelude.rnf resourceARNUpdate
+
+instance Data.ToJSON KinesisFirehoseInputUpdate where
+  toJSON KinesisFirehoseInputUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ResourceARNUpdate" Data..= resourceARNUpdate)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseOutput.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseOutput.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseOutput.hs
@@ -0,0 +1,72 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutput
+-- 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.KinesisAnalyticsV2.Types.KinesisFirehoseOutput 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
+
+-- | For a SQL-based Kinesis Data Analytics application, when configuring
+-- application output, identifies a Kinesis Data Firehose delivery stream
+-- as the destination. You provide the stream Amazon Resource Name (ARN) of
+-- the delivery stream.
+--
+-- /See:/ 'newKinesisFirehoseOutput' smart constructor.
+data KinesisFirehoseOutput = KinesisFirehoseOutput'
+  { -- | The ARN of the destination delivery stream to write to.
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'KinesisFirehoseOutput' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARN', 'kinesisFirehoseOutput_resourceARN' - The ARN of the destination delivery stream to write to.
+newKinesisFirehoseOutput ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  KinesisFirehoseOutput
+newKinesisFirehoseOutput pResourceARN_ =
+  KinesisFirehoseOutput' {resourceARN = pResourceARN_}
+
+-- | The ARN of the destination delivery stream to write to.
+kinesisFirehoseOutput_resourceARN :: Lens.Lens' KinesisFirehoseOutput Prelude.Text
+kinesisFirehoseOutput_resourceARN = Lens.lens (\KinesisFirehoseOutput' {resourceARN} -> resourceARN) (\s@KinesisFirehoseOutput' {} a -> s {resourceARN = a} :: KinesisFirehoseOutput)
+
+instance Prelude.Hashable KinesisFirehoseOutput where
+  hashWithSalt _salt KinesisFirehoseOutput' {..} =
+    _salt `Prelude.hashWithSalt` resourceARN
+
+instance Prelude.NFData KinesisFirehoseOutput where
+  rnf KinesisFirehoseOutput' {..} =
+    Prelude.rnf resourceARN
+
+instance Data.ToJSON KinesisFirehoseOutput where
+  toJSON KinesisFirehoseOutput' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("ResourceARN" Data..= resourceARN)]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseOutputDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseOutputDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseOutputDescription.hs
@@ -0,0 +1,115 @@
+{-# 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.KinesisAnalyticsV2.Types.KinesisFirehoseOutputDescription
+-- 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.KinesisAnalyticsV2.Types.KinesisFirehoseOutputDescription 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
+
+-- | For a SQL-based Kinesis Data Analytics application\'s output, describes
+-- the Kinesis Data Firehose delivery stream that is configured as its
+-- destination.
+--
+-- /See:/ 'newKinesisFirehoseOutputDescription' smart constructor.
+data KinesisFirehoseOutputDescription = KinesisFirehoseOutputDescription'
+  { -- | The ARN of the IAM role that Kinesis Data Analytics can assume to access
+    -- the stream.
+    --
+    -- Provided for backward compatibility. Applications that are created with
+    -- the current API version have an application-level service execution role
+    -- rather than a resource-level role.
+    roleARN :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the delivery stream.
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'KinesisFirehoseOutputDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'roleARN', 'kinesisFirehoseOutputDescription_roleARN' - The ARN of the IAM role that Kinesis Data Analytics can assume to access
+-- the stream.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+--
+-- 'resourceARN', 'kinesisFirehoseOutputDescription_resourceARN' - The Amazon Resource Name (ARN) of the delivery stream.
+newKinesisFirehoseOutputDescription ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  KinesisFirehoseOutputDescription
+newKinesisFirehoseOutputDescription pResourceARN_ =
+  KinesisFirehoseOutputDescription'
+    { roleARN =
+        Prelude.Nothing,
+      resourceARN = pResourceARN_
+    }
+
+-- | The ARN of the IAM role that Kinesis Data Analytics can assume to access
+-- the stream.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+kinesisFirehoseOutputDescription_roleARN :: Lens.Lens' KinesisFirehoseOutputDescription (Prelude.Maybe Prelude.Text)
+kinesisFirehoseOutputDescription_roleARN = Lens.lens (\KinesisFirehoseOutputDescription' {roleARN} -> roleARN) (\s@KinesisFirehoseOutputDescription' {} a -> s {roleARN = a} :: KinesisFirehoseOutputDescription)
+
+-- | The Amazon Resource Name (ARN) of the delivery stream.
+kinesisFirehoseOutputDescription_resourceARN :: Lens.Lens' KinesisFirehoseOutputDescription Prelude.Text
+kinesisFirehoseOutputDescription_resourceARN = Lens.lens (\KinesisFirehoseOutputDescription' {resourceARN} -> resourceARN) (\s@KinesisFirehoseOutputDescription' {} a -> s {resourceARN = a} :: KinesisFirehoseOutputDescription)
+
+instance
+  Data.FromJSON
+    KinesisFirehoseOutputDescription
+  where
+  parseJSON =
+    Data.withObject
+      "KinesisFirehoseOutputDescription"
+      ( \x ->
+          KinesisFirehoseOutputDescription'
+            Prelude.<$> (x Data..:? "RoleARN")
+            Prelude.<*> (x Data..: "ResourceARN")
+      )
+
+instance
+  Prelude.Hashable
+    KinesisFirehoseOutputDescription
+  where
+  hashWithSalt
+    _salt
+    KinesisFirehoseOutputDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` roleARN
+        `Prelude.hashWithSalt` resourceARN
+
+instance
+  Prelude.NFData
+    KinesisFirehoseOutputDescription
+  where
+  rnf KinesisFirehoseOutputDescription' {..} =
+    Prelude.rnf roleARN
+      `Prelude.seq` Prelude.rnf resourceARN
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseOutputUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseOutputUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisFirehoseOutputUpdate.hs
@@ -0,0 +1,77 @@
+{-# 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.KinesisAnalyticsV2.Types.KinesisFirehoseOutputUpdate
+-- 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.KinesisAnalyticsV2.Types.KinesisFirehoseOutputUpdate 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
+
+-- | For a SQL-based Kinesis Data Analytics application, when updating an
+-- output configuration using the UpdateApplication operation, provides
+-- information about a Kinesis Data Firehose delivery stream that is
+-- configured as the destination.
+--
+-- /See:/ 'newKinesisFirehoseOutputUpdate' smart constructor.
+data KinesisFirehoseOutputUpdate = KinesisFirehoseOutputUpdate'
+  { -- | The Amazon Resource Name (ARN) of the delivery stream to write to.
+    resourceARNUpdate :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'KinesisFirehoseOutputUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARNUpdate', 'kinesisFirehoseOutputUpdate_resourceARNUpdate' - The Amazon Resource Name (ARN) of the delivery stream to write to.
+newKinesisFirehoseOutputUpdate ::
+  -- | 'resourceARNUpdate'
+  Prelude.Text ->
+  KinesisFirehoseOutputUpdate
+newKinesisFirehoseOutputUpdate pResourceARNUpdate_ =
+  KinesisFirehoseOutputUpdate'
+    { resourceARNUpdate =
+        pResourceARNUpdate_
+    }
+
+-- | The Amazon Resource Name (ARN) of the delivery stream to write to.
+kinesisFirehoseOutputUpdate_resourceARNUpdate :: Lens.Lens' KinesisFirehoseOutputUpdate Prelude.Text
+kinesisFirehoseOutputUpdate_resourceARNUpdate = Lens.lens (\KinesisFirehoseOutputUpdate' {resourceARNUpdate} -> resourceARNUpdate) (\s@KinesisFirehoseOutputUpdate' {} a -> s {resourceARNUpdate = a} :: KinesisFirehoseOutputUpdate)
+
+instance Prelude.Hashable KinesisFirehoseOutputUpdate where
+  hashWithSalt _salt KinesisFirehoseOutputUpdate' {..} =
+    _salt `Prelude.hashWithSalt` resourceARNUpdate
+
+instance Prelude.NFData KinesisFirehoseOutputUpdate where
+  rnf KinesisFirehoseOutputUpdate' {..} =
+    Prelude.rnf resourceARNUpdate
+
+instance Data.ToJSON KinesisFirehoseOutputUpdate where
+  toJSON KinesisFirehoseOutputUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ResourceARNUpdate" Data..= resourceARNUpdate)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsInput.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsInput.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsInput.hs
@@ -0,0 +1,70 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInput
+-- 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.KinesisAnalyticsV2.Types.KinesisStreamsInput 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
+
+-- | Identifies a Kinesis data stream as the streaming source. You provide
+-- the stream\'s Amazon Resource Name (ARN).
+--
+-- /See:/ 'newKinesisStreamsInput' smart constructor.
+data KinesisStreamsInput = KinesisStreamsInput'
+  { -- | The ARN of the input Kinesis data stream to read.
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'KinesisStreamsInput' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARN', 'kinesisStreamsInput_resourceARN' - The ARN of the input Kinesis data stream to read.
+newKinesisStreamsInput ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  KinesisStreamsInput
+newKinesisStreamsInput pResourceARN_ =
+  KinesisStreamsInput' {resourceARN = pResourceARN_}
+
+-- | The ARN of the input Kinesis data stream to read.
+kinesisStreamsInput_resourceARN :: Lens.Lens' KinesisStreamsInput Prelude.Text
+kinesisStreamsInput_resourceARN = Lens.lens (\KinesisStreamsInput' {resourceARN} -> resourceARN) (\s@KinesisStreamsInput' {} a -> s {resourceARN = a} :: KinesisStreamsInput)
+
+instance Prelude.Hashable KinesisStreamsInput where
+  hashWithSalt _salt KinesisStreamsInput' {..} =
+    _salt `Prelude.hashWithSalt` resourceARN
+
+instance Prelude.NFData KinesisStreamsInput where
+  rnf KinesisStreamsInput' {..} =
+    Prelude.rnf resourceARN
+
+instance Data.ToJSON KinesisStreamsInput where
+  toJSON KinesisStreamsInput' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("ResourceARN" Data..= resourceARN)]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsInputDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsInputDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsInputDescription.hs
@@ -0,0 +1,112 @@
+{-# 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.KinesisAnalyticsV2.Types.KinesisStreamsInputDescription
+-- 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.KinesisAnalyticsV2.Types.KinesisStreamsInputDescription 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
+
+-- | For a SQL-based Kinesis Data Analytics application, describes the
+-- Kinesis data stream that is configured as the streaming source in the
+-- application input configuration.
+--
+-- /See:/ 'newKinesisStreamsInputDescription' smart constructor.
+data KinesisStreamsInputDescription = KinesisStreamsInputDescription'
+  { -- | The ARN of the IAM role that Kinesis Data Analytics can assume to access
+    -- the stream.
+    --
+    -- Provided for backward compatibility. Applications that are created with
+    -- the current API version have an application-level service execution role
+    -- rather than a resource-level role.
+    roleARN :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the Kinesis data stream.
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'KinesisStreamsInputDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'roleARN', 'kinesisStreamsInputDescription_roleARN' - The ARN of the IAM role that Kinesis Data Analytics can assume to access
+-- the stream.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+--
+-- 'resourceARN', 'kinesisStreamsInputDescription_resourceARN' - The Amazon Resource Name (ARN) of the Kinesis data stream.
+newKinesisStreamsInputDescription ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  KinesisStreamsInputDescription
+newKinesisStreamsInputDescription pResourceARN_ =
+  KinesisStreamsInputDescription'
+    { roleARN =
+        Prelude.Nothing,
+      resourceARN = pResourceARN_
+    }
+
+-- | The ARN of the IAM role that Kinesis Data Analytics can assume to access
+-- the stream.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+kinesisStreamsInputDescription_roleARN :: Lens.Lens' KinesisStreamsInputDescription (Prelude.Maybe Prelude.Text)
+kinesisStreamsInputDescription_roleARN = Lens.lens (\KinesisStreamsInputDescription' {roleARN} -> roleARN) (\s@KinesisStreamsInputDescription' {} a -> s {roleARN = a} :: KinesisStreamsInputDescription)
+
+-- | The Amazon Resource Name (ARN) of the Kinesis data stream.
+kinesisStreamsInputDescription_resourceARN :: Lens.Lens' KinesisStreamsInputDescription Prelude.Text
+kinesisStreamsInputDescription_resourceARN = Lens.lens (\KinesisStreamsInputDescription' {resourceARN} -> resourceARN) (\s@KinesisStreamsInputDescription' {} a -> s {resourceARN = a} :: KinesisStreamsInputDescription)
+
+instance Data.FromJSON KinesisStreamsInputDescription where
+  parseJSON =
+    Data.withObject
+      "KinesisStreamsInputDescription"
+      ( \x ->
+          KinesisStreamsInputDescription'
+            Prelude.<$> (x Data..:? "RoleARN")
+            Prelude.<*> (x Data..: "ResourceARN")
+      )
+
+instance
+  Prelude.Hashable
+    KinesisStreamsInputDescription
+  where
+  hashWithSalt
+    _salt
+    KinesisStreamsInputDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` roleARN
+        `Prelude.hashWithSalt` resourceARN
+
+instance
+  Prelude.NFData
+    KinesisStreamsInputDescription
+  where
+  rnf KinesisStreamsInputDescription' {..} =
+    Prelude.rnf roleARN
+      `Prelude.seq` Prelude.rnf resourceARN
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsInputUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsInputUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsInputUpdate.hs
@@ -0,0 +1,76 @@
+{-# 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.KinesisAnalyticsV2.Types.KinesisStreamsInputUpdate
+-- 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.KinesisAnalyticsV2.Types.KinesisStreamsInputUpdate 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
+
+-- | When you update the input configuration for a SQL-based Kinesis Data
+-- Analytics application, provides information about a Kinesis stream as
+-- the streaming source.
+--
+-- /See:/ 'newKinesisStreamsInputUpdate' smart constructor.
+data KinesisStreamsInputUpdate = KinesisStreamsInputUpdate'
+  { -- | The Amazon Resource Name (ARN) of the input Kinesis data stream to read.
+    resourceARNUpdate :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'KinesisStreamsInputUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARNUpdate', 'kinesisStreamsInputUpdate_resourceARNUpdate' - The Amazon Resource Name (ARN) of the input Kinesis data stream to read.
+newKinesisStreamsInputUpdate ::
+  -- | 'resourceARNUpdate'
+  Prelude.Text ->
+  KinesisStreamsInputUpdate
+newKinesisStreamsInputUpdate pResourceARNUpdate_ =
+  KinesisStreamsInputUpdate'
+    { resourceARNUpdate =
+        pResourceARNUpdate_
+    }
+
+-- | The Amazon Resource Name (ARN) of the input Kinesis data stream to read.
+kinesisStreamsInputUpdate_resourceARNUpdate :: Lens.Lens' KinesisStreamsInputUpdate Prelude.Text
+kinesisStreamsInputUpdate_resourceARNUpdate = Lens.lens (\KinesisStreamsInputUpdate' {resourceARNUpdate} -> resourceARNUpdate) (\s@KinesisStreamsInputUpdate' {} a -> s {resourceARNUpdate = a} :: KinesisStreamsInputUpdate)
+
+instance Prelude.Hashable KinesisStreamsInputUpdate where
+  hashWithSalt _salt KinesisStreamsInputUpdate' {..} =
+    _salt `Prelude.hashWithSalt` resourceARNUpdate
+
+instance Prelude.NFData KinesisStreamsInputUpdate where
+  rnf KinesisStreamsInputUpdate' {..} =
+    Prelude.rnf resourceARNUpdate
+
+instance Data.ToJSON KinesisStreamsInputUpdate where
+  toJSON KinesisStreamsInputUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ResourceARNUpdate" Data..= resourceARNUpdate)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsOutput.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsOutput.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsOutput.hs
@@ -0,0 +1,71 @@
+{-# 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.KinesisAnalyticsV2.Types.KinesisStreamsOutput
+-- 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.KinesisAnalyticsV2.Types.KinesisStreamsOutput 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
+
+-- | When you configure a SQL-based Kinesis Data Analytics application\'s
+-- output, identifies a Kinesis data stream as the destination. You provide
+-- the stream Amazon Resource Name (ARN).
+--
+-- /See:/ 'newKinesisStreamsOutput' smart constructor.
+data KinesisStreamsOutput = KinesisStreamsOutput'
+  { -- | The ARN of the destination Kinesis data stream to write to.
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'KinesisStreamsOutput' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARN', 'kinesisStreamsOutput_resourceARN' - The ARN of the destination Kinesis data stream to write to.
+newKinesisStreamsOutput ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  KinesisStreamsOutput
+newKinesisStreamsOutput pResourceARN_ =
+  KinesisStreamsOutput' {resourceARN = pResourceARN_}
+
+-- | The ARN of the destination Kinesis data stream to write to.
+kinesisStreamsOutput_resourceARN :: Lens.Lens' KinesisStreamsOutput Prelude.Text
+kinesisStreamsOutput_resourceARN = Lens.lens (\KinesisStreamsOutput' {resourceARN} -> resourceARN) (\s@KinesisStreamsOutput' {} a -> s {resourceARN = a} :: KinesisStreamsOutput)
+
+instance Prelude.Hashable KinesisStreamsOutput where
+  hashWithSalt _salt KinesisStreamsOutput' {..} =
+    _salt `Prelude.hashWithSalt` resourceARN
+
+instance Prelude.NFData KinesisStreamsOutput where
+  rnf KinesisStreamsOutput' {..} =
+    Prelude.rnf resourceARN
+
+instance Data.ToJSON KinesisStreamsOutput where
+  toJSON KinesisStreamsOutput' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("ResourceARN" Data..= resourceARN)]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsOutputDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsOutputDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsOutputDescription.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.KinesisAnalyticsV2.Types.KinesisStreamsOutputDescription
+-- 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.KinesisAnalyticsV2.Types.KinesisStreamsOutputDescription 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
+
+-- | For an SQL-based Kinesis Data Analytics application\'s output, describes
+-- the Kinesis data stream that is configured as its destination.
+--
+-- /See:/ 'newKinesisStreamsOutputDescription' smart constructor.
+data KinesisStreamsOutputDescription = KinesisStreamsOutputDescription'
+  { -- | The ARN of the IAM role that Kinesis Data Analytics can assume to access
+    -- the stream.
+    --
+    -- Provided for backward compatibility. Applications that are created with
+    -- the current API version have an application-level service execution role
+    -- rather than a resource-level role.
+    roleARN :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the Kinesis data stream.
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'KinesisStreamsOutputDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'roleARN', 'kinesisStreamsOutputDescription_roleARN' - The ARN of the IAM role that Kinesis Data Analytics can assume to access
+-- the stream.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+--
+-- 'resourceARN', 'kinesisStreamsOutputDescription_resourceARN' - The Amazon Resource Name (ARN) of the Kinesis data stream.
+newKinesisStreamsOutputDescription ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  KinesisStreamsOutputDescription
+newKinesisStreamsOutputDescription pResourceARN_ =
+  KinesisStreamsOutputDescription'
+    { roleARN =
+        Prelude.Nothing,
+      resourceARN = pResourceARN_
+    }
+
+-- | The ARN of the IAM role that Kinesis Data Analytics can assume to access
+-- the stream.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+kinesisStreamsOutputDescription_roleARN :: Lens.Lens' KinesisStreamsOutputDescription (Prelude.Maybe Prelude.Text)
+kinesisStreamsOutputDescription_roleARN = Lens.lens (\KinesisStreamsOutputDescription' {roleARN} -> roleARN) (\s@KinesisStreamsOutputDescription' {} a -> s {roleARN = a} :: KinesisStreamsOutputDescription)
+
+-- | The Amazon Resource Name (ARN) of the Kinesis data stream.
+kinesisStreamsOutputDescription_resourceARN :: Lens.Lens' KinesisStreamsOutputDescription Prelude.Text
+kinesisStreamsOutputDescription_resourceARN = Lens.lens (\KinesisStreamsOutputDescription' {resourceARN} -> resourceARN) (\s@KinesisStreamsOutputDescription' {} a -> s {resourceARN = a} :: KinesisStreamsOutputDescription)
+
+instance
+  Data.FromJSON
+    KinesisStreamsOutputDescription
+  where
+  parseJSON =
+    Data.withObject
+      "KinesisStreamsOutputDescription"
+      ( \x ->
+          KinesisStreamsOutputDescription'
+            Prelude.<$> (x Data..:? "RoleARN")
+            Prelude.<*> (x Data..: "ResourceARN")
+      )
+
+instance
+  Prelude.Hashable
+    KinesisStreamsOutputDescription
+  where
+  hashWithSalt
+    _salt
+    KinesisStreamsOutputDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` roleARN
+        `Prelude.hashWithSalt` resourceARN
+
+instance
+  Prelude.NFData
+    KinesisStreamsOutputDescription
+  where
+  rnf KinesisStreamsOutputDescription' {..} =
+    Prelude.rnf roleARN
+      `Prelude.seq` Prelude.rnf resourceARN
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsOutputUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsOutputUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/KinesisStreamsOutputUpdate.hs
@@ -0,0 +1,80 @@
+{-# 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.KinesisAnalyticsV2.Types.KinesisStreamsOutputUpdate
+-- 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.KinesisAnalyticsV2.Types.KinesisStreamsOutputUpdate 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
+
+-- | When you update a SQL-based Kinesis Data Analytics application\'s output
+-- configuration using the UpdateApplication operation, provides
+-- information about a Kinesis data stream that is configured as the
+-- destination.
+--
+-- /See:/ 'newKinesisStreamsOutputUpdate' smart constructor.
+data KinesisStreamsOutputUpdate = KinesisStreamsOutputUpdate'
+  { -- | The Amazon Resource Name (ARN) of the Kinesis data stream where you want
+    -- to write the output.
+    resourceARNUpdate :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'KinesisStreamsOutputUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARNUpdate', 'kinesisStreamsOutputUpdate_resourceARNUpdate' - The Amazon Resource Name (ARN) of the Kinesis data stream where you want
+-- to write the output.
+newKinesisStreamsOutputUpdate ::
+  -- | 'resourceARNUpdate'
+  Prelude.Text ->
+  KinesisStreamsOutputUpdate
+newKinesisStreamsOutputUpdate pResourceARNUpdate_ =
+  KinesisStreamsOutputUpdate'
+    { resourceARNUpdate =
+        pResourceARNUpdate_
+    }
+
+-- | The Amazon Resource Name (ARN) of the Kinesis data stream where you want
+-- to write the output.
+kinesisStreamsOutputUpdate_resourceARNUpdate :: Lens.Lens' KinesisStreamsOutputUpdate Prelude.Text
+kinesisStreamsOutputUpdate_resourceARNUpdate = Lens.lens (\KinesisStreamsOutputUpdate' {resourceARNUpdate} -> resourceARNUpdate) (\s@KinesisStreamsOutputUpdate' {} a -> s {resourceARNUpdate = a} :: KinesisStreamsOutputUpdate)
+
+instance Prelude.Hashable KinesisStreamsOutputUpdate where
+  hashWithSalt _salt KinesisStreamsOutputUpdate' {..} =
+    _salt `Prelude.hashWithSalt` resourceARNUpdate
+
+instance Prelude.NFData KinesisStreamsOutputUpdate where
+  rnf KinesisStreamsOutputUpdate' {..} =
+    Prelude.rnf resourceARNUpdate
+
+instance Data.ToJSON KinesisStreamsOutputUpdate where
+  toJSON KinesisStreamsOutputUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ResourceARNUpdate" Data..= resourceARNUpdate)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/LambdaOutput.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/LambdaOutput.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/LambdaOutput.hs
@@ -0,0 +1,88 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.LambdaOutput
+-- 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.KinesisAnalyticsV2.Types.LambdaOutput 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
+
+-- | When you configure a SQL-based Kinesis Data Analytics application\'s
+-- output, identifies an Amazon Lambda function as the destination. You
+-- provide the function Amazon Resource Name (ARN) of the Lambda function.
+--
+-- /See:/ 'newLambdaOutput' smart constructor.
+data LambdaOutput = LambdaOutput'
+  { -- | The Amazon Resource Name (ARN) of the destination Lambda function to
+    -- write to.
+    --
+    -- To specify an earlier version of the Lambda function than the latest,
+    -- include the Lambda function version in the Lambda function ARN. For more
+    -- information about Lambda ARNs, see
+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LambdaOutput' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARN', 'lambdaOutput_resourceARN' - The Amazon Resource Name (ARN) of the destination Lambda function to
+-- write to.
+--
+-- To specify an earlier version of the Lambda function than the latest,
+-- include the Lambda function version in the Lambda function ARN. For more
+-- information about Lambda ARNs, see
+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+newLambdaOutput ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  LambdaOutput
+newLambdaOutput pResourceARN_ =
+  LambdaOutput' {resourceARN = pResourceARN_}
+
+-- | The Amazon Resource Name (ARN) of the destination Lambda function to
+-- write to.
+--
+-- To specify an earlier version of the Lambda function than the latest,
+-- include the Lambda function version in the Lambda function ARN. For more
+-- information about Lambda ARNs, see
+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+lambdaOutput_resourceARN :: Lens.Lens' LambdaOutput Prelude.Text
+lambdaOutput_resourceARN = Lens.lens (\LambdaOutput' {resourceARN} -> resourceARN) (\s@LambdaOutput' {} a -> s {resourceARN = a} :: LambdaOutput)
+
+instance Prelude.Hashable LambdaOutput where
+  hashWithSalt _salt LambdaOutput' {..} =
+    _salt `Prelude.hashWithSalt` resourceARN
+
+instance Prelude.NFData LambdaOutput where
+  rnf LambdaOutput' {..} = Prelude.rnf resourceARN
+
+instance Data.ToJSON LambdaOutput where
+  toJSON LambdaOutput' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("ResourceARN" Data..= resourceARN)]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/LambdaOutputDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/LambdaOutputDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/LambdaOutputDescription.hs
@@ -0,0 +1,102 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.LambdaOutputDescription
+-- 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.KinesisAnalyticsV2.Types.LambdaOutputDescription 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
+
+-- | For a SQL-based Kinesis Data Analytics application\'s output, describes
+-- the Amazon Lambda function that is configured as its destination.
+--
+-- /See:/ 'newLambdaOutputDescription' smart constructor.
+data LambdaOutputDescription = LambdaOutputDescription'
+  { -- | The ARN of the IAM role that Kinesis Data Analytics can assume to write
+    -- to the destination function.
+    --
+    -- Provided for backward compatibility. Applications that are created with
+    -- the current API version have an application-level service execution role
+    -- rather than a resource-level role.
+    roleARN :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the destination Lambda function.
+    resourceARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LambdaOutputDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'roleARN', 'lambdaOutputDescription_roleARN' - The ARN of the IAM role that Kinesis Data Analytics can assume to write
+-- to the destination function.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+--
+-- 'resourceARN', 'lambdaOutputDescription_resourceARN' - The Amazon Resource Name (ARN) of the destination Lambda function.
+newLambdaOutputDescription ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  LambdaOutputDescription
+newLambdaOutputDescription pResourceARN_ =
+  LambdaOutputDescription'
+    { roleARN = Prelude.Nothing,
+      resourceARN = pResourceARN_
+    }
+
+-- | The ARN of the IAM role that Kinesis Data Analytics can assume to write
+-- to the destination function.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+lambdaOutputDescription_roleARN :: Lens.Lens' LambdaOutputDescription (Prelude.Maybe Prelude.Text)
+lambdaOutputDescription_roleARN = Lens.lens (\LambdaOutputDescription' {roleARN} -> roleARN) (\s@LambdaOutputDescription' {} a -> s {roleARN = a} :: LambdaOutputDescription)
+
+-- | The Amazon Resource Name (ARN) of the destination Lambda function.
+lambdaOutputDescription_resourceARN :: Lens.Lens' LambdaOutputDescription Prelude.Text
+lambdaOutputDescription_resourceARN = Lens.lens (\LambdaOutputDescription' {resourceARN} -> resourceARN) (\s@LambdaOutputDescription' {} a -> s {resourceARN = a} :: LambdaOutputDescription)
+
+instance Data.FromJSON LambdaOutputDescription where
+  parseJSON =
+    Data.withObject
+      "LambdaOutputDescription"
+      ( \x ->
+          LambdaOutputDescription'
+            Prelude.<$> (x Data..:? "RoleARN")
+            Prelude.<*> (x Data..: "ResourceARN")
+      )
+
+instance Prelude.Hashable LambdaOutputDescription where
+  hashWithSalt _salt LambdaOutputDescription' {..} =
+    _salt
+      `Prelude.hashWithSalt` roleARN
+      `Prelude.hashWithSalt` resourceARN
+
+instance Prelude.NFData LambdaOutputDescription where
+  rnf LambdaOutputDescription' {..} =
+    Prelude.rnf roleARN
+      `Prelude.seq` Prelude.rnf resourceARN
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/LambdaOutputUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/LambdaOutputUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/LambdaOutputUpdate.hs
@@ -0,0 +1,95 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.LambdaOutputUpdate
+-- 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.KinesisAnalyticsV2.Types.LambdaOutputUpdate 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
+
+-- | When you update an SQL-based Kinesis Data Analytics application\'s
+-- output configuration using the UpdateApplication operation, provides
+-- information about an Amazon Lambda function that is configured as the
+-- destination.
+--
+-- /See:/ 'newLambdaOutputUpdate' smart constructor.
+data LambdaOutputUpdate = LambdaOutputUpdate'
+  { -- | The Amazon Resource Name (ARN) of the destination Amazon Lambda
+    -- function.
+    --
+    -- To specify an earlier version of the Lambda function than the latest,
+    -- include the Lambda function version in the Lambda function ARN. For more
+    -- information about Lambda ARNs, see
+    -- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+    resourceARNUpdate :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LambdaOutputUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARNUpdate', 'lambdaOutputUpdate_resourceARNUpdate' - The Amazon Resource Name (ARN) of the destination Amazon Lambda
+-- function.
+--
+-- To specify an earlier version of the Lambda function than the latest,
+-- include the Lambda function version in the Lambda function ARN. For more
+-- information about Lambda ARNs, see
+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+newLambdaOutputUpdate ::
+  -- | 'resourceARNUpdate'
+  Prelude.Text ->
+  LambdaOutputUpdate
+newLambdaOutputUpdate pResourceARNUpdate_ =
+  LambdaOutputUpdate'
+    { resourceARNUpdate =
+        pResourceARNUpdate_
+    }
+
+-- | The Amazon Resource Name (ARN) of the destination Amazon Lambda
+-- function.
+--
+-- To specify an earlier version of the Lambda function than the latest,
+-- include the Lambda function version in the Lambda function ARN. For more
+-- information about Lambda ARNs, see
+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda Example ARNs: Amazon Lambda>
+lambdaOutputUpdate_resourceARNUpdate :: Lens.Lens' LambdaOutputUpdate Prelude.Text
+lambdaOutputUpdate_resourceARNUpdate = Lens.lens (\LambdaOutputUpdate' {resourceARNUpdate} -> resourceARNUpdate) (\s@LambdaOutputUpdate' {} a -> s {resourceARNUpdate = a} :: LambdaOutputUpdate)
+
+instance Prelude.Hashable LambdaOutputUpdate where
+  hashWithSalt _salt LambdaOutputUpdate' {..} =
+    _salt `Prelude.hashWithSalt` resourceARNUpdate
+
+instance Prelude.NFData LambdaOutputUpdate where
+  rnf LambdaOutputUpdate' {..} =
+    Prelude.rnf resourceARNUpdate
+
+instance Data.ToJSON LambdaOutputUpdate where
+  toJSON LambdaOutputUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ResourceARNUpdate" Data..= resourceARNUpdate)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/LogLevel.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/LogLevel.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/LogLevel.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.LogLevel
+-- 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.KinesisAnalyticsV2.Types.LogLevel
+  ( LogLevel
+      ( ..,
+        LogLevel_DEBUG,
+        LogLevel_ERROR,
+        LogLevel_INFO,
+        LogLevel_WARN
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype LogLevel = LogLevel'
+  { fromLogLevel ::
+      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 LogLevel_DEBUG :: LogLevel
+pattern LogLevel_DEBUG = LogLevel' "DEBUG"
+
+pattern LogLevel_ERROR :: LogLevel
+pattern LogLevel_ERROR = LogLevel' "ERROR"
+
+pattern LogLevel_INFO :: LogLevel
+pattern LogLevel_INFO = LogLevel' "INFO"
+
+pattern LogLevel_WARN :: LogLevel
+pattern LogLevel_WARN = LogLevel' "WARN"
+
+{-# COMPLETE
+  LogLevel_DEBUG,
+  LogLevel_ERROR,
+  LogLevel_INFO,
+  LogLevel_WARN,
+  LogLevel'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/MappingParameters.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/MappingParameters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/MappingParameters.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.KinesisAnalyticsV2.Types.MappingParameters
+-- 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.KinesisAnalyticsV2.Types.MappingParameters where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.CSVMappingParameters
+import Amazonka.KinesisAnalyticsV2.Types.JSONMappingParameters
+import qualified Amazonka.Prelude as Prelude
+
+-- | When you configure a SQL-based Kinesis Data Analytics application\'s
+-- input at the time of creating or updating an application, provides
+-- additional mapping information specific to the record format (such as
+-- JSON, CSV, or record fields delimited by some delimiter) on the
+-- streaming source.
+--
+-- /See:/ 'newMappingParameters' smart constructor.
+data MappingParameters = MappingParameters'
+  { -- | Provides additional mapping information when the record format uses
+    -- delimiters (for example, CSV).
+    cSVMappingParameters :: Prelude.Maybe CSVMappingParameters,
+    -- | Provides additional mapping information when JSON is the record format
+    -- on the streaming source.
+    jSONMappingParameters :: Prelude.Maybe JSONMappingParameters
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MappingParameters' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'cSVMappingParameters', 'mappingParameters_cSVMappingParameters' - Provides additional mapping information when the record format uses
+-- delimiters (for example, CSV).
+--
+-- 'jSONMappingParameters', 'mappingParameters_jSONMappingParameters' - Provides additional mapping information when JSON is the record format
+-- on the streaming source.
+newMappingParameters ::
+  MappingParameters
+newMappingParameters =
+  MappingParameters'
+    { cSVMappingParameters =
+        Prelude.Nothing,
+      jSONMappingParameters = Prelude.Nothing
+    }
+
+-- | Provides additional mapping information when the record format uses
+-- delimiters (for example, CSV).
+mappingParameters_cSVMappingParameters :: Lens.Lens' MappingParameters (Prelude.Maybe CSVMappingParameters)
+mappingParameters_cSVMappingParameters = Lens.lens (\MappingParameters' {cSVMappingParameters} -> cSVMappingParameters) (\s@MappingParameters' {} a -> s {cSVMappingParameters = a} :: MappingParameters)
+
+-- | Provides additional mapping information when JSON is the record format
+-- on the streaming source.
+mappingParameters_jSONMappingParameters :: Lens.Lens' MappingParameters (Prelude.Maybe JSONMappingParameters)
+mappingParameters_jSONMappingParameters = Lens.lens (\MappingParameters' {jSONMappingParameters} -> jSONMappingParameters) (\s@MappingParameters' {} a -> s {jSONMappingParameters = a} :: MappingParameters)
+
+instance Data.FromJSON MappingParameters where
+  parseJSON =
+    Data.withObject
+      "MappingParameters"
+      ( \x ->
+          MappingParameters'
+            Prelude.<$> (x Data..:? "CSVMappingParameters")
+            Prelude.<*> (x Data..:? "JSONMappingParameters")
+      )
+
+instance Prelude.Hashable MappingParameters where
+  hashWithSalt _salt MappingParameters' {..} =
+    _salt
+      `Prelude.hashWithSalt` cSVMappingParameters
+      `Prelude.hashWithSalt` jSONMappingParameters
+
+instance Prelude.NFData MappingParameters where
+  rnf MappingParameters' {..} =
+    Prelude.rnf cSVMappingParameters
+      `Prelude.seq` Prelude.rnf jSONMappingParameters
+
+instance Data.ToJSON MappingParameters where
+  toJSON MappingParameters' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("CSVMappingParameters" Data..=)
+              Prelude.<$> cSVMappingParameters,
+            ("JSONMappingParameters" Data..=)
+              Prelude.<$> jSONMappingParameters
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/MavenReference.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/MavenReference.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/MavenReference.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.KinesisAnalyticsV2.Types.MavenReference
+-- 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.KinesisAnalyticsV2.Types.MavenReference 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 information required to specify a Maven reference. You can use Maven
+-- references to specify dependency JAR files.
+--
+-- /See:/ 'newMavenReference' smart constructor.
+data MavenReference = MavenReference'
+  { -- | The group ID of the Maven reference.
+    groupId :: Prelude.Text,
+    -- | The artifact ID of the Maven reference.
+    artifactId :: Prelude.Text,
+    -- | The version of the Maven reference.
+    version :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MavenReference' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'groupId', 'mavenReference_groupId' - The group ID of the Maven reference.
+--
+-- 'artifactId', 'mavenReference_artifactId' - The artifact ID of the Maven reference.
+--
+-- 'version', 'mavenReference_version' - The version of the Maven reference.
+newMavenReference ::
+  -- | 'groupId'
+  Prelude.Text ->
+  -- | 'artifactId'
+  Prelude.Text ->
+  -- | 'version'
+  Prelude.Text ->
+  MavenReference
+newMavenReference pGroupId_ pArtifactId_ pVersion_ =
+  MavenReference'
+    { groupId = pGroupId_,
+      artifactId = pArtifactId_,
+      version = pVersion_
+    }
+
+-- | The group ID of the Maven reference.
+mavenReference_groupId :: Lens.Lens' MavenReference Prelude.Text
+mavenReference_groupId = Lens.lens (\MavenReference' {groupId} -> groupId) (\s@MavenReference' {} a -> s {groupId = a} :: MavenReference)
+
+-- | The artifact ID of the Maven reference.
+mavenReference_artifactId :: Lens.Lens' MavenReference Prelude.Text
+mavenReference_artifactId = Lens.lens (\MavenReference' {artifactId} -> artifactId) (\s@MavenReference' {} a -> s {artifactId = a} :: MavenReference)
+
+-- | The version of the Maven reference.
+mavenReference_version :: Lens.Lens' MavenReference Prelude.Text
+mavenReference_version = Lens.lens (\MavenReference' {version} -> version) (\s@MavenReference' {} a -> s {version = a} :: MavenReference)
+
+instance Data.FromJSON MavenReference where
+  parseJSON =
+    Data.withObject
+      "MavenReference"
+      ( \x ->
+          MavenReference'
+            Prelude.<$> (x Data..: "GroupId")
+            Prelude.<*> (x Data..: "ArtifactId")
+            Prelude.<*> (x Data..: "Version")
+      )
+
+instance Prelude.Hashable MavenReference where
+  hashWithSalt _salt MavenReference' {..} =
+    _salt
+      `Prelude.hashWithSalt` groupId
+      `Prelude.hashWithSalt` artifactId
+      `Prelude.hashWithSalt` version
+
+instance Prelude.NFData MavenReference where
+  rnf MavenReference' {..} =
+    Prelude.rnf groupId
+      `Prelude.seq` Prelude.rnf artifactId
+      `Prelude.seq` Prelude.rnf version
+
+instance Data.ToJSON MavenReference where
+  toJSON MavenReference' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("GroupId" Data..= groupId),
+            Prelude.Just ("ArtifactId" Data..= artifactId),
+            Prelude.Just ("Version" Data..= version)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/MetricsLevel.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/MetricsLevel.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/MetricsLevel.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.MetricsLevel
+-- 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.KinesisAnalyticsV2.Types.MetricsLevel
+  ( MetricsLevel
+      ( ..,
+        MetricsLevel_APPLICATION,
+        MetricsLevel_OPERATOR,
+        MetricsLevel_PARALLELISM,
+        MetricsLevel_TASK
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype MetricsLevel = MetricsLevel'
+  { fromMetricsLevel ::
+      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 MetricsLevel_APPLICATION :: MetricsLevel
+pattern MetricsLevel_APPLICATION = MetricsLevel' "APPLICATION"
+
+pattern MetricsLevel_OPERATOR :: MetricsLevel
+pattern MetricsLevel_OPERATOR = MetricsLevel' "OPERATOR"
+
+pattern MetricsLevel_PARALLELISM :: MetricsLevel
+pattern MetricsLevel_PARALLELISM = MetricsLevel' "PARALLELISM"
+
+pattern MetricsLevel_TASK :: MetricsLevel
+pattern MetricsLevel_TASK = MetricsLevel' "TASK"
+
+{-# COMPLETE
+  MetricsLevel_APPLICATION,
+  MetricsLevel_OPERATOR,
+  MetricsLevel_PARALLELISM,
+  MetricsLevel_TASK,
+  MetricsLevel'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/MonitoringConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/MonitoringConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/MonitoringConfiguration.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.MonitoringConfiguration
+-- 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.KinesisAnalyticsV2.Types.MonitoringConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ConfigurationType
+import Amazonka.KinesisAnalyticsV2.Types.LogLevel
+import Amazonka.KinesisAnalyticsV2.Types.MetricsLevel
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes configuration parameters for Amazon CloudWatch logging for an
+-- application. For more information about CloudWatch logging, see
+-- <https://docs.aws.amazon.com/kinesisanalytics/latest/java/monitoring-overview.html Monitoring>.
+--
+-- /See:/ 'newMonitoringConfiguration' smart constructor.
+data MonitoringConfiguration = MonitoringConfiguration'
+  { -- | Describes the verbosity of the CloudWatch Logs for an application.
+    logLevel :: Prelude.Maybe LogLevel,
+    -- | Describes the granularity of the CloudWatch Logs for an application. The
+    -- @Parallelism@ level is not recommended for applications with a
+    -- Parallelism over 64 due to excessive costs.
+    metricsLevel :: Prelude.Maybe MetricsLevel,
+    -- | Describes whether to use the default CloudWatch logging configuration
+    -- for an application. You must set this property to @CUSTOM@ in order to
+    -- set the @LogLevel@ or @MetricsLevel@ parameters.
+    configurationType :: ConfigurationType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MonitoringConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'logLevel', 'monitoringConfiguration_logLevel' - Describes the verbosity of the CloudWatch Logs for an application.
+--
+-- 'metricsLevel', 'monitoringConfiguration_metricsLevel' - Describes the granularity of the CloudWatch Logs for an application. The
+-- @Parallelism@ level is not recommended for applications with a
+-- Parallelism over 64 due to excessive costs.
+--
+-- 'configurationType', 'monitoringConfiguration_configurationType' - Describes whether to use the default CloudWatch logging configuration
+-- for an application. You must set this property to @CUSTOM@ in order to
+-- set the @LogLevel@ or @MetricsLevel@ parameters.
+newMonitoringConfiguration ::
+  -- | 'configurationType'
+  ConfigurationType ->
+  MonitoringConfiguration
+newMonitoringConfiguration pConfigurationType_ =
+  MonitoringConfiguration'
+    { logLevel =
+        Prelude.Nothing,
+      metricsLevel = Prelude.Nothing,
+      configurationType = pConfigurationType_
+    }
+
+-- | Describes the verbosity of the CloudWatch Logs for an application.
+monitoringConfiguration_logLevel :: Lens.Lens' MonitoringConfiguration (Prelude.Maybe LogLevel)
+monitoringConfiguration_logLevel = Lens.lens (\MonitoringConfiguration' {logLevel} -> logLevel) (\s@MonitoringConfiguration' {} a -> s {logLevel = a} :: MonitoringConfiguration)
+
+-- | Describes the granularity of the CloudWatch Logs for an application. The
+-- @Parallelism@ level is not recommended for applications with a
+-- Parallelism over 64 due to excessive costs.
+monitoringConfiguration_metricsLevel :: Lens.Lens' MonitoringConfiguration (Prelude.Maybe MetricsLevel)
+monitoringConfiguration_metricsLevel = Lens.lens (\MonitoringConfiguration' {metricsLevel} -> metricsLevel) (\s@MonitoringConfiguration' {} a -> s {metricsLevel = a} :: MonitoringConfiguration)
+
+-- | Describes whether to use the default CloudWatch logging configuration
+-- for an application. You must set this property to @CUSTOM@ in order to
+-- set the @LogLevel@ or @MetricsLevel@ parameters.
+monitoringConfiguration_configurationType :: Lens.Lens' MonitoringConfiguration ConfigurationType
+monitoringConfiguration_configurationType = Lens.lens (\MonitoringConfiguration' {configurationType} -> configurationType) (\s@MonitoringConfiguration' {} a -> s {configurationType = a} :: MonitoringConfiguration)
+
+instance Prelude.Hashable MonitoringConfiguration where
+  hashWithSalt _salt MonitoringConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` logLevel
+      `Prelude.hashWithSalt` metricsLevel
+      `Prelude.hashWithSalt` configurationType
+
+instance Prelude.NFData MonitoringConfiguration where
+  rnf MonitoringConfiguration' {..} =
+    Prelude.rnf logLevel
+      `Prelude.seq` Prelude.rnf metricsLevel
+      `Prelude.seq` Prelude.rnf configurationType
+
+instance Data.ToJSON MonitoringConfiguration where
+  toJSON MonitoringConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("LogLevel" Data..=) Prelude.<$> logLevel,
+            ("MetricsLevel" Data..=) Prelude.<$> metricsLevel,
+            Prelude.Just
+              ("ConfigurationType" Data..= configurationType)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/MonitoringConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/MonitoringConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/MonitoringConfigurationDescription.hs
@@ -0,0 +1,115 @@
+{-# 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.KinesisAnalyticsV2.Types.MonitoringConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.MonitoringConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ConfigurationType
+import Amazonka.KinesisAnalyticsV2.Types.LogLevel
+import Amazonka.KinesisAnalyticsV2.Types.MetricsLevel
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes configuration parameters for CloudWatch logging for an
+-- application.
+--
+-- /See:/ 'newMonitoringConfigurationDescription' smart constructor.
+data MonitoringConfigurationDescription = MonitoringConfigurationDescription'
+  { -- | Describes whether to use the default CloudWatch logging configuration
+    -- for an application.
+    configurationType :: Prelude.Maybe ConfigurationType,
+    -- | Describes the verbosity of the CloudWatch Logs for an application.
+    logLevel :: Prelude.Maybe LogLevel,
+    -- | Describes the granularity of the CloudWatch Logs for an application.
+    metricsLevel :: Prelude.Maybe MetricsLevel
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MonitoringConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'configurationType', 'monitoringConfigurationDescription_configurationType' - Describes whether to use the default CloudWatch logging configuration
+-- for an application.
+--
+-- 'logLevel', 'monitoringConfigurationDescription_logLevel' - Describes the verbosity of the CloudWatch Logs for an application.
+--
+-- 'metricsLevel', 'monitoringConfigurationDescription_metricsLevel' - Describes the granularity of the CloudWatch Logs for an application.
+newMonitoringConfigurationDescription ::
+  MonitoringConfigurationDescription
+newMonitoringConfigurationDescription =
+  MonitoringConfigurationDescription'
+    { configurationType =
+        Prelude.Nothing,
+      logLevel = Prelude.Nothing,
+      metricsLevel = Prelude.Nothing
+    }
+
+-- | Describes whether to use the default CloudWatch logging configuration
+-- for an application.
+monitoringConfigurationDescription_configurationType :: Lens.Lens' MonitoringConfigurationDescription (Prelude.Maybe ConfigurationType)
+monitoringConfigurationDescription_configurationType = Lens.lens (\MonitoringConfigurationDescription' {configurationType} -> configurationType) (\s@MonitoringConfigurationDescription' {} a -> s {configurationType = a} :: MonitoringConfigurationDescription)
+
+-- | Describes the verbosity of the CloudWatch Logs for an application.
+monitoringConfigurationDescription_logLevel :: Lens.Lens' MonitoringConfigurationDescription (Prelude.Maybe LogLevel)
+monitoringConfigurationDescription_logLevel = Lens.lens (\MonitoringConfigurationDescription' {logLevel} -> logLevel) (\s@MonitoringConfigurationDescription' {} a -> s {logLevel = a} :: MonitoringConfigurationDescription)
+
+-- | Describes the granularity of the CloudWatch Logs for an application.
+monitoringConfigurationDescription_metricsLevel :: Lens.Lens' MonitoringConfigurationDescription (Prelude.Maybe MetricsLevel)
+monitoringConfigurationDescription_metricsLevel = Lens.lens (\MonitoringConfigurationDescription' {metricsLevel} -> metricsLevel) (\s@MonitoringConfigurationDescription' {} a -> s {metricsLevel = a} :: MonitoringConfigurationDescription)
+
+instance
+  Data.FromJSON
+    MonitoringConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "MonitoringConfigurationDescription"
+      ( \x ->
+          MonitoringConfigurationDescription'
+            Prelude.<$> (x Data..:? "ConfigurationType")
+            Prelude.<*> (x Data..:? "LogLevel")
+            Prelude.<*> (x Data..:? "MetricsLevel")
+      )
+
+instance
+  Prelude.Hashable
+    MonitoringConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    MonitoringConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` configurationType
+        `Prelude.hashWithSalt` logLevel
+        `Prelude.hashWithSalt` metricsLevel
+
+instance
+  Prelude.NFData
+    MonitoringConfigurationDescription
+  where
+  rnf MonitoringConfigurationDescription' {..} =
+    Prelude.rnf configurationType
+      `Prelude.seq` Prelude.rnf logLevel
+      `Prelude.seq` Prelude.rnf metricsLevel
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/MonitoringConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/MonitoringConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/MonitoringConfigurationUpdate.hs
@@ -0,0 +1,121 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.MonitoringConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.MonitoringConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ConfigurationType
+import Amazonka.KinesisAnalyticsV2.Types.LogLevel
+import Amazonka.KinesisAnalyticsV2.Types.MetricsLevel
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes updates to configuration parameters for Amazon CloudWatch
+-- logging for an application.
+--
+-- /See:/ 'newMonitoringConfigurationUpdate' smart constructor.
+data MonitoringConfigurationUpdate = MonitoringConfigurationUpdate'
+  { -- | Describes updates to whether to use the default CloudWatch logging
+    -- configuration for an application. You must set this property to @CUSTOM@
+    -- in order to set the @LogLevel@ or @MetricsLevel@ parameters.
+    configurationTypeUpdate :: Prelude.Maybe ConfigurationType,
+    -- | Describes updates to the verbosity of the CloudWatch Logs for an
+    -- application.
+    logLevelUpdate :: Prelude.Maybe LogLevel,
+    -- | Describes updates to the granularity of the CloudWatch Logs for an
+    -- application. The @Parallelism@ level is not recommended for applications
+    -- with a Parallelism over 64 due to excessive costs.
+    metricsLevelUpdate :: Prelude.Maybe MetricsLevel
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MonitoringConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'configurationTypeUpdate', 'monitoringConfigurationUpdate_configurationTypeUpdate' - Describes updates to whether to use the default CloudWatch logging
+-- configuration for an application. You must set this property to @CUSTOM@
+-- in order to set the @LogLevel@ or @MetricsLevel@ parameters.
+--
+-- 'logLevelUpdate', 'monitoringConfigurationUpdate_logLevelUpdate' - Describes updates to the verbosity of the CloudWatch Logs for an
+-- application.
+--
+-- 'metricsLevelUpdate', 'monitoringConfigurationUpdate_metricsLevelUpdate' - Describes updates to the granularity of the CloudWatch Logs for an
+-- application. The @Parallelism@ level is not recommended for applications
+-- with a Parallelism over 64 due to excessive costs.
+newMonitoringConfigurationUpdate ::
+  MonitoringConfigurationUpdate
+newMonitoringConfigurationUpdate =
+  MonitoringConfigurationUpdate'
+    { configurationTypeUpdate =
+        Prelude.Nothing,
+      logLevelUpdate = Prelude.Nothing,
+      metricsLevelUpdate = Prelude.Nothing
+    }
+
+-- | Describes updates to whether to use the default CloudWatch logging
+-- configuration for an application. You must set this property to @CUSTOM@
+-- in order to set the @LogLevel@ or @MetricsLevel@ parameters.
+monitoringConfigurationUpdate_configurationTypeUpdate :: Lens.Lens' MonitoringConfigurationUpdate (Prelude.Maybe ConfigurationType)
+monitoringConfigurationUpdate_configurationTypeUpdate = Lens.lens (\MonitoringConfigurationUpdate' {configurationTypeUpdate} -> configurationTypeUpdate) (\s@MonitoringConfigurationUpdate' {} a -> s {configurationTypeUpdate = a} :: MonitoringConfigurationUpdate)
+
+-- | Describes updates to the verbosity of the CloudWatch Logs for an
+-- application.
+monitoringConfigurationUpdate_logLevelUpdate :: Lens.Lens' MonitoringConfigurationUpdate (Prelude.Maybe LogLevel)
+monitoringConfigurationUpdate_logLevelUpdate = Lens.lens (\MonitoringConfigurationUpdate' {logLevelUpdate} -> logLevelUpdate) (\s@MonitoringConfigurationUpdate' {} a -> s {logLevelUpdate = a} :: MonitoringConfigurationUpdate)
+
+-- | Describes updates to the granularity of the CloudWatch Logs for an
+-- application. The @Parallelism@ level is not recommended for applications
+-- with a Parallelism over 64 due to excessive costs.
+monitoringConfigurationUpdate_metricsLevelUpdate :: Lens.Lens' MonitoringConfigurationUpdate (Prelude.Maybe MetricsLevel)
+monitoringConfigurationUpdate_metricsLevelUpdate = Lens.lens (\MonitoringConfigurationUpdate' {metricsLevelUpdate} -> metricsLevelUpdate) (\s@MonitoringConfigurationUpdate' {} a -> s {metricsLevelUpdate = a} :: MonitoringConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    MonitoringConfigurationUpdate
+  where
+  hashWithSalt _salt MonitoringConfigurationUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` configurationTypeUpdate
+      `Prelude.hashWithSalt` logLevelUpdate
+      `Prelude.hashWithSalt` metricsLevelUpdate
+
+instance Prelude.NFData MonitoringConfigurationUpdate where
+  rnf MonitoringConfigurationUpdate' {..} =
+    Prelude.rnf configurationTypeUpdate
+      `Prelude.seq` Prelude.rnf logLevelUpdate
+      `Prelude.seq` Prelude.rnf metricsLevelUpdate
+
+instance Data.ToJSON MonitoringConfigurationUpdate where
+  toJSON MonitoringConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ConfigurationTypeUpdate" Data..=)
+              Prelude.<$> configurationTypeUpdate,
+            ("LogLevelUpdate" Data..=)
+              Prelude.<$> logLevelUpdate,
+            ("MetricsLevelUpdate" Data..=)
+              Prelude.<$> metricsLevelUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/Output.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/Output.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/Output.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.KinesisAnalyticsV2.Types.Output
+-- 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.KinesisAnalyticsV2.Types.Output where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.DestinationSchema
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutput
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsOutput
+import Amazonka.KinesisAnalyticsV2.Types.LambdaOutput
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes a SQL-based Kinesis Data Analytics application\'s output
+-- configuration, in which you identify an in-application stream and a
+-- destination where you want the in-application stream data to be written.
+-- The destination can be a Kinesis data stream or a Kinesis Data Firehose
+-- delivery stream.
+--
+-- /See:/ 'newOutput' smart constructor.
+data Output = Output'
+  { -- | Identifies a Kinesis Data Firehose delivery stream as the destination.
+    kinesisFirehoseOutput :: Prelude.Maybe KinesisFirehoseOutput,
+    -- | Identifies a Kinesis data stream as the destination.
+    kinesisStreamsOutput :: Prelude.Maybe KinesisStreamsOutput,
+    -- | Identifies an Amazon Lambda function as the destination.
+    lambdaOutput :: Prelude.Maybe LambdaOutput,
+    -- | The name of the in-application stream.
+    name :: Prelude.Text,
+    -- | Describes the data format when records are written to the destination.
+    destinationSchema :: DestinationSchema
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Output' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'kinesisFirehoseOutput', 'output_kinesisFirehoseOutput' - Identifies a Kinesis Data Firehose delivery stream as the destination.
+--
+-- 'kinesisStreamsOutput', 'output_kinesisStreamsOutput' - Identifies a Kinesis data stream as the destination.
+--
+-- 'lambdaOutput', 'output_lambdaOutput' - Identifies an Amazon Lambda function as the destination.
+--
+-- 'name', 'output_name' - The name of the in-application stream.
+--
+-- 'destinationSchema', 'output_destinationSchema' - Describes the data format when records are written to the destination.
+newOutput ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'destinationSchema'
+  DestinationSchema ->
+  Output
+newOutput pName_ pDestinationSchema_ =
+  Output'
+    { kinesisFirehoseOutput = Prelude.Nothing,
+      kinesisStreamsOutput = Prelude.Nothing,
+      lambdaOutput = Prelude.Nothing,
+      name = pName_,
+      destinationSchema = pDestinationSchema_
+    }
+
+-- | Identifies a Kinesis Data Firehose delivery stream as the destination.
+output_kinesisFirehoseOutput :: Lens.Lens' Output (Prelude.Maybe KinesisFirehoseOutput)
+output_kinesisFirehoseOutput = Lens.lens (\Output' {kinesisFirehoseOutput} -> kinesisFirehoseOutput) (\s@Output' {} a -> s {kinesisFirehoseOutput = a} :: Output)
+
+-- | Identifies a Kinesis data stream as the destination.
+output_kinesisStreamsOutput :: Lens.Lens' Output (Prelude.Maybe KinesisStreamsOutput)
+output_kinesisStreamsOutput = Lens.lens (\Output' {kinesisStreamsOutput} -> kinesisStreamsOutput) (\s@Output' {} a -> s {kinesisStreamsOutput = a} :: Output)
+
+-- | Identifies an Amazon Lambda function as the destination.
+output_lambdaOutput :: Lens.Lens' Output (Prelude.Maybe LambdaOutput)
+output_lambdaOutput = Lens.lens (\Output' {lambdaOutput} -> lambdaOutput) (\s@Output' {} a -> s {lambdaOutput = a} :: Output)
+
+-- | The name of the in-application stream.
+output_name :: Lens.Lens' Output Prelude.Text
+output_name = Lens.lens (\Output' {name} -> name) (\s@Output' {} a -> s {name = a} :: Output)
+
+-- | Describes the data format when records are written to the destination.
+output_destinationSchema :: Lens.Lens' Output DestinationSchema
+output_destinationSchema = Lens.lens (\Output' {destinationSchema} -> destinationSchema) (\s@Output' {} a -> s {destinationSchema = a} :: Output)
+
+instance Prelude.Hashable Output where
+  hashWithSalt _salt Output' {..} =
+    _salt
+      `Prelude.hashWithSalt` kinesisFirehoseOutput
+      `Prelude.hashWithSalt` kinesisStreamsOutput
+      `Prelude.hashWithSalt` lambdaOutput
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` destinationSchema
+
+instance Prelude.NFData Output where
+  rnf Output' {..} =
+    Prelude.rnf kinesisFirehoseOutput
+      `Prelude.seq` Prelude.rnf kinesisStreamsOutput
+      `Prelude.seq` Prelude.rnf lambdaOutput
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf destinationSchema
+
+instance Data.ToJSON Output where
+  toJSON Output' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("KinesisFirehoseOutput" Data..=)
+              Prelude.<$> kinesisFirehoseOutput,
+            ("KinesisStreamsOutput" Data..=)
+              Prelude.<$> kinesisStreamsOutput,
+            ("LambdaOutput" Data..=) Prelude.<$> lambdaOutput,
+            Prelude.Just ("Name" Data..= name),
+            Prelude.Just
+              ("DestinationSchema" Data..= destinationSchema)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/OutputDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/OutputDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/OutputDescription.hs
@@ -0,0 +1,150 @@
+{-# 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.KinesisAnalyticsV2.Types.OutputDescription
+-- 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.KinesisAnalyticsV2.Types.OutputDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.DestinationSchema
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutputDescription
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsOutputDescription
+import Amazonka.KinesisAnalyticsV2.Types.LambdaOutputDescription
+import qualified Amazonka.Prelude as Prelude
+
+-- | For a SQL-based Kinesis Data Analytics application, describes the
+-- application output configuration, which includes the in-application
+-- stream name and the destination where the stream data is written. The
+-- destination can be a Kinesis data stream or a Kinesis Data Firehose
+-- delivery stream.
+--
+-- /See:/ 'newOutputDescription' smart constructor.
+data OutputDescription = OutputDescription'
+  { -- | The data format used for writing data to the destination.
+    destinationSchema :: Prelude.Maybe DestinationSchema,
+    -- | Describes the Kinesis Data Firehose delivery stream that is configured
+    -- as the destination where output is written.
+    kinesisFirehoseOutputDescription :: Prelude.Maybe KinesisFirehoseOutputDescription,
+    -- | Describes the Kinesis data stream that is configured as the destination
+    -- where output is written.
+    kinesisStreamsOutputDescription :: Prelude.Maybe KinesisStreamsOutputDescription,
+    -- | Describes the Lambda function that is configured as the destination
+    -- where output is written.
+    lambdaOutputDescription :: Prelude.Maybe LambdaOutputDescription,
+    -- | The name of the in-application stream that is configured as output.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | A unique identifier for the output configuration.
+    outputId :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'OutputDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'destinationSchema', 'outputDescription_destinationSchema' - The data format used for writing data to the destination.
+--
+-- 'kinesisFirehoseOutputDescription', 'outputDescription_kinesisFirehoseOutputDescription' - Describes the Kinesis Data Firehose delivery stream that is configured
+-- as the destination where output is written.
+--
+-- 'kinesisStreamsOutputDescription', 'outputDescription_kinesisStreamsOutputDescription' - Describes the Kinesis data stream that is configured as the destination
+-- where output is written.
+--
+-- 'lambdaOutputDescription', 'outputDescription_lambdaOutputDescription' - Describes the Lambda function that is configured as the destination
+-- where output is written.
+--
+-- 'name', 'outputDescription_name' - The name of the in-application stream that is configured as output.
+--
+-- 'outputId', 'outputDescription_outputId' - A unique identifier for the output configuration.
+newOutputDescription ::
+  OutputDescription
+newOutputDescription =
+  OutputDescription'
+    { destinationSchema =
+        Prelude.Nothing,
+      kinesisFirehoseOutputDescription = Prelude.Nothing,
+      kinesisStreamsOutputDescription = Prelude.Nothing,
+      lambdaOutputDescription = Prelude.Nothing,
+      name = Prelude.Nothing,
+      outputId = Prelude.Nothing
+    }
+
+-- | The data format used for writing data to the destination.
+outputDescription_destinationSchema :: Lens.Lens' OutputDescription (Prelude.Maybe DestinationSchema)
+outputDescription_destinationSchema = Lens.lens (\OutputDescription' {destinationSchema} -> destinationSchema) (\s@OutputDescription' {} a -> s {destinationSchema = a} :: OutputDescription)
+
+-- | Describes the Kinesis Data Firehose delivery stream that is configured
+-- as the destination where output is written.
+outputDescription_kinesisFirehoseOutputDescription :: Lens.Lens' OutputDescription (Prelude.Maybe KinesisFirehoseOutputDescription)
+outputDescription_kinesisFirehoseOutputDescription = Lens.lens (\OutputDescription' {kinesisFirehoseOutputDescription} -> kinesisFirehoseOutputDescription) (\s@OutputDescription' {} a -> s {kinesisFirehoseOutputDescription = a} :: OutputDescription)
+
+-- | Describes the Kinesis data stream that is configured as the destination
+-- where output is written.
+outputDescription_kinesisStreamsOutputDescription :: Lens.Lens' OutputDescription (Prelude.Maybe KinesisStreamsOutputDescription)
+outputDescription_kinesisStreamsOutputDescription = Lens.lens (\OutputDescription' {kinesisStreamsOutputDescription} -> kinesisStreamsOutputDescription) (\s@OutputDescription' {} a -> s {kinesisStreamsOutputDescription = a} :: OutputDescription)
+
+-- | Describes the Lambda function that is configured as the destination
+-- where output is written.
+outputDescription_lambdaOutputDescription :: Lens.Lens' OutputDescription (Prelude.Maybe LambdaOutputDescription)
+outputDescription_lambdaOutputDescription = Lens.lens (\OutputDescription' {lambdaOutputDescription} -> lambdaOutputDescription) (\s@OutputDescription' {} a -> s {lambdaOutputDescription = a} :: OutputDescription)
+
+-- | The name of the in-application stream that is configured as output.
+outputDescription_name :: Lens.Lens' OutputDescription (Prelude.Maybe Prelude.Text)
+outputDescription_name = Lens.lens (\OutputDescription' {name} -> name) (\s@OutputDescription' {} a -> s {name = a} :: OutputDescription)
+
+-- | A unique identifier for the output configuration.
+outputDescription_outputId :: Lens.Lens' OutputDescription (Prelude.Maybe Prelude.Text)
+outputDescription_outputId = Lens.lens (\OutputDescription' {outputId} -> outputId) (\s@OutputDescription' {} a -> s {outputId = a} :: OutputDescription)
+
+instance Data.FromJSON OutputDescription where
+  parseJSON =
+    Data.withObject
+      "OutputDescription"
+      ( \x ->
+          OutputDescription'
+            Prelude.<$> (x Data..:? "DestinationSchema")
+            Prelude.<*> (x Data..:? "KinesisFirehoseOutputDescription")
+            Prelude.<*> (x Data..:? "KinesisStreamsOutputDescription")
+            Prelude.<*> (x Data..:? "LambdaOutputDescription")
+            Prelude.<*> (x Data..:? "Name")
+            Prelude.<*> (x Data..:? "OutputId")
+      )
+
+instance Prelude.Hashable OutputDescription where
+  hashWithSalt _salt OutputDescription' {..} =
+    _salt
+      `Prelude.hashWithSalt` destinationSchema
+      `Prelude.hashWithSalt` kinesisFirehoseOutputDescription
+      `Prelude.hashWithSalt` kinesisStreamsOutputDescription
+      `Prelude.hashWithSalt` lambdaOutputDescription
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` outputId
+
+instance Prelude.NFData OutputDescription where
+  rnf OutputDescription' {..} =
+    Prelude.rnf destinationSchema
+      `Prelude.seq` Prelude.rnf kinesisFirehoseOutputDescription
+      `Prelude.seq` Prelude.rnf kinesisStreamsOutputDescription
+      `Prelude.seq` Prelude.rnf lambdaOutputDescription
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf outputId
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/OutputUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/OutputUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/OutputUpdate.hs
@@ -0,0 +1,152 @@
+{-# 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.KinesisAnalyticsV2.Types.OutputUpdate
+-- 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.KinesisAnalyticsV2.Types.OutputUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.DestinationSchema
+import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseOutputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsOutputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.LambdaOutputUpdate
+import qualified Amazonka.Prelude as Prelude
+
+-- | For a SQL-based Kinesis Data Analytics application, describes updates to
+-- the output configuration identified by the @OutputId@.
+--
+-- /See:/ 'newOutputUpdate' smart constructor.
+data OutputUpdate = OutputUpdate'
+  { -- | Describes the data format when records are written to the destination.
+    destinationSchemaUpdate :: Prelude.Maybe DestinationSchema,
+    -- | Describes a Kinesis Data Firehose delivery stream as the destination for
+    -- the output.
+    kinesisFirehoseOutputUpdate :: Prelude.Maybe KinesisFirehoseOutputUpdate,
+    -- | Describes a Kinesis data stream as the destination for the output.
+    kinesisStreamsOutputUpdate :: Prelude.Maybe KinesisStreamsOutputUpdate,
+    -- | Describes an Amazon Lambda function as the destination for the output.
+    lambdaOutputUpdate :: Prelude.Maybe LambdaOutputUpdate,
+    -- | If you want to specify a different in-application stream for this output
+    -- configuration, use this field to specify the new in-application stream
+    -- name.
+    nameUpdate :: Prelude.Maybe Prelude.Text,
+    -- | Identifies the specific output configuration that you want to update.
+    outputId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'OutputUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'destinationSchemaUpdate', 'outputUpdate_destinationSchemaUpdate' - Describes the data format when records are written to the destination.
+--
+-- 'kinesisFirehoseOutputUpdate', 'outputUpdate_kinesisFirehoseOutputUpdate' - Describes a Kinesis Data Firehose delivery stream as the destination for
+-- the output.
+--
+-- 'kinesisStreamsOutputUpdate', 'outputUpdate_kinesisStreamsOutputUpdate' - Describes a Kinesis data stream as the destination for the output.
+--
+-- 'lambdaOutputUpdate', 'outputUpdate_lambdaOutputUpdate' - Describes an Amazon Lambda function as the destination for the output.
+--
+-- 'nameUpdate', 'outputUpdate_nameUpdate' - If you want to specify a different in-application stream for this output
+-- configuration, use this field to specify the new in-application stream
+-- name.
+--
+-- 'outputId', 'outputUpdate_outputId' - Identifies the specific output configuration that you want to update.
+newOutputUpdate ::
+  -- | 'outputId'
+  Prelude.Text ->
+  OutputUpdate
+newOutputUpdate pOutputId_ =
+  OutputUpdate'
+    { destinationSchemaUpdate =
+        Prelude.Nothing,
+      kinesisFirehoseOutputUpdate = Prelude.Nothing,
+      kinesisStreamsOutputUpdate = Prelude.Nothing,
+      lambdaOutputUpdate = Prelude.Nothing,
+      nameUpdate = Prelude.Nothing,
+      outputId = pOutputId_
+    }
+
+-- | Describes the data format when records are written to the destination.
+outputUpdate_destinationSchemaUpdate :: Lens.Lens' OutputUpdate (Prelude.Maybe DestinationSchema)
+outputUpdate_destinationSchemaUpdate = Lens.lens (\OutputUpdate' {destinationSchemaUpdate} -> destinationSchemaUpdate) (\s@OutputUpdate' {} a -> s {destinationSchemaUpdate = a} :: OutputUpdate)
+
+-- | Describes a Kinesis Data Firehose delivery stream as the destination for
+-- the output.
+outputUpdate_kinesisFirehoseOutputUpdate :: Lens.Lens' OutputUpdate (Prelude.Maybe KinesisFirehoseOutputUpdate)
+outputUpdate_kinesisFirehoseOutputUpdate = Lens.lens (\OutputUpdate' {kinesisFirehoseOutputUpdate} -> kinesisFirehoseOutputUpdate) (\s@OutputUpdate' {} a -> s {kinesisFirehoseOutputUpdate = a} :: OutputUpdate)
+
+-- | Describes a Kinesis data stream as the destination for the output.
+outputUpdate_kinesisStreamsOutputUpdate :: Lens.Lens' OutputUpdate (Prelude.Maybe KinesisStreamsOutputUpdate)
+outputUpdate_kinesisStreamsOutputUpdate = Lens.lens (\OutputUpdate' {kinesisStreamsOutputUpdate} -> kinesisStreamsOutputUpdate) (\s@OutputUpdate' {} a -> s {kinesisStreamsOutputUpdate = a} :: OutputUpdate)
+
+-- | Describes an Amazon Lambda function as the destination for the output.
+outputUpdate_lambdaOutputUpdate :: Lens.Lens' OutputUpdate (Prelude.Maybe LambdaOutputUpdate)
+outputUpdate_lambdaOutputUpdate = Lens.lens (\OutputUpdate' {lambdaOutputUpdate} -> lambdaOutputUpdate) (\s@OutputUpdate' {} a -> s {lambdaOutputUpdate = a} :: OutputUpdate)
+
+-- | If you want to specify a different in-application stream for this output
+-- configuration, use this field to specify the new in-application stream
+-- name.
+outputUpdate_nameUpdate :: Lens.Lens' OutputUpdate (Prelude.Maybe Prelude.Text)
+outputUpdate_nameUpdate = Lens.lens (\OutputUpdate' {nameUpdate} -> nameUpdate) (\s@OutputUpdate' {} a -> s {nameUpdate = a} :: OutputUpdate)
+
+-- | Identifies the specific output configuration that you want to update.
+outputUpdate_outputId :: Lens.Lens' OutputUpdate Prelude.Text
+outputUpdate_outputId = Lens.lens (\OutputUpdate' {outputId} -> outputId) (\s@OutputUpdate' {} a -> s {outputId = a} :: OutputUpdate)
+
+instance Prelude.Hashable OutputUpdate where
+  hashWithSalt _salt OutputUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` destinationSchemaUpdate
+      `Prelude.hashWithSalt` kinesisFirehoseOutputUpdate
+      `Prelude.hashWithSalt` kinesisStreamsOutputUpdate
+      `Prelude.hashWithSalt` lambdaOutputUpdate
+      `Prelude.hashWithSalt` nameUpdate
+      `Prelude.hashWithSalt` outputId
+
+instance Prelude.NFData OutputUpdate where
+  rnf OutputUpdate' {..} =
+    Prelude.rnf destinationSchemaUpdate
+      `Prelude.seq` Prelude.rnf kinesisFirehoseOutputUpdate
+      `Prelude.seq` Prelude.rnf kinesisStreamsOutputUpdate
+      `Prelude.seq` Prelude.rnf lambdaOutputUpdate
+      `Prelude.seq` Prelude.rnf nameUpdate
+      `Prelude.seq` Prelude.rnf outputId
+
+instance Data.ToJSON OutputUpdate where
+  toJSON OutputUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("DestinationSchemaUpdate" Data..=)
+              Prelude.<$> destinationSchemaUpdate,
+            ("KinesisFirehoseOutputUpdate" Data..=)
+              Prelude.<$> kinesisFirehoseOutputUpdate,
+            ("KinesisStreamsOutputUpdate" Data..=)
+              Prelude.<$> kinesisStreamsOutputUpdate,
+            ("LambdaOutputUpdate" Data..=)
+              Prelude.<$> lambdaOutputUpdate,
+            ("NameUpdate" Data..=) Prelude.<$> nameUpdate,
+            Prelude.Just ("OutputId" Data..= outputId)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ParallelismConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ParallelismConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ParallelismConfiguration.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.KinesisAnalyticsV2.Types.ParallelismConfiguration
+-- 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.KinesisAnalyticsV2.Types.ParallelismConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ConfigurationType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes parameters for how a Flink-based Kinesis Data Analytics
+-- application executes multiple tasks simultaneously. For more information
+-- about parallelism, see
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/parallel.html Parallel Execution>
+-- in the
+-- <https://ci.apache.org/projects/flink/flink-docs-release-1.8/ Apache Flink Documentation>.
+--
+-- /See:/ 'newParallelismConfiguration' smart constructor.
+data ParallelismConfiguration = ParallelismConfiguration'
+  { -- | Describes whether the Kinesis Data Analytics service can increase the
+    -- parallelism of the application in response to increased throughput.
+    autoScalingEnabled :: Prelude.Maybe Prelude.Bool,
+    -- | Describes the initial number of parallel tasks that a Flink-based
+    -- Kinesis Data Analytics application can perform. If @AutoScalingEnabled@
+    -- is set to True, Kinesis Data Analytics increases the
+    -- @CurrentParallelism@ value in response to application load. The service
+    -- can increase the @CurrentParallelism@ value up to the maximum
+    -- parallelism, which is @ParalellismPerKPU@ times the maximum KPUs for the
+    -- application. The maximum KPUs for an application is 32 by default, and
+    -- can be increased by requesting a limit increase. If application load is
+    -- reduced, the service can reduce the @CurrentParallelism@ value down to
+    -- the @Parallelism@ setting.
+    parallelism :: Prelude.Maybe Prelude.Natural,
+    -- | Describes the number of parallel tasks that a Flink-based Kinesis Data
+    -- Analytics application can perform per Kinesis Processing Unit (KPU) used
+    -- by the application. For more information about KPUs, see
+    -- <http://aws.amazon.com/kinesis/data-analytics/pricing/ Amazon Kinesis Data Analytics Pricing>.
+    parallelismPerKPU :: Prelude.Maybe Prelude.Natural,
+    -- | Describes whether the application uses the default parallelism for the
+    -- Kinesis Data Analytics service. You must set this property to @CUSTOM@
+    -- in order to change your application\'s @AutoScalingEnabled@,
+    -- @Parallelism@, or @ParallelismPerKPU@ properties.
+    configurationType :: ConfigurationType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ParallelismConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'autoScalingEnabled', 'parallelismConfiguration_autoScalingEnabled' - Describes whether the Kinesis Data Analytics service can increase the
+-- parallelism of the application in response to increased throughput.
+--
+-- 'parallelism', 'parallelismConfiguration_parallelism' - Describes the initial number of parallel tasks that a Flink-based
+-- Kinesis Data Analytics application can perform. If @AutoScalingEnabled@
+-- is set to True, Kinesis Data Analytics increases the
+-- @CurrentParallelism@ value in response to application load. The service
+-- can increase the @CurrentParallelism@ value up to the maximum
+-- parallelism, which is @ParalellismPerKPU@ times the maximum KPUs for the
+-- application. The maximum KPUs for an application is 32 by default, and
+-- can be increased by requesting a limit increase. If application load is
+-- reduced, the service can reduce the @CurrentParallelism@ value down to
+-- the @Parallelism@ setting.
+--
+-- 'parallelismPerKPU', 'parallelismConfiguration_parallelismPerKPU' - Describes the number of parallel tasks that a Flink-based Kinesis Data
+-- Analytics application can perform per Kinesis Processing Unit (KPU) used
+-- by the application. For more information about KPUs, see
+-- <http://aws.amazon.com/kinesis/data-analytics/pricing/ Amazon Kinesis Data Analytics Pricing>.
+--
+-- 'configurationType', 'parallelismConfiguration_configurationType' - Describes whether the application uses the default parallelism for the
+-- Kinesis Data Analytics service. You must set this property to @CUSTOM@
+-- in order to change your application\'s @AutoScalingEnabled@,
+-- @Parallelism@, or @ParallelismPerKPU@ properties.
+newParallelismConfiguration ::
+  -- | 'configurationType'
+  ConfigurationType ->
+  ParallelismConfiguration
+newParallelismConfiguration pConfigurationType_ =
+  ParallelismConfiguration'
+    { autoScalingEnabled =
+        Prelude.Nothing,
+      parallelism = Prelude.Nothing,
+      parallelismPerKPU = Prelude.Nothing,
+      configurationType = pConfigurationType_
+    }
+
+-- | Describes whether the Kinesis Data Analytics service can increase the
+-- parallelism of the application in response to increased throughput.
+parallelismConfiguration_autoScalingEnabled :: Lens.Lens' ParallelismConfiguration (Prelude.Maybe Prelude.Bool)
+parallelismConfiguration_autoScalingEnabled = Lens.lens (\ParallelismConfiguration' {autoScalingEnabled} -> autoScalingEnabled) (\s@ParallelismConfiguration' {} a -> s {autoScalingEnabled = a} :: ParallelismConfiguration)
+
+-- | Describes the initial number of parallel tasks that a Flink-based
+-- Kinesis Data Analytics application can perform. If @AutoScalingEnabled@
+-- is set to True, Kinesis Data Analytics increases the
+-- @CurrentParallelism@ value in response to application load. The service
+-- can increase the @CurrentParallelism@ value up to the maximum
+-- parallelism, which is @ParalellismPerKPU@ times the maximum KPUs for the
+-- application. The maximum KPUs for an application is 32 by default, and
+-- can be increased by requesting a limit increase. If application load is
+-- reduced, the service can reduce the @CurrentParallelism@ value down to
+-- the @Parallelism@ setting.
+parallelismConfiguration_parallelism :: Lens.Lens' ParallelismConfiguration (Prelude.Maybe Prelude.Natural)
+parallelismConfiguration_parallelism = Lens.lens (\ParallelismConfiguration' {parallelism} -> parallelism) (\s@ParallelismConfiguration' {} a -> s {parallelism = a} :: ParallelismConfiguration)
+
+-- | Describes the number of parallel tasks that a Flink-based Kinesis Data
+-- Analytics application can perform per Kinesis Processing Unit (KPU) used
+-- by the application. For more information about KPUs, see
+-- <http://aws.amazon.com/kinesis/data-analytics/pricing/ Amazon Kinesis Data Analytics Pricing>.
+parallelismConfiguration_parallelismPerKPU :: Lens.Lens' ParallelismConfiguration (Prelude.Maybe Prelude.Natural)
+parallelismConfiguration_parallelismPerKPU = Lens.lens (\ParallelismConfiguration' {parallelismPerKPU} -> parallelismPerKPU) (\s@ParallelismConfiguration' {} a -> s {parallelismPerKPU = a} :: ParallelismConfiguration)
+
+-- | Describes whether the application uses the default parallelism for the
+-- Kinesis Data Analytics service. You must set this property to @CUSTOM@
+-- in order to change your application\'s @AutoScalingEnabled@,
+-- @Parallelism@, or @ParallelismPerKPU@ properties.
+parallelismConfiguration_configurationType :: Lens.Lens' ParallelismConfiguration ConfigurationType
+parallelismConfiguration_configurationType = Lens.lens (\ParallelismConfiguration' {configurationType} -> configurationType) (\s@ParallelismConfiguration' {} a -> s {configurationType = a} :: ParallelismConfiguration)
+
+instance Prelude.Hashable ParallelismConfiguration where
+  hashWithSalt _salt ParallelismConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` autoScalingEnabled
+      `Prelude.hashWithSalt` parallelism
+      `Prelude.hashWithSalt` parallelismPerKPU
+      `Prelude.hashWithSalt` configurationType
+
+instance Prelude.NFData ParallelismConfiguration where
+  rnf ParallelismConfiguration' {..} =
+    Prelude.rnf autoScalingEnabled
+      `Prelude.seq` Prelude.rnf parallelism
+      `Prelude.seq` Prelude.rnf parallelismPerKPU
+      `Prelude.seq` Prelude.rnf configurationType
+
+instance Data.ToJSON ParallelismConfiguration where
+  toJSON ParallelismConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("AutoScalingEnabled" Data..=)
+              Prelude.<$> autoScalingEnabled,
+            ("Parallelism" Data..=) Prelude.<$> parallelism,
+            ("ParallelismPerKPU" Data..=)
+              Prelude.<$> parallelismPerKPU,
+            Prelude.Just
+              ("ConfigurationType" Data..= configurationType)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ParallelismConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ParallelismConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ParallelismConfigurationDescription.hs
@@ -0,0 +1,197 @@
+{-# 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.KinesisAnalyticsV2.Types.ParallelismConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.ParallelismConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ConfigurationType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes parameters for how a Flink-based Kinesis Data Analytics
+-- application executes multiple tasks simultaneously.
+--
+-- /See:/ 'newParallelismConfigurationDescription' smart constructor.
+data ParallelismConfigurationDescription = ParallelismConfigurationDescription'
+  { -- | Describes whether the Kinesis Data Analytics service can increase the
+    -- parallelism of the application in response to increased throughput.
+    autoScalingEnabled :: Prelude.Maybe Prelude.Bool,
+    -- | Describes whether the application uses the default parallelism for the
+    -- Kinesis Data Analytics service.
+    configurationType :: Prelude.Maybe ConfigurationType,
+    -- | Describes the current number of parallel tasks that a Flink-based
+    -- Kinesis Data Analytics application can perform. If @AutoScalingEnabled@
+    -- is set to True, Kinesis Data Analytics can increase this value in
+    -- response to application load. The service can increase this value up to
+    -- the maximum parallelism, which is @ParalellismPerKPU@ times the maximum
+    -- KPUs for the application. The maximum KPUs for an application is 32 by
+    -- default, and can be increased by requesting a limit increase. If
+    -- application load is reduced, the service can reduce the
+    -- @CurrentParallelism@ value down to the @Parallelism@ setting.
+    currentParallelism :: Prelude.Maybe Prelude.Natural,
+    -- | Describes the initial number of parallel tasks that a Flink-based
+    -- Kinesis Data Analytics application can perform. If @AutoScalingEnabled@
+    -- is set to True, then Kinesis Data Analytics can increase the
+    -- @CurrentParallelism@ value in response to application load. The service
+    -- can increase @CurrentParallelism@ up to the maximum parallelism, which
+    -- is @ParalellismPerKPU@ times the maximum KPUs for the application. The
+    -- maximum KPUs for an application is 32 by default, and can be increased
+    -- by requesting a limit increase. If application load is reduced, the
+    -- service can reduce the @CurrentParallelism@ value down to the
+    -- @Parallelism@ setting.
+    parallelism :: Prelude.Maybe Prelude.Natural,
+    -- | Describes the number of parallel tasks that a Flink-based Kinesis Data
+    -- Analytics application can perform per Kinesis Processing Unit (KPU) used
+    -- by the application.
+    parallelismPerKPU :: Prelude.Maybe Prelude.Natural
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ParallelismConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'autoScalingEnabled', 'parallelismConfigurationDescription_autoScalingEnabled' - Describes whether the Kinesis Data Analytics service can increase the
+-- parallelism of the application in response to increased throughput.
+--
+-- 'configurationType', 'parallelismConfigurationDescription_configurationType' - Describes whether the application uses the default parallelism for the
+-- Kinesis Data Analytics service.
+--
+-- 'currentParallelism', 'parallelismConfigurationDescription_currentParallelism' - Describes the current number of parallel tasks that a Flink-based
+-- Kinesis Data Analytics application can perform. If @AutoScalingEnabled@
+-- is set to True, Kinesis Data Analytics can increase this value in
+-- response to application load. The service can increase this value up to
+-- the maximum parallelism, which is @ParalellismPerKPU@ times the maximum
+-- KPUs for the application. The maximum KPUs for an application is 32 by
+-- default, and can be increased by requesting a limit increase. If
+-- application load is reduced, the service can reduce the
+-- @CurrentParallelism@ value down to the @Parallelism@ setting.
+--
+-- 'parallelism', 'parallelismConfigurationDescription_parallelism' - Describes the initial number of parallel tasks that a Flink-based
+-- Kinesis Data Analytics application can perform. If @AutoScalingEnabled@
+-- is set to True, then Kinesis Data Analytics can increase the
+-- @CurrentParallelism@ value in response to application load. The service
+-- can increase @CurrentParallelism@ up to the maximum parallelism, which
+-- is @ParalellismPerKPU@ times the maximum KPUs for the application. The
+-- maximum KPUs for an application is 32 by default, and can be increased
+-- by requesting a limit increase. If application load is reduced, the
+-- service can reduce the @CurrentParallelism@ value down to the
+-- @Parallelism@ setting.
+--
+-- 'parallelismPerKPU', 'parallelismConfigurationDescription_parallelismPerKPU' - Describes the number of parallel tasks that a Flink-based Kinesis Data
+-- Analytics application can perform per Kinesis Processing Unit (KPU) used
+-- by the application.
+newParallelismConfigurationDescription ::
+  ParallelismConfigurationDescription
+newParallelismConfigurationDescription =
+  ParallelismConfigurationDescription'
+    { autoScalingEnabled =
+        Prelude.Nothing,
+      configurationType = Prelude.Nothing,
+      currentParallelism = Prelude.Nothing,
+      parallelism = Prelude.Nothing,
+      parallelismPerKPU = Prelude.Nothing
+    }
+
+-- | Describes whether the Kinesis Data Analytics service can increase the
+-- parallelism of the application in response to increased throughput.
+parallelismConfigurationDescription_autoScalingEnabled :: Lens.Lens' ParallelismConfigurationDescription (Prelude.Maybe Prelude.Bool)
+parallelismConfigurationDescription_autoScalingEnabled = Lens.lens (\ParallelismConfigurationDescription' {autoScalingEnabled} -> autoScalingEnabled) (\s@ParallelismConfigurationDescription' {} a -> s {autoScalingEnabled = a} :: ParallelismConfigurationDescription)
+
+-- | Describes whether the application uses the default parallelism for the
+-- Kinesis Data Analytics service.
+parallelismConfigurationDescription_configurationType :: Lens.Lens' ParallelismConfigurationDescription (Prelude.Maybe ConfigurationType)
+parallelismConfigurationDescription_configurationType = Lens.lens (\ParallelismConfigurationDescription' {configurationType} -> configurationType) (\s@ParallelismConfigurationDescription' {} a -> s {configurationType = a} :: ParallelismConfigurationDescription)
+
+-- | Describes the current number of parallel tasks that a Flink-based
+-- Kinesis Data Analytics application can perform. If @AutoScalingEnabled@
+-- is set to True, Kinesis Data Analytics can increase this value in
+-- response to application load. The service can increase this value up to
+-- the maximum parallelism, which is @ParalellismPerKPU@ times the maximum
+-- KPUs for the application. The maximum KPUs for an application is 32 by
+-- default, and can be increased by requesting a limit increase. If
+-- application load is reduced, the service can reduce the
+-- @CurrentParallelism@ value down to the @Parallelism@ setting.
+parallelismConfigurationDescription_currentParallelism :: Lens.Lens' ParallelismConfigurationDescription (Prelude.Maybe Prelude.Natural)
+parallelismConfigurationDescription_currentParallelism = Lens.lens (\ParallelismConfigurationDescription' {currentParallelism} -> currentParallelism) (\s@ParallelismConfigurationDescription' {} a -> s {currentParallelism = a} :: ParallelismConfigurationDescription)
+
+-- | Describes the initial number of parallel tasks that a Flink-based
+-- Kinesis Data Analytics application can perform. If @AutoScalingEnabled@
+-- is set to True, then Kinesis Data Analytics can increase the
+-- @CurrentParallelism@ value in response to application load. The service
+-- can increase @CurrentParallelism@ up to the maximum parallelism, which
+-- is @ParalellismPerKPU@ times the maximum KPUs for the application. The
+-- maximum KPUs for an application is 32 by default, and can be increased
+-- by requesting a limit increase. If application load is reduced, the
+-- service can reduce the @CurrentParallelism@ value down to the
+-- @Parallelism@ setting.
+parallelismConfigurationDescription_parallelism :: Lens.Lens' ParallelismConfigurationDescription (Prelude.Maybe Prelude.Natural)
+parallelismConfigurationDescription_parallelism = Lens.lens (\ParallelismConfigurationDescription' {parallelism} -> parallelism) (\s@ParallelismConfigurationDescription' {} a -> s {parallelism = a} :: ParallelismConfigurationDescription)
+
+-- | Describes the number of parallel tasks that a Flink-based Kinesis Data
+-- Analytics application can perform per Kinesis Processing Unit (KPU) used
+-- by the application.
+parallelismConfigurationDescription_parallelismPerKPU :: Lens.Lens' ParallelismConfigurationDescription (Prelude.Maybe Prelude.Natural)
+parallelismConfigurationDescription_parallelismPerKPU = Lens.lens (\ParallelismConfigurationDescription' {parallelismPerKPU} -> parallelismPerKPU) (\s@ParallelismConfigurationDescription' {} a -> s {parallelismPerKPU = a} :: ParallelismConfigurationDescription)
+
+instance
+  Data.FromJSON
+    ParallelismConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "ParallelismConfigurationDescription"
+      ( \x ->
+          ParallelismConfigurationDescription'
+            Prelude.<$> (x Data..:? "AutoScalingEnabled")
+            Prelude.<*> (x Data..:? "ConfigurationType")
+            Prelude.<*> (x Data..:? "CurrentParallelism")
+            Prelude.<*> (x Data..:? "Parallelism")
+            Prelude.<*> (x Data..:? "ParallelismPerKPU")
+      )
+
+instance
+  Prelude.Hashable
+    ParallelismConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    ParallelismConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` autoScalingEnabled
+        `Prelude.hashWithSalt` configurationType
+        `Prelude.hashWithSalt` currentParallelism
+        `Prelude.hashWithSalt` parallelism
+        `Prelude.hashWithSalt` parallelismPerKPU
+
+instance
+  Prelude.NFData
+    ParallelismConfigurationDescription
+  where
+  rnf ParallelismConfigurationDescription' {..} =
+    Prelude.rnf autoScalingEnabled
+      `Prelude.seq` Prelude.rnf configurationType
+      `Prelude.seq` Prelude.rnf currentParallelism
+      `Prelude.seq` Prelude.rnf parallelism
+      `Prelude.seq` Prelude.rnf parallelismPerKPU
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ParallelismConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ParallelismConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ParallelismConfigurationUpdate.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.KinesisAnalyticsV2.Types.ParallelismConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.ParallelismConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ConfigurationType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes updates to parameters for how an application executes multiple
+-- tasks simultaneously.
+--
+-- /See:/ 'newParallelismConfigurationUpdate' smart constructor.
+data ParallelismConfigurationUpdate = ParallelismConfigurationUpdate'
+  { -- | Describes updates to whether the Kinesis Data Analytics service can
+    -- increase the parallelism of a Flink-based Kinesis Data Analytics
+    -- application in response to increased throughput.
+    autoScalingEnabledUpdate :: Prelude.Maybe Prelude.Bool,
+    -- | Describes updates to whether the application uses the default
+    -- parallelism for the Kinesis Data Analytics service, or if a custom
+    -- parallelism is used. You must set this property to @CUSTOM@ in order to
+    -- change your application\'s @AutoScalingEnabled@, @Parallelism@, or
+    -- @ParallelismPerKPU@ properties.
+    configurationTypeUpdate :: Prelude.Maybe ConfigurationType,
+    -- | Describes updates to the number of parallel tasks an application can
+    -- perform per Kinesis Processing Unit (KPU) used by the application.
+    parallelismPerKPUUpdate :: Prelude.Maybe Prelude.Natural,
+    -- | Describes updates to the initial number of parallel tasks an application
+    -- can perform. If @AutoScalingEnabled@ is set to True, then Kinesis Data
+    -- Analytics can increase the @CurrentParallelism@ value in response to
+    -- application load. The service can increase @CurrentParallelism@ up to
+    -- the maximum parallelism, which is @ParalellismPerKPU@ times the maximum
+    -- KPUs for the application. The maximum KPUs for an application is 32 by
+    -- default, and can be increased by requesting a limit increase. If
+    -- application load is reduced, the service will reduce
+    -- @CurrentParallelism@ down to the @Parallelism@ setting.
+    parallelismUpdate :: Prelude.Maybe Prelude.Natural
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ParallelismConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'autoScalingEnabledUpdate', 'parallelismConfigurationUpdate_autoScalingEnabledUpdate' - Describes updates to whether the Kinesis Data Analytics service can
+-- increase the parallelism of a Flink-based Kinesis Data Analytics
+-- application in response to increased throughput.
+--
+-- 'configurationTypeUpdate', 'parallelismConfigurationUpdate_configurationTypeUpdate' - Describes updates to whether the application uses the default
+-- parallelism for the Kinesis Data Analytics service, or if a custom
+-- parallelism is used. You must set this property to @CUSTOM@ in order to
+-- change your application\'s @AutoScalingEnabled@, @Parallelism@, or
+-- @ParallelismPerKPU@ properties.
+--
+-- 'parallelismPerKPUUpdate', 'parallelismConfigurationUpdate_parallelismPerKPUUpdate' - Describes updates to the number of parallel tasks an application can
+-- perform per Kinesis Processing Unit (KPU) used by the application.
+--
+-- 'parallelismUpdate', 'parallelismConfigurationUpdate_parallelismUpdate' - Describes updates to the initial number of parallel tasks an application
+-- can perform. If @AutoScalingEnabled@ is set to True, then Kinesis Data
+-- Analytics can increase the @CurrentParallelism@ value in response to
+-- application load. The service can increase @CurrentParallelism@ up to
+-- the maximum parallelism, which is @ParalellismPerKPU@ times the maximum
+-- KPUs for the application. The maximum KPUs for an application is 32 by
+-- default, and can be increased by requesting a limit increase. If
+-- application load is reduced, the service will reduce
+-- @CurrentParallelism@ down to the @Parallelism@ setting.
+newParallelismConfigurationUpdate ::
+  ParallelismConfigurationUpdate
+newParallelismConfigurationUpdate =
+  ParallelismConfigurationUpdate'
+    { autoScalingEnabledUpdate =
+        Prelude.Nothing,
+      configurationTypeUpdate = Prelude.Nothing,
+      parallelismPerKPUUpdate = Prelude.Nothing,
+      parallelismUpdate = Prelude.Nothing
+    }
+
+-- | Describes updates to whether the Kinesis Data Analytics service can
+-- increase the parallelism of a Flink-based Kinesis Data Analytics
+-- application in response to increased throughput.
+parallelismConfigurationUpdate_autoScalingEnabledUpdate :: Lens.Lens' ParallelismConfigurationUpdate (Prelude.Maybe Prelude.Bool)
+parallelismConfigurationUpdate_autoScalingEnabledUpdate = Lens.lens (\ParallelismConfigurationUpdate' {autoScalingEnabledUpdate} -> autoScalingEnabledUpdate) (\s@ParallelismConfigurationUpdate' {} a -> s {autoScalingEnabledUpdate = a} :: ParallelismConfigurationUpdate)
+
+-- | Describes updates to whether the application uses the default
+-- parallelism for the Kinesis Data Analytics service, or if a custom
+-- parallelism is used. You must set this property to @CUSTOM@ in order to
+-- change your application\'s @AutoScalingEnabled@, @Parallelism@, or
+-- @ParallelismPerKPU@ properties.
+parallelismConfigurationUpdate_configurationTypeUpdate :: Lens.Lens' ParallelismConfigurationUpdate (Prelude.Maybe ConfigurationType)
+parallelismConfigurationUpdate_configurationTypeUpdate = Lens.lens (\ParallelismConfigurationUpdate' {configurationTypeUpdate} -> configurationTypeUpdate) (\s@ParallelismConfigurationUpdate' {} a -> s {configurationTypeUpdate = a} :: ParallelismConfigurationUpdate)
+
+-- | Describes updates to the number of parallel tasks an application can
+-- perform per Kinesis Processing Unit (KPU) used by the application.
+parallelismConfigurationUpdate_parallelismPerKPUUpdate :: Lens.Lens' ParallelismConfigurationUpdate (Prelude.Maybe Prelude.Natural)
+parallelismConfigurationUpdate_parallelismPerKPUUpdate = Lens.lens (\ParallelismConfigurationUpdate' {parallelismPerKPUUpdate} -> parallelismPerKPUUpdate) (\s@ParallelismConfigurationUpdate' {} a -> s {parallelismPerKPUUpdate = a} :: ParallelismConfigurationUpdate)
+
+-- | Describes updates to the initial number of parallel tasks an application
+-- can perform. If @AutoScalingEnabled@ is set to True, then Kinesis Data
+-- Analytics can increase the @CurrentParallelism@ value in response to
+-- application load. The service can increase @CurrentParallelism@ up to
+-- the maximum parallelism, which is @ParalellismPerKPU@ times the maximum
+-- KPUs for the application. The maximum KPUs for an application is 32 by
+-- default, and can be increased by requesting a limit increase. If
+-- application load is reduced, the service will reduce
+-- @CurrentParallelism@ down to the @Parallelism@ setting.
+parallelismConfigurationUpdate_parallelismUpdate :: Lens.Lens' ParallelismConfigurationUpdate (Prelude.Maybe Prelude.Natural)
+parallelismConfigurationUpdate_parallelismUpdate = Lens.lens (\ParallelismConfigurationUpdate' {parallelismUpdate} -> parallelismUpdate) (\s@ParallelismConfigurationUpdate' {} a -> s {parallelismUpdate = a} :: ParallelismConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    ParallelismConfigurationUpdate
+  where
+  hashWithSalt
+    _salt
+    ParallelismConfigurationUpdate' {..} =
+      _salt
+        `Prelude.hashWithSalt` autoScalingEnabledUpdate
+        `Prelude.hashWithSalt` configurationTypeUpdate
+        `Prelude.hashWithSalt` parallelismPerKPUUpdate
+        `Prelude.hashWithSalt` parallelismUpdate
+
+instance
+  Prelude.NFData
+    ParallelismConfigurationUpdate
+  where
+  rnf ParallelismConfigurationUpdate' {..} =
+    Prelude.rnf autoScalingEnabledUpdate
+      `Prelude.seq` Prelude.rnf configurationTypeUpdate
+      `Prelude.seq` Prelude.rnf parallelismPerKPUUpdate
+      `Prelude.seq` Prelude.rnf parallelismUpdate
+
+instance Data.ToJSON ParallelismConfigurationUpdate where
+  toJSON ParallelismConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("AutoScalingEnabledUpdate" Data..=)
+              Prelude.<$> autoScalingEnabledUpdate,
+            ("ConfigurationTypeUpdate" Data..=)
+              Prelude.<$> configurationTypeUpdate,
+            ("ParallelismPerKPUUpdate" Data..=)
+              Prelude.<$> parallelismPerKPUUpdate,
+            ("ParallelismUpdate" Data..=)
+              Prelude.<$> parallelismUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/PropertyGroup.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/PropertyGroup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/PropertyGroup.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.KinesisAnalyticsV2.Types.PropertyGroup
+-- 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.KinesisAnalyticsV2.Types.PropertyGroup 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
+
+-- | Property key-value pairs passed into an application.
+--
+-- /See:/ 'newPropertyGroup' smart constructor.
+data PropertyGroup = PropertyGroup'
+  { -- | Describes the key of an application execution property key-value pair.
+    propertyGroupId :: Prelude.Text,
+    -- | Describes the value of an application execution property key-value pair.
+    propertyMap :: Prelude.HashMap Prelude.Text Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PropertyGroup' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'propertyGroupId', 'propertyGroup_propertyGroupId' - Describes the key of an application execution property key-value pair.
+--
+-- 'propertyMap', 'propertyGroup_propertyMap' - Describes the value of an application execution property key-value pair.
+newPropertyGroup ::
+  -- | 'propertyGroupId'
+  Prelude.Text ->
+  PropertyGroup
+newPropertyGroup pPropertyGroupId_ =
+  PropertyGroup'
+    { propertyGroupId = pPropertyGroupId_,
+      propertyMap = Prelude.mempty
+    }
+
+-- | Describes the key of an application execution property key-value pair.
+propertyGroup_propertyGroupId :: Lens.Lens' PropertyGroup Prelude.Text
+propertyGroup_propertyGroupId = Lens.lens (\PropertyGroup' {propertyGroupId} -> propertyGroupId) (\s@PropertyGroup' {} a -> s {propertyGroupId = a} :: PropertyGroup)
+
+-- | Describes the value of an application execution property key-value pair.
+propertyGroup_propertyMap :: Lens.Lens' PropertyGroup (Prelude.HashMap Prelude.Text Prelude.Text)
+propertyGroup_propertyMap = Lens.lens (\PropertyGroup' {propertyMap} -> propertyMap) (\s@PropertyGroup' {} a -> s {propertyMap = a} :: PropertyGroup) Prelude.. Lens.coerced
+
+instance Data.FromJSON PropertyGroup where
+  parseJSON =
+    Data.withObject
+      "PropertyGroup"
+      ( \x ->
+          PropertyGroup'
+            Prelude.<$> (x Data..: "PropertyGroupId")
+            Prelude.<*> (x Data..:? "PropertyMap" Data..!= Prelude.mempty)
+      )
+
+instance Prelude.Hashable PropertyGroup where
+  hashWithSalt _salt PropertyGroup' {..} =
+    _salt
+      `Prelude.hashWithSalt` propertyGroupId
+      `Prelude.hashWithSalt` propertyMap
+
+instance Prelude.NFData PropertyGroup where
+  rnf PropertyGroup' {..} =
+    Prelude.rnf propertyGroupId
+      `Prelude.seq` Prelude.rnf propertyMap
+
+instance Data.ToJSON PropertyGroup where
+  toJSON PropertyGroup' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("PropertyGroupId" Data..= propertyGroupId),
+            Prelude.Just ("PropertyMap" Data..= propertyMap)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/RecordColumn.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/RecordColumn.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/RecordColumn.hs
@@ -0,0 +1,123 @@
+{-# 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.KinesisAnalyticsV2.Types.RecordColumn
+-- 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.KinesisAnalyticsV2.Types.RecordColumn 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
+
+-- | For a SQL-based Kinesis Data Analytics application, describes the
+-- mapping of each data element in the streaming source to the
+-- corresponding column in the in-application stream.
+--
+-- Also used to describe the format of the reference data source.
+--
+-- /See:/ 'newRecordColumn' smart constructor.
+data RecordColumn = RecordColumn'
+  { -- | A reference to the data element in the streaming input or the reference
+    -- data source.
+    mapping :: Prelude.Maybe Prelude.Text,
+    -- | The name of the column that is created in the in-application input
+    -- stream or reference table.
+    name :: Prelude.Text,
+    -- | The type of column created in the in-application input stream or
+    -- reference table.
+    sqlType :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RecordColumn' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'mapping', 'recordColumn_mapping' - A reference to the data element in the streaming input or the reference
+-- data source.
+--
+-- 'name', 'recordColumn_name' - The name of the column that is created in the in-application input
+-- stream or reference table.
+--
+-- 'sqlType', 'recordColumn_sqlType' - The type of column created in the in-application input stream or
+-- reference table.
+newRecordColumn ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'sqlType'
+  Prelude.Text ->
+  RecordColumn
+newRecordColumn pName_ pSqlType_ =
+  RecordColumn'
+    { mapping = Prelude.Nothing,
+      name = pName_,
+      sqlType = pSqlType_
+    }
+
+-- | A reference to the data element in the streaming input or the reference
+-- data source.
+recordColumn_mapping :: Lens.Lens' RecordColumn (Prelude.Maybe Prelude.Text)
+recordColumn_mapping = Lens.lens (\RecordColumn' {mapping} -> mapping) (\s@RecordColumn' {} a -> s {mapping = a} :: RecordColumn)
+
+-- | The name of the column that is created in the in-application input
+-- stream or reference table.
+recordColumn_name :: Lens.Lens' RecordColumn Prelude.Text
+recordColumn_name = Lens.lens (\RecordColumn' {name} -> name) (\s@RecordColumn' {} a -> s {name = a} :: RecordColumn)
+
+-- | The type of column created in the in-application input stream or
+-- reference table.
+recordColumn_sqlType :: Lens.Lens' RecordColumn Prelude.Text
+recordColumn_sqlType = Lens.lens (\RecordColumn' {sqlType} -> sqlType) (\s@RecordColumn' {} a -> s {sqlType = a} :: RecordColumn)
+
+instance Data.FromJSON RecordColumn where
+  parseJSON =
+    Data.withObject
+      "RecordColumn"
+      ( \x ->
+          RecordColumn'
+            Prelude.<$> (x Data..:? "Mapping")
+            Prelude.<*> (x Data..: "Name")
+            Prelude.<*> (x Data..: "SqlType")
+      )
+
+instance Prelude.Hashable RecordColumn where
+  hashWithSalt _salt RecordColumn' {..} =
+    _salt
+      `Prelude.hashWithSalt` mapping
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` sqlType
+
+instance Prelude.NFData RecordColumn where
+  rnf RecordColumn' {..} =
+    Prelude.rnf mapping
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf sqlType
+
+instance Data.ToJSON RecordColumn where
+  toJSON RecordColumn' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Mapping" Data..=) Prelude.<$> mapping,
+            Prelude.Just ("Name" Data..= name),
+            Prelude.Just ("SqlType" Data..= sqlType)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/RecordFormat.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/RecordFormat.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/RecordFormat.hs
@@ -0,0 +1,110 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.RecordFormat
+-- 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.KinesisAnalyticsV2.Types.RecordFormat where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.MappingParameters
+import Amazonka.KinesisAnalyticsV2.Types.RecordFormatType
+import qualified Amazonka.Prelude as Prelude
+
+-- | For a SQL-based Kinesis Data Analytics application, describes the record
+-- format and relevant mapping information that should be applied to
+-- schematize the records on the stream.
+--
+-- /See:/ 'newRecordFormat' smart constructor.
+data RecordFormat = RecordFormat'
+  { -- | When you configure application input at the time of creating or updating
+    -- an application, provides additional mapping information specific to the
+    -- record format (such as JSON, CSV, or record fields delimited by some
+    -- delimiter) on the streaming source.
+    mappingParameters :: Prelude.Maybe MappingParameters,
+    -- | The type of record format.
+    recordFormatType :: RecordFormatType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RecordFormat' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'mappingParameters', 'recordFormat_mappingParameters' - When you configure application input at the time of creating or updating
+-- an application, provides additional mapping information specific to the
+-- record format (such as JSON, CSV, or record fields delimited by some
+-- delimiter) on the streaming source.
+--
+-- 'recordFormatType', 'recordFormat_recordFormatType' - The type of record format.
+newRecordFormat ::
+  -- | 'recordFormatType'
+  RecordFormatType ->
+  RecordFormat
+newRecordFormat pRecordFormatType_ =
+  RecordFormat'
+    { mappingParameters = Prelude.Nothing,
+      recordFormatType = pRecordFormatType_
+    }
+
+-- | When you configure application input at the time of creating or updating
+-- an application, provides additional mapping information specific to the
+-- record format (such as JSON, CSV, or record fields delimited by some
+-- delimiter) on the streaming source.
+recordFormat_mappingParameters :: Lens.Lens' RecordFormat (Prelude.Maybe MappingParameters)
+recordFormat_mappingParameters = Lens.lens (\RecordFormat' {mappingParameters} -> mappingParameters) (\s@RecordFormat' {} a -> s {mappingParameters = a} :: RecordFormat)
+
+-- | The type of record format.
+recordFormat_recordFormatType :: Lens.Lens' RecordFormat RecordFormatType
+recordFormat_recordFormatType = Lens.lens (\RecordFormat' {recordFormatType} -> recordFormatType) (\s@RecordFormat' {} a -> s {recordFormatType = a} :: RecordFormat)
+
+instance Data.FromJSON RecordFormat where
+  parseJSON =
+    Data.withObject
+      "RecordFormat"
+      ( \x ->
+          RecordFormat'
+            Prelude.<$> (x Data..:? "MappingParameters")
+            Prelude.<*> (x Data..: "RecordFormatType")
+      )
+
+instance Prelude.Hashable RecordFormat where
+  hashWithSalt _salt RecordFormat' {..} =
+    _salt
+      `Prelude.hashWithSalt` mappingParameters
+      `Prelude.hashWithSalt` recordFormatType
+
+instance Prelude.NFData RecordFormat where
+  rnf RecordFormat' {..} =
+    Prelude.rnf mappingParameters
+      `Prelude.seq` Prelude.rnf recordFormatType
+
+instance Data.ToJSON RecordFormat where
+  toJSON RecordFormat' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("MappingParameters" Data..=)
+              Prelude.<$> mappingParameters,
+            Prelude.Just
+              ("RecordFormatType" Data..= recordFormatType)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/RecordFormatType.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/RecordFormatType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/RecordFormatType.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.KinesisAnalyticsV2.Types.RecordFormatType
+-- 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.KinesisAnalyticsV2.Types.RecordFormatType
+  ( RecordFormatType
+      ( ..,
+        RecordFormatType_CSV,
+        RecordFormatType_JSON
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype RecordFormatType = RecordFormatType'
+  { fromRecordFormatType ::
+      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 RecordFormatType_CSV :: RecordFormatType
+pattern RecordFormatType_CSV = RecordFormatType' "CSV"
+
+pattern RecordFormatType_JSON :: RecordFormatType
+pattern RecordFormatType_JSON = RecordFormatType' "JSON"
+
+{-# COMPLETE
+  RecordFormatType_CSV,
+  RecordFormatType_JSON,
+  RecordFormatType'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ReferenceDataSource.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ReferenceDataSource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ReferenceDataSource.hs
@@ -0,0 +1,123 @@
+{-# 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.KinesisAnalyticsV2.Types.ReferenceDataSource
+-- 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.KinesisAnalyticsV2.Types.ReferenceDataSource where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSource
+import Amazonka.KinesisAnalyticsV2.Types.SourceSchema
+import qualified Amazonka.Prelude as Prelude
+
+-- | For a SQL-based Kinesis Data Analytics application, describes the
+-- reference data source by providing the source information (Amazon S3
+-- bucket name and object key name), the resulting in-application table
+-- name that is created, and the necessary schema to map the data elements
+-- in the Amazon S3 object to the in-application table.
+--
+-- /See:/ 'newReferenceDataSource' smart constructor.
+data ReferenceDataSource = ReferenceDataSource'
+  { -- | Identifies the S3 bucket and object that contains the reference data. A
+    -- Kinesis Data Analytics application loads reference data only once. If
+    -- the data changes, you call the UpdateApplication operation to trigger
+    -- reloading of data into your application.
+    s3ReferenceDataSource :: Prelude.Maybe S3ReferenceDataSource,
+    -- | The name of the in-application table to create.
+    tableName :: Prelude.Text,
+    -- | Describes the format of the data in the streaming source, and how each
+    -- data element maps to corresponding columns created in the in-application
+    -- stream.
+    referenceSchema :: SourceSchema
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ReferenceDataSource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 's3ReferenceDataSource', 'referenceDataSource_s3ReferenceDataSource' - Identifies the S3 bucket and object that contains the reference data. A
+-- Kinesis Data Analytics application loads reference data only once. If
+-- the data changes, you call the UpdateApplication operation to trigger
+-- reloading of data into your application.
+--
+-- 'tableName', 'referenceDataSource_tableName' - The name of the in-application table to create.
+--
+-- 'referenceSchema', 'referenceDataSource_referenceSchema' - Describes the format of the data in the streaming source, and how each
+-- data element maps to corresponding columns created in the in-application
+-- stream.
+newReferenceDataSource ::
+  -- | 'tableName'
+  Prelude.Text ->
+  -- | 'referenceSchema'
+  SourceSchema ->
+  ReferenceDataSource
+newReferenceDataSource pTableName_ pReferenceSchema_ =
+  ReferenceDataSource'
+    { s3ReferenceDataSource =
+        Prelude.Nothing,
+      tableName = pTableName_,
+      referenceSchema = pReferenceSchema_
+    }
+
+-- | Identifies the S3 bucket and object that contains the reference data. A
+-- Kinesis Data Analytics application loads reference data only once. If
+-- the data changes, you call the UpdateApplication operation to trigger
+-- reloading of data into your application.
+referenceDataSource_s3ReferenceDataSource :: Lens.Lens' ReferenceDataSource (Prelude.Maybe S3ReferenceDataSource)
+referenceDataSource_s3ReferenceDataSource = Lens.lens (\ReferenceDataSource' {s3ReferenceDataSource} -> s3ReferenceDataSource) (\s@ReferenceDataSource' {} a -> s {s3ReferenceDataSource = a} :: ReferenceDataSource)
+
+-- | The name of the in-application table to create.
+referenceDataSource_tableName :: Lens.Lens' ReferenceDataSource Prelude.Text
+referenceDataSource_tableName = Lens.lens (\ReferenceDataSource' {tableName} -> tableName) (\s@ReferenceDataSource' {} a -> s {tableName = a} :: ReferenceDataSource)
+
+-- | Describes the format of the data in the streaming source, and how each
+-- data element maps to corresponding columns created in the in-application
+-- stream.
+referenceDataSource_referenceSchema :: Lens.Lens' ReferenceDataSource SourceSchema
+referenceDataSource_referenceSchema = Lens.lens (\ReferenceDataSource' {referenceSchema} -> referenceSchema) (\s@ReferenceDataSource' {} a -> s {referenceSchema = a} :: ReferenceDataSource)
+
+instance Prelude.Hashable ReferenceDataSource where
+  hashWithSalt _salt ReferenceDataSource' {..} =
+    _salt
+      `Prelude.hashWithSalt` s3ReferenceDataSource
+      `Prelude.hashWithSalt` tableName
+      `Prelude.hashWithSalt` referenceSchema
+
+instance Prelude.NFData ReferenceDataSource where
+  rnf ReferenceDataSource' {..} =
+    Prelude.rnf s3ReferenceDataSource
+      `Prelude.seq` Prelude.rnf tableName
+      `Prelude.seq` Prelude.rnf referenceSchema
+
+instance Data.ToJSON ReferenceDataSource where
+  toJSON ReferenceDataSource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("S3ReferenceDataSource" Data..=)
+              Prelude.<$> s3ReferenceDataSource,
+            Prelude.Just ("TableName" Data..= tableName),
+            Prelude.Just
+              ("ReferenceSchema" Data..= referenceSchema)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ReferenceDataSourceDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ReferenceDataSourceDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ReferenceDataSourceDescription.hs
@@ -0,0 +1,148 @@
+{-# 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.KinesisAnalyticsV2.Types.ReferenceDataSourceDescription
+-- 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.KinesisAnalyticsV2.Types.ReferenceDataSourceDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSourceDescription
+import Amazonka.KinesisAnalyticsV2.Types.SourceSchema
+import qualified Amazonka.Prelude as Prelude
+
+-- | For a SQL-based Kinesis Data Analytics application, describes the
+-- reference data source configured for an application.
+--
+-- /See:/ 'newReferenceDataSourceDescription' smart constructor.
+data ReferenceDataSourceDescription = ReferenceDataSourceDescription'
+  { -- | Describes the format of the data in the streaming source, and how each
+    -- data element maps to corresponding columns created in the in-application
+    -- stream.
+    referenceSchema :: Prelude.Maybe SourceSchema,
+    -- | The ID of the reference data source. This is the ID that Kinesis Data
+    -- Analytics assigns when you add the reference data source to your
+    -- application using the CreateApplication or UpdateApplication operation.
+    referenceId :: Prelude.Text,
+    -- | The in-application table name created by the specific reference data
+    -- source configuration.
+    tableName :: Prelude.Text,
+    -- | Provides the Amazon S3 bucket name, the object key name that contains
+    -- the reference data.
+    s3ReferenceDataSourceDescription :: S3ReferenceDataSourceDescription
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ReferenceDataSourceDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'referenceSchema', 'referenceDataSourceDescription_referenceSchema' - Describes the format of the data in the streaming source, and how each
+-- data element maps to corresponding columns created in the in-application
+-- stream.
+--
+-- 'referenceId', 'referenceDataSourceDescription_referenceId' - The ID of the reference data source. This is the ID that Kinesis Data
+-- Analytics assigns when you add the reference data source to your
+-- application using the CreateApplication or UpdateApplication operation.
+--
+-- 'tableName', 'referenceDataSourceDescription_tableName' - The in-application table name created by the specific reference data
+-- source configuration.
+--
+-- 's3ReferenceDataSourceDescription', 'referenceDataSourceDescription_s3ReferenceDataSourceDescription' - Provides the Amazon S3 bucket name, the object key name that contains
+-- the reference data.
+newReferenceDataSourceDescription ::
+  -- | 'referenceId'
+  Prelude.Text ->
+  -- | 'tableName'
+  Prelude.Text ->
+  -- | 's3ReferenceDataSourceDescription'
+  S3ReferenceDataSourceDescription ->
+  ReferenceDataSourceDescription
+newReferenceDataSourceDescription
+  pReferenceId_
+  pTableName_
+  pS3ReferenceDataSourceDescription_ =
+    ReferenceDataSourceDescription'
+      { referenceSchema =
+          Prelude.Nothing,
+        referenceId = pReferenceId_,
+        tableName = pTableName_,
+        s3ReferenceDataSourceDescription =
+          pS3ReferenceDataSourceDescription_
+      }
+
+-- | Describes the format of the data in the streaming source, and how each
+-- data element maps to corresponding columns created in the in-application
+-- stream.
+referenceDataSourceDescription_referenceSchema :: Lens.Lens' ReferenceDataSourceDescription (Prelude.Maybe SourceSchema)
+referenceDataSourceDescription_referenceSchema = Lens.lens (\ReferenceDataSourceDescription' {referenceSchema} -> referenceSchema) (\s@ReferenceDataSourceDescription' {} a -> s {referenceSchema = a} :: ReferenceDataSourceDescription)
+
+-- | The ID of the reference data source. This is the ID that Kinesis Data
+-- Analytics assigns when you add the reference data source to your
+-- application using the CreateApplication or UpdateApplication operation.
+referenceDataSourceDescription_referenceId :: Lens.Lens' ReferenceDataSourceDescription Prelude.Text
+referenceDataSourceDescription_referenceId = Lens.lens (\ReferenceDataSourceDescription' {referenceId} -> referenceId) (\s@ReferenceDataSourceDescription' {} a -> s {referenceId = a} :: ReferenceDataSourceDescription)
+
+-- | The in-application table name created by the specific reference data
+-- source configuration.
+referenceDataSourceDescription_tableName :: Lens.Lens' ReferenceDataSourceDescription Prelude.Text
+referenceDataSourceDescription_tableName = Lens.lens (\ReferenceDataSourceDescription' {tableName} -> tableName) (\s@ReferenceDataSourceDescription' {} a -> s {tableName = a} :: ReferenceDataSourceDescription)
+
+-- | Provides the Amazon S3 bucket name, the object key name that contains
+-- the reference data.
+referenceDataSourceDescription_s3ReferenceDataSourceDescription :: Lens.Lens' ReferenceDataSourceDescription S3ReferenceDataSourceDescription
+referenceDataSourceDescription_s3ReferenceDataSourceDescription = Lens.lens (\ReferenceDataSourceDescription' {s3ReferenceDataSourceDescription} -> s3ReferenceDataSourceDescription) (\s@ReferenceDataSourceDescription' {} a -> s {s3ReferenceDataSourceDescription = a} :: ReferenceDataSourceDescription)
+
+instance Data.FromJSON ReferenceDataSourceDescription where
+  parseJSON =
+    Data.withObject
+      "ReferenceDataSourceDescription"
+      ( \x ->
+          ReferenceDataSourceDescription'
+            Prelude.<$> (x Data..:? "ReferenceSchema")
+            Prelude.<*> (x Data..: "ReferenceId")
+            Prelude.<*> (x Data..: "TableName")
+            Prelude.<*> (x Data..: "S3ReferenceDataSourceDescription")
+      )
+
+instance
+  Prelude.Hashable
+    ReferenceDataSourceDescription
+  where
+  hashWithSalt
+    _salt
+    ReferenceDataSourceDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` referenceSchema
+        `Prelude.hashWithSalt` referenceId
+        `Prelude.hashWithSalt` tableName
+        `Prelude.hashWithSalt` s3ReferenceDataSourceDescription
+
+instance
+  Prelude.NFData
+    ReferenceDataSourceDescription
+  where
+  rnf ReferenceDataSourceDescription' {..} =
+    Prelude.rnf referenceSchema
+      `Prelude.seq` Prelude.rnf referenceId
+      `Prelude.seq` Prelude.rnf tableName
+      `Prelude.seq` Prelude.rnf s3ReferenceDataSourceDescription
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ReferenceDataSourceUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ReferenceDataSourceUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ReferenceDataSourceUpdate.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.KinesisAnalyticsV2.Types.ReferenceDataSourceUpdate
+-- 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.KinesisAnalyticsV2.Types.ReferenceDataSourceUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSourceUpdate
+import Amazonka.KinesisAnalyticsV2.Types.SourceSchema
+import qualified Amazonka.Prelude as Prelude
+
+-- | When you update a reference data source configuration for a SQL-based
+-- Kinesis Data Analytics application, this object provides all the updated
+-- values (such as the source bucket name and object key name), the
+-- in-application table name that is created, and updated mapping
+-- information that maps the data in the Amazon S3 object to the
+-- in-application reference table that is created.
+--
+-- /See:/ 'newReferenceDataSourceUpdate' smart constructor.
+data ReferenceDataSourceUpdate = ReferenceDataSourceUpdate'
+  { -- | Describes the format of the data in the streaming source, and how each
+    -- data element maps to corresponding columns created in the in-application
+    -- stream.
+    referenceSchemaUpdate :: Prelude.Maybe SourceSchema,
+    -- | Describes the S3 bucket name, object key name, and IAM role that Kinesis
+    -- Data Analytics can assume to read the Amazon S3 object on your behalf
+    -- and populate the in-application reference table.
+    s3ReferenceDataSourceUpdate :: Prelude.Maybe S3ReferenceDataSourceUpdate,
+    -- | The in-application table name that is created by this update.
+    tableNameUpdate :: Prelude.Maybe Prelude.Text,
+    -- | The ID of the reference data source that is being updated. You can use
+    -- the DescribeApplication operation to get this value.
+    referenceId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ReferenceDataSourceUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'referenceSchemaUpdate', 'referenceDataSourceUpdate_referenceSchemaUpdate' - Describes the format of the data in the streaming source, and how each
+-- data element maps to corresponding columns created in the in-application
+-- stream.
+--
+-- 's3ReferenceDataSourceUpdate', 'referenceDataSourceUpdate_s3ReferenceDataSourceUpdate' - Describes the S3 bucket name, object key name, and IAM role that Kinesis
+-- Data Analytics can assume to read the Amazon S3 object on your behalf
+-- and populate the in-application reference table.
+--
+-- 'tableNameUpdate', 'referenceDataSourceUpdate_tableNameUpdate' - The in-application table name that is created by this update.
+--
+-- 'referenceId', 'referenceDataSourceUpdate_referenceId' - The ID of the reference data source that is being updated. You can use
+-- the DescribeApplication operation to get this value.
+newReferenceDataSourceUpdate ::
+  -- | 'referenceId'
+  Prelude.Text ->
+  ReferenceDataSourceUpdate
+newReferenceDataSourceUpdate pReferenceId_ =
+  ReferenceDataSourceUpdate'
+    { referenceSchemaUpdate =
+        Prelude.Nothing,
+      s3ReferenceDataSourceUpdate = Prelude.Nothing,
+      tableNameUpdate = Prelude.Nothing,
+      referenceId = pReferenceId_
+    }
+
+-- | Describes the format of the data in the streaming source, and how each
+-- data element maps to corresponding columns created in the in-application
+-- stream.
+referenceDataSourceUpdate_referenceSchemaUpdate :: Lens.Lens' ReferenceDataSourceUpdate (Prelude.Maybe SourceSchema)
+referenceDataSourceUpdate_referenceSchemaUpdate = Lens.lens (\ReferenceDataSourceUpdate' {referenceSchemaUpdate} -> referenceSchemaUpdate) (\s@ReferenceDataSourceUpdate' {} a -> s {referenceSchemaUpdate = a} :: ReferenceDataSourceUpdate)
+
+-- | Describes the S3 bucket name, object key name, and IAM role that Kinesis
+-- Data Analytics can assume to read the Amazon S3 object on your behalf
+-- and populate the in-application reference table.
+referenceDataSourceUpdate_s3ReferenceDataSourceUpdate :: Lens.Lens' ReferenceDataSourceUpdate (Prelude.Maybe S3ReferenceDataSourceUpdate)
+referenceDataSourceUpdate_s3ReferenceDataSourceUpdate = Lens.lens (\ReferenceDataSourceUpdate' {s3ReferenceDataSourceUpdate} -> s3ReferenceDataSourceUpdate) (\s@ReferenceDataSourceUpdate' {} a -> s {s3ReferenceDataSourceUpdate = a} :: ReferenceDataSourceUpdate)
+
+-- | The in-application table name that is created by this update.
+referenceDataSourceUpdate_tableNameUpdate :: Lens.Lens' ReferenceDataSourceUpdate (Prelude.Maybe Prelude.Text)
+referenceDataSourceUpdate_tableNameUpdate = Lens.lens (\ReferenceDataSourceUpdate' {tableNameUpdate} -> tableNameUpdate) (\s@ReferenceDataSourceUpdate' {} a -> s {tableNameUpdate = a} :: ReferenceDataSourceUpdate)
+
+-- | The ID of the reference data source that is being updated. You can use
+-- the DescribeApplication operation to get this value.
+referenceDataSourceUpdate_referenceId :: Lens.Lens' ReferenceDataSourceUpdate Prelude.Text
+referenceDataSourceUpdate_referenceId = Lens.lens (\ReferenceDataSourceUpdate' {referenceId} -> referenceId) (\s@ReferenceDataSourceUpdate' {} a -> s {referenceId = a} :: ReferenceDataSourceUpdate)
+
+instance Prelude.Hashable ReferenceDataSourceUpdate where
+  hashWithSalt _salt ReferenceDataSourceUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` referenceSchemaUpdate
+      `Prelude.hashWithSalt` s3ReferenceDataSourceUpdate
+      `Prelude.hashWithSalt` tableNameUpdate
+      `Prelude.hashWithSalt` referenceId
+
+instance Prelude.NFData ReferenceDataSourceUpdate where
+  rnf ReferenceDataSourceUpdate' {..} =
+    Prelude.rnf referenceSchemaUpdate
+      `Prelude.seq` Prelude.rnf s3ReferenceDataSourceUpdate
+      `Prelude.seq` Prelude.rnf tableNameUpdate
+      `Prelude.seq` Prelude.rnf referenceId
+
+instance Data.ToJSON ReferenceDataSourceUpdate where
+  toJSON ReferenceDataSourceUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ReferenceSchemaUpdate" Data..=)
+              Prelude.<$> referenceSchemaUpdate,
+            ("S3ReferenceDataSourceUpdate" Data..=)
+              Prelude.<$> s3ReferenceDataSourceUpdate,
+            ("TableNameUpdate" Data..=)
+              Prelude.<$> tableNameUpdate,
+            Prelude.Just ("ReferenceId" Data..= referenceId)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/RunConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/RunConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/RunConfiguration.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.KinesisAnalyticsV2.Types.RunConfiguration
+-- 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.KinesisAnalyticsV2.Types.RunConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationRestoreConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.FlinkRunConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.SqlRunConfiguration
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the starting parameters for an Kinesis Data Analytics
+-- application.
+--
+-- /See:/ 'newRunConfiguration' smart constructor.
+data RunConfiguration = RunConfiguration'
+  { -- | Describes the restore behavior of a restarting application.
+    applicationRestoreConfiguration :: Prelude.Maybe ApplicationRestoreConfiguration,
+    -- | Describes the starting parameters for a Flink-based Kinesis Data
+    -- Analytics application.
+    flinkRunConfiguration :: Prelude.Maybe FlinkRunConfiguration,
+    -- | Describes the starting parameters for a SQL-based Kinesis Data Analytics
+    -- application application.
+    sqlRunConfigurations :: Prelude.Maybe [SqlRunConfiguration]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RunConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationRestoreConfiguration', 'runConfiguration_applicationRestoreConfiguration' - Describes the restore behavior of a restarting application.
+--
+-- 'flinkRunConfiguration', 'runConfiguration_flinkRunConfiguration' - Describes the starting parameters for a Flink-based Kinesis Data
+-- Analytics application.
+--
+-- 'sqlRunConfigurations', 'runConfiguration_sqlRunConfigurations' - Describes the starting parameters for a SQL-based Kinesis Data Analytics
+-- application application.
+newRunConfiguration ::
+  RunConfiguration
+newRunConfiguration =
+  RunConfiguration'
+    { applicationRestoreConfiguration =
+        Prelude.Nothing,
+      flinkRunConfiguration = Prelude.Nothing,
+      sqlRunConfigurations = Prelude.Nothing
+    }
+
+-- | Describes the restore behavior of a restarting application.
+runConfiguration_applicationRestoreConfiguration :: Lens.Lens' RunConfiguration (Prelude.Maybe ApplicationRestoreConfiguration)
+runConfiguration_applicationRestoreConfiguration = Lens.lens (\RunConfiguration' {applicationRestoreConfiguration} -> applicationRestoreConfiguration) (\s@RunConfiguration' {} a -> s {applicationRestoreConfiguration = a} :: RunConfiguration)
+
+-- | Describes the starting parameters for a Flink-based Kinesis Data
+-- Analytics application.
+runConfiguration_flinkRunConfiguration :: Lens.Lens' RunConfiguration (Prelude.Maybe FlinkRunConfiguration)
+runConfiguration_flinkRunConfiguration = Lens.lens (\RunConfiguration' {flinkRunConfiguration} -> flinkRunConfiguration) (\s@RunConfiguration' {} a -> s {flinkRunConfiguration = a} :: RunConfiguration)
+
+-- | Describes the starting parameters for a SQL-based Kinesis Data Analytics
+-- application application.
+runConfiguration_sqlRunConfigurations :: Lens.Lens' RunConfiguration (Prelude.Maybe [SqlRunConfiguration])
+runConfiguration_sqlRunConfigurations = Lens.lens (\RunConfiguration' {sqlRunConfigurations} -> sqlRunConfigurations) (\s@RunConfiguration' {} a -> s {sqlRunConfigurations = a} :: RunConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+instance Prelude.Hashable RunConfiguration where
+  hashWithSalt _salt RunConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationRestoreConfiguration
+      `Prelude.hashWithSalt` flinkRunConfiguration
+      `Prelude.hashWithSalt` sqlRunConfigurations
+
+instance Prelude.NFData RunConfiguration where
+  rnf RunConfiguration' {..} =
+    Prelude.rnf applicationRestoreConfiguration
+      `Prelude.seq` Prelude.rnf flinkRunConfiguration
+      `Prelude.seq` Prelude.rnf sqlRunConfigurations
+
+instance Data.ToJSON RunConfiguration where
+  toJSON RunConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ApplicationRestoreConfiguration" Data..=)
+              Prelude.<$> applicationRestoreConfiguration,
+            ("FlinkRunConfiguration" Data..=)
+              Prelude.<$> flinkRunConfiguration,
+            ("SqlRunConfigurations" Data..=)
+              Prelude.<$> sqlRunConfigurations
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/RunConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/RunConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/RunConfigurationDescription.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.KinesisAnalyticsV2.Types.RunConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.RunConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationRestoreConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.FlinkRunConfiguration
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the starting properties for a Kinesis Data Analytics
+-- application.
+--
+-- /See:/ 'newRunConfigurationDescription' smart constructor.
+data RunConfigurationDescription = RunConfigurationDescription'
+  { -- | Describes the restore behavior of a restarting application.
+    applicationRestoreConfigurationDescription :: Prelude.Maybe ApplicationRestoreConfiguration,
+    flinkRunConfigurationDescription :: Prelude.Maybe FlinkRunConfiguration
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RunConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationRestoreConfigurationDescription', 'runConfigurationDescription_applicationRestoreConfigurationDescription' - Describes the restore behavior of a restarting application.
+--
+-- 'flinkRunConfigurationDescription', 'runConfigurationDescription_flinkRunConfigurationDescription' - Undocumented member.
+newRunConfigurationDescription ::
+  RunConfigurationDescription
+newRunConfigurationDescription =
+  RunConfigurationDescription'
+    { applicationRestoreConfigurationDescription =
+        Prelude.Nothing,
+      flinkRunConfigurationDescription =
+        Prelude.Nothing
+    }
+
+-- | Describes the restore behavior of a restarting application.
+runConfigurationDescription_applicationRestoreConfigurationDescription :: Lens.Lens' RunConfigurationDescription (Prelude.Maybe ApplicationRestoreConfiguration)
+runConfigurationDescription_applicationRestoreConfigurationDescription = Lens.lens (\RunConfigurationDescription' {applicationRestoreConfigurationDescription} -> applicationRestoreConfigurationDescription) (\s@RunConfigurationDescription' {} a -> s {applicationRestoreConfigurationDescription = a} :: RunConfigurationDescription)
+
+-- | Undocumented member.
+runConfigurationDescription_flinkRunConfigurationDescription :: Lens.Lens' RunConfigurationDescription (Prelude.Maybe FlinkRunConfiguration)
+runConfigurationDescription_flinkRunConfigurationDescription = Lens.lens (\RunConfigurationDescription' {flinkRunConfigurationDescription} -> flinkRunConfigurationDescription) (\s@RunConfigurationDescription' {} a -> s {flinkRunConfigurationDescription = a} :: RunConfigurationDescription)
+
+instance Data.FromJSON RunConfigurationDescription where
+  parseJSON =
+    Data.withObject
+      "RunConfigurationDescription"
+      ( \x ->
+          RunConfigurationDescription'
+            Prelude.<$> ( x
+                            Data..:? "ApplicationRestoreConfigurationDescription"
+                        )
+            Prelude.<*> (x Data..:? "FlinkRunConfigurationDescription")
+      )
+
+instance Prelude.Hashable RunConfigurationDescription where
+  hashWithSalt _salt RunConfigurationDescription' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationRestoreConfigurationDescription
+      `Prelude.hashWithSalt` flinkRunConfigurationDescription
+
+instance Prelude.NFData RunConfigurationDescription where
+  rnf RunConfigurationDescription' {..} =
+    Prelude.rnf
+      applicationRestoreConfigurationDescription
+      `Prelude.seq` Prelude.rnf flinkRunConfigurationDescription
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/RunConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/RunConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/RunConfigurationUpdate.hs
@@ -0,0 +1,92 @@
+{-# 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.KinesisAnalyticsV2.Types.RunConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.RunConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.ApplicationRestoreConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.FlinkRunConfiguration
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the updates to the starting parameters for a Kinesis Data
+-- Analytics application.
+--
+-- /See:/ 'newRunConfigurationUpdate' smart constructor.
+data RunConfigurationUpdate = RunConfigurationUpdate'
+  { -- | Describes updates to the restore behavior of a restarting application.
+    applicationRestoreConfiguration :: Prelude.Maybe ApplicationRestoreConfiguration,
+    -- | Describes the starting parameters for a Flink-based Kinesis Data
+    -- Analytics application.
+    flinkRunConfiguration :: Prelude.Maybe FlinkRunConfiguration
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RunConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationRestoreConfiguration', 'runConfigurationUpdate_applicationRestoreConfiguration' - Describes updates to the restore behavior of a restarting application.
+--
+-- 'flinkRunConfiguration', 'runConfigurationUpdate_flinkRunConfiguration' - Describes the starting parameters for a Flink-based Kinesis Data
+-- Analytics application.
+newRunConfigurationUpdate ::
+  RunConfigurationUpdate
+newRunConfigurationUpdate =
+  RunConfigurationUpdate'
+    { applicationRestoreConfiguration =
+        Prelude.Nothing,
+      flinkRunConfiguration = Prelude.Nothing
+    }
+
+-- | Describes updates to the restore behavior of a restarting application.
+runConfigurationUpdate_applicationRestoreConfiguration :: Lens.Lens' RunConfigurationUpdate (Prelude.Maybe ApplicationRestoreConfiguration)
+runConfigurationUpdate_applicationRestoreConfiguration = Lens.lens (\RunConfigurationUpdate' {applicationRestoreConfiguration} -> applicationRestoreConfiguration) (\s@RunConfigurationUpdate' {} a -> s {applicationRestoreConfiguration = a} :: RunConfigurationUpdate)
+
+-- | Describes the starting parameters for a Flink-based Kinesis Data
+-- Analytics application.
+runConfigurationUpdate_flinkRunConfiguration :: Lens.Lens' RunConfigurationUpdate (Prelude.Maybe FlinkRunConfiguration)
+runConfigurationUpdate_flinkRunConfiguration = Lens.lens (\RunConfigurationUpdate' {flinkRunConfiguration} -> flinkRunConfiguration) (\s@RunConfigurationUpdate' {} a -> s {flinkRunConfiguration = a} :: RunConfigurationUpdate)
+
+instance Prelude.Hashable RunConfigurationUpdate where
+  hashWithSalt _salt RunConfigurationUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationRestoreConfiguration
+      `Prelude.hashWithSalt` flinkRunConfiguration
+
+instance Prelude.NFData RunConfigurationUpdate where
+  rnf RunConfigurationUpdate' {..} =
+    Prelude.rnf applicationRestoreConfiguration
+      `Prelude.seq` Prelude.rnf flinkRunConfiguration
+
+instance Data.ToJSON RunConfigurationUpdate where
+  toJSON RunConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ApplicationRestoreConfiguration" Data..=)
+              Prelude.<$> applicationRestoreConfiguration,
+            ("FlinkRunConfiguration" Data..=)
+              Prelude.<$> flinkRunConfiguration
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/RuntimeEnvironment.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/RuntimeEnvironment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/RuntimeEnvironment.hs
@@ -0,0 +1,101 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.RuntimeEnvironment
+-- 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.KinesisAnalyticsV2.Types.RuntimeEnvironment
+  ( RuntimeEnvironment
+      ( ..,
+        RuntimeEnvironment_FLINK_1_11,
+        RuntimeEnvironment_FLINK_1_13,
+        RuntimeEnvironment_FLINK_1_15,
+        RuntimeEnvironment_FLINK_1_6,
+        RuntimeEnvironment_FLINK_1_8,
+        RuntimeEnvironment_SQL_1_0,
+        RuntimeEnvironment_ZEPPELIN_FLINK_1_0,
+        RuntimeEnvironment_ZEPPELIN_FLINK_2_0
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype RuntimeEnvironment = RuntimeEnvironment'
+  { fromRuntimeEnvironment ::
+      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 RuntimeEnvironment_FLINK_1_11 :: RuntimeEnvironment
+pattern RuntimeEnvironment_FLINK_1_11 = RuntimeEnvironment' "FLINK-1_11"
+
+pattern RuntimeEnvironment_FLINK_1_13 :: RuntimeEnvironment
+pattern RuntimeEnvironment_FLINK_1_13 = RuntimeEnvironment' "FLINK-1_13"
+
+pattern RuntimeEnvironment_FLINK_1_15 :: RuntimeEnvironment
+pattern RuntimeEnvironment_FLINK_1_15 = RuntimeEnvironment' "FLINK-1_15"
+
+pattern RuntimeEnvironment_FLINK_1_6 :: RuntimeEnvironment
+pattern RuntimeEnvironment_FLINK_1_6 = RuntimeEnvironment' "FLINK-1_6"
+
+pattern RuntimeEnvironment_FLINK_1_8 :: RuntimeEnvironment
+pattern RuntimeEnvironment_FLINK_1_8 = RuntimeEnvironment' "FLINK-1_8"
+
+pattern RuntimeEnvironment_SQL_1_0 :: RuntimeEnvironment
+pattern RuntimeEnvironment_SQL_1_0 = RuntimeEnvironment' "SQL-1_0"
+
+pattern RuntimeEnvironment_ZEPPELIN_FLINK_1_0 :: RuntimeEnvironment
+pattern RuntimeEnvironment_ZEPPELIN_FLINK_1_0 = RuntimeEnvironment' "ZEPPELIN-FLINK-1_0"
+
+pattern RuntimeEnvironment_ZEPPELIN_FLINK_2_0 :: RuntimeEnvironment
+pattern RuntimeEnvironment_ZEPPELIN_FLINK_2_0 = RuntimeEnvironment' "ZEPPELIN-FLINK-2_0"
+
+{-# COMPLETE
+  RuntimeEnvironment_FLINK_1_11,
+  RuntimeEnvironment_FLINK_1_13,
+  RuntimeEnvironment_FLINK_1_15,
+  RuntimeEnvironment_FLINK_1_6,
+  RuntimeEnvironment_FLINK_1_8,
+  RuntimeEnvironment_SQL_1_0,
+  RuntimeEnvironment_ZEPPELIN_FLINK_1_0,
+  RuntimeEnvironment_ZEPPELIN_FLINK_2_0,
+  RuntimeEnvironment'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/S3ApplicationCodeLocationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ApplicationCodeLocationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ApplicationCodeLocationDescription.hs
@@ -0,0 +1,117 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.S3ApplicationCodeLocationDescription
+-- 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.KinesisAnalyticsV2.Types.S3ApplicationCodeLocationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the location of an application\'s code stored in an S3 bucket.
+--
+-- /See:/ 'newS3ApplicationCodeLocationDescription' smart constructor.
+data S3ApplicationCodeLocationDescription = S3ApplicationCodeLocationDescription'
+  { -- | The version of the object containing the application code.
+    objectVersion :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) for the S3 bucket containing the
+    -- application code.
+    bucketARN :: Prelude.Text,
+    -- | The file key for the object containing the application code.
+    fileKey :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'S3ApplicationCodeLocationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'objectVersion', 's3ApplicationCodeLocationDescription_objectVersion' - The version of the object containing the application code.
+--
+-- 'bucketARN', 's3ApplicationCodeLocationDescription_bucketARN' - The Amazon Resource Name (ARN) for the S3 bucket containing the
+-- application code.
+--
+-- 'fileKey', 's3ApplicationCodeLocationDescription_fileKey' - The file key for the object containing the application code.
+newS3ApplicationCodeLocationDescription ::
+  -- | 'bucketARN'
+  Prelude.Text ->
+  -- | 'fileKey'
+  Prelude.Text ->
+  S3ApplicationCodeLocationDescription
+newS3ApplicationCodeLocationDescription
+  pBucketARN_
+  pFileKey_ =
+    S3ApplicationCodeLocationDescription'
+      { objectVersion =
+          Prelude.Nothing,
+        bucketARN = pBucketARN_,
+        fileKey = pFileKey_
+      }
+
+-- | The version of the object containing the application code.
+s3ApplicationCodeLocationDescription_objectVersion :: Lens.Lens' S3ApplicationCodeLocationDescription (Prelude.Maybe Prelude.Text)
+s3ApplicationCodeLocationDescription_objectVersion = Lens.lens (\S3ApplicationCodeLocationDescription' {objectVersion} -> objectVersion) (\s@S3ApplicationCodeLocationDescription' {} a -> s {objectVersion = a} :: S3ApplicationCodeLocationDescription)
+
+-- | The Amazon Resource Name (ARN) for the S3 bucket containing the
+-- application code.
+s3ApplicationCodeLocationDescription_bucketARN :: Lens.Lens' S3ApplicationCodeLocationDescription Prelude.Text
+s3ApplicationCodeLocationDescription_bucketARN = Lens.lens (\S3ApplicationCodeLocationDescription' {bucketARN} -> bucketARN) (\s@S3ApplicationCodeLocationDescription' {} a -> s {bucketARN = a} :: S3ApplicationCodeLocationDescription)
+
+-- | The file key for the object containing the application code.
+s3ApplicationCodeLocationDescription_fileKey :: Lens.Lens' S3ApplicationCodeLocationDescription Prelude.Text
+s3ApplicationCodeLocationDescription_fileKey = Lens.lens (\S3ApplicationCodeLocationDescription' {fileKey} -> fileKey) (\s@S3ApplicationCodeLocationDescription' {} a -> s {fileKey = a} :: S3ApplicationCodeLocationDescription)
+
+instance
+  Data.FromJSON
+    S3ApplicationCodeLocationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "S3ApplicationCodeLocationDescription"
+      ( \x ->
+          S3ApplicationCodeLocationDescription'
+            Prelude.<$> (x Data..:? "ObjectVersion")
+            Prelude.<*> (x Data..: "BucketARN")
+            Prelude.<*> (x Data..: "FileKey")
+      )
+
+instance
+  Prelude.Hashable
+    S3ApplicationCodeLocationDescription
+  where
+  hashWithSalt
+    _salt
+    S3ApplicationCodeLocationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` objectVersion
+        `Prelude.hashWithSalt` bucketARN
+        `Prelude.hashWithSalt` fileKey
+
+instance
+  Prelude.NFData
+    S3ApplicationCodeLocationDescription
+  where
+  rnf S3ApplicationCodeLocationDescription' {..} =
+    Prelude.rnf objectVersion
+      `Prelude.seq` Prelude.rnf bucketARN
+      `Prelude.seq` Prelude.rnf fileKey
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/S3Configuration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/S3Configuration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/S3Configuration.hs
@@ -0,0 +1,90 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.S3Configuration
+-- 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.KinesisAnalyticsV2.Types.S3Configuration 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
+
+-- | For a SQL-based Kinesis Data Analytics application, provides a
+-- description of an Amazon S3 data source, including the Amazon Resource
+-- Name (ARN) of the S3 bucket and the name of the Amazon S3 object that
+-- contains the data.
+--
+-- /See:/ 'newS3Configuration' smart constructor.
+data S3Configuration = S3Configuration'
+  { -- | The ARN of the S3 bucket that contains the data.
+    bucketARN :: Prelude.Text,
+    -- | The name of the object that contains the data.
+    fileKey :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'S3Configuration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'bucketARN', 's3Configuration_bucketARN' - The ARN of the S3 bucket that contains the data.
+--
+-- 'fileKey', 's3Configuration_fileKey' - The name of the object that contains the data.
+newS3Configuration ::
+  -- | 'bucketARN'
+  Prelude.Text ->
+  -- | 'fileKey'
+  Prelude.Text ->
+  S3Configuration
+newS3Configuration pBucketARN_ pFileKey_ =
+  S3Configuration'
+    { bucketARN = pBucketARN_,
+      fileKey = pFileKey_
+    }
+
+-- | The ARN of the S3 bucket that contains the data.
+s3Configuration_bucketARN :: Lens.Lens' S3Configuration Prelude.Text
+s3Configuration_bucketARN = Lens.lens (\S3Configuration' {bucketARN} -> bucketARN) (\s@S3Configuration' {} a -> s {bucketARN = a} :: S3Configuration)
+
+-- | The name of the object that contains the data.
+s3Configuration_fileKey :: Lens.Lens' S3Configuration Prelude.Text
+s3Configuration_fileKey = Lens.lens (\S3Configuration' {fileKey} -> fileKey) (\s@S3Configuration' {} a -> s {fileKey = a} :: S3Configuration)
+
+instance Prelude.Hashable S3Configuration where
+  hashWithSalt _salt S3Configuration' {..} =
+    _salt
+      `Prelude.hashWithSalt` bucketARN
+      `Prelude.hashWithSalt` fileKey
+
+instance Prelude.NFData S3Configuration where
+  rnf S3Configuration' {..} =
+    Prelude.rnf bucketARN
+      `Prelude.seq` Prelude.rnf fileKey
+
+instance Data.ToJSON S3Configuration where
+  toJSON S3Configuration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("BucketARN" Data..= bucketARN),
+            Prelude.Just ("FileKey" Data..= fileKey)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentBaseLocation.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentBaseLocation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentBaseLocation.hs
@@ -0,0 +1,85 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.S3ContentBaseLocation
+-- 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.KinesisAnalyticsV2.Types.S3ContentBaseLocation 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 S3 bucket that holds the application information.
+--
+-- /See:/ 'newS3ContentBaseLocation' smart constructor.
+data S3ContentBaseLocation = S3ContentBaseLocation'
+  { -- | The base path for the S3 bucket.
+    basePath :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the S3 bucket.
+    bucketARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'S3ContentBaseLocation' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'basePath', 's3ContentBaseLocation_basePath' - The base path for the S3 bucket.
+--
+-- 'bucketARN', 's3ContentBaseLocation_bucketARN' - The Amazon Resource Name (ARN) of the S3 bucket.
+newS3ContentBaseLocation ::
+  -- | 'bucketARN'
+  Prelude.Text ->
+  S3ContentBaseLocation
+newS3ContentBaseLocation pBucketARN_ =
+  S3ContentBaseLocation'
+    { basePath = Prelude.Nothing,
+      bucketARN = pBucketARN_
+    }
+
+-- | The base path for the S3 bucket.
+s3ContentBaseLocation_basePath :: Lens.Lens' S3ContentBaseLocation (Prelude.Maybe Prelude.Text)
+s3ContentBaseLocation_basePath = Lens.lens (\S3ContentBaseLocation' {basePath} -> basePath) (\s@S3ContentBaseLocation' {} a -> s {basePath = a} :: S3ContentBaseLocation)
+
+-- | The Amazon Resource Name (ARN) of the S3 bucket.
+s3ContentBaseLocation_bucketARN :: Lens.Lens' S3ContentBaseLocation Prelude.Text
+s3ContentBaseLocation_bucketARN = Lens.lens (\S3ContentBaseLocation' {bucketARN} -> bucketARN) (\s@S3ContentBaseLocation' {} a -> s {bucketARN = a} :: S3ContentBaseLocation)
+
+instance Prelude.Hashable S3ContentBaseLocation where
+  hashWithSalt _salt S3ContentBaseLocation' {..} =
+    _salt
+      `Prelude.hashWithSalt` basePath
+      `Prelude.hashWithSalt` bucketARN
+
+instance Prelude.NFData S3ContentBaseLocation where
+  rnf S3ContentBaseLocation' {..} =
+    Prelude.rnf basePath
+      `Prelude.seq` Prelude.rnf bucketARN
+
+instance Data.ToJSON S3ContentBaseLocation where
+  toJSON S3ContentBaseLocation' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("BasePath" Data..=) Prelude.<$> basePath,
+            Prelude.Just ("BucketARN" Data..= bucketARN)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentBaseLocationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentBaseLocationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentBaseLocationDescription.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.KinesisAnalyticsV2.Types.S3ContentBaseLocationDescription
+-- 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.KinesisAnalyticsV2.Types.S3ContentBaseLocationDescription 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 description of the S3 base location that holds the application.
+--
+-- /See:/ 'newS3ContentBaseLocationDescription' smart constructor.
+data S3ContentBaseLocationDescription = S3ContentBaseLocationDescription'
+  { -- | The base path for the S3 bucket.
+    basePath :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the S3 bucket.
+    bucketARN :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'S3ContentBaseLocationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'basePath', 's3ContentBaseLocationDescription_basePath' - The base path for the S3 bucket.
+--
+-- 'bucketARN', 's3ContentBaseLocationDescription_bucketARN' - The Amazon Resource Name (ARN) of the S3 bucket.
+newS3ContentBaseLocationDescription ::
+  -- | 'bucketARN'
+  Prelude.Text ->
+  S3ContentBaseLocationDescription
+newS3ContentBaseLocationDescription pBucketARN_ =
+  S3ContentBaseLocationDescription'
+    { basePath =
+        Prelude.Nothing,
+      bucketARN = pBucketARN_
+    }
+
+-- | The base path for the S3 bucket.
+s3ContentBaseLocationDescription_basePath :: Lens.Lens' S3ContentBaseLocationDescription (Prelude.Maybe Prelude.Text)
+s3ContentBaseLocationDescription_basePath = Lens.lens (\S3ContentBaseLocationDescription' {basePath} -> basePath) (\s@S3ContentBaseLocationDescription' {} a -> s {basePath = a} :: S3ContentBaseLocationDescription)
+
+-- | The Amazon Resource Name (ARN) of the S3 bucket.
+s3ContentBaseLocationDescription_bucketARN :: Lens.Lens' S3ContentBaseLocationDescription Prelude.Text
+s3ContentBaseLocationDescription_bucketARN = Lens.lens (\S3ContentBaseLocationDescription' {bucketARN} -> bucketARN) (\s@S3ContentBaseLocationDescription' {} a -> s {bucketARN = a} :: S3ContentBaseLocationDescription)
+
+instance
+  Data.FromJSON
+    S3ContentBaseLocationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "S3ContentBaseLocationDescription"
+      ( \x ->
+          S3ContentBaseLocationDescription'
+            Prelude.<$> (x Data..:? "BasePath")
+            Prelude.<*> (x Data..: "BucketARN")
+      )
+
+instance
+  Prelude.Hashable
+    S3ContentBaseLocationDescription
+  where
+  hashWithSalt
+    _salt
+    S3ContentBaseLocationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` basePath
+        `Prelude.hashWithSalt` bucketARN
+
+instance
+  Prelude.NFData
+    S3ContentBaseLocationDescription
+  where
+  rnf S3ContentBaseLocationDescription' {..} =
+    Prelude.rnf basePath
+      `Prelude.seq` Prelude.rnf bucketARN
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentBaseLocationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentBaseLocationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentBaseLocationUpdate.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.KinesisAnalyticsV2.Types.S3ContentBaseLocationUpdate
+-- 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.KinesisAnalyticsV2.Types.S3ContentBaseLocationUpdate 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 information required to update the S3 base location that holds the
+-- application.
+--
+-- /See:/ 'newS3ContentBaseLocationUpdate' smart constructor.
+data S3ContentBaseLocationUpdate = S3ContentBaseLocationUpdate'
+  { -- | The updated S3 bucket path.
+    basePathUpdate :: Prelude.Maybe Prelude.Text,
+    -- | The updated Amazon Resource Name (ARN) of the S3 bucket.
+    bucketARNUpdate :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'S3ContentBaseLocationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'basePathUpdate', 's3ContentBaseLocationUpdate_basePathUpdate' - The updated S3 bucket path.
+--
+-- 'bucketARNUpdate', 's3ContentBaseLocationUpdate_bucketARNUpdate' - The updated Amazon Resource Name (ARN) of the S3 bucket.
+newS3ContentBaseLocationUpdate ::
+  S3ContentBaseLocationUpdate
+newS3ContentBaseLocationUpdate =
+  S3ContentBaseLocationUpdate'
+    { basePathUpdate =
+        Prelude.Nothing,
+      bucketARNUpdate = Prelude.Nothing
+    }
+
+-- | The updated S3 bucket path.
+s3ContentBaseLocationUpdate_basePathUpdate :: Lens.Lens' S3ContentBaseLocationUpdate (Prelude.Maybe Prelude.Text)
+s3ContentBaseLocationUpdate_basePathUpdate = Lens.lens (\S3ContentBaseLocationUpdate' {basePathUpdate} -> basePathUpdate) (\s@S3ContentBaseLocationUpdate' {} a -> s {basePathUpdate = a} :: S3ContentBaseLocationUpdate)
+
+-- | The updated Amazon Resource Name (ARN) of the S3 bucket.
+s3ContentBaseLocationUpdate_bucketARNUpdate :: Lens.Lens' S3ContentBaseLocationUpdate (Prelude.Maybe Prelude.Text)
+s3ContentBaseLocationUpdate_bucketARNUpdate = Lens.lens (\S3ContentBaseLocationUpdate' {bucketARNUpdate} -> bucketARNUpdate) (\s@S3ContentBaseLocationUpdate' {} a -> s {bucketARNUpdate = a} :: S3ContentBaseLocationUpdate)
+
+instance Prelude.Hashable S3ContentBaseLocationUpdate where
+  hashWithSalt _salt S3ContentBaseLocationUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` basePathUpdate
+      `Prelude.hashWithSalt` bucketARNUpdate
+
+instance Prelude.NFData S3ContentBaseLocationUpdate where
+  rnf S3ContentBaseLocationUpdate' {..} =
+    Prelude.rnf basePathUpdate
+      `Prelude.seq` Prelude.rnf bucketARNUpdate
+
+instance Data.ToJSON S3ContentBaseLocationUpdate where
+  toJSON S3ContentBaseLocationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("BasePathUpdate" Data..=)
+              Prelude.<$> basePathUpdate,
+            ("BucketARNUpdate" Data..=)
+              Prelude.<$> bucketARNUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentLocation.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentLocation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentLocation.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.S3ContentLocation
+-- 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.KinesisAnalyticsV2.Types.S3ContentLocation 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
+
+-- | For a Kinesis Data Analytics application provides a description of an
+-- Amazon S3 object, including the Amazon Resource Name (ARN) of the S3
+-- bucket, the name of the Amazon S3 object that contains the data, and the
+-- version number of the Amazon S3 object that contains the data.
+--
+-- /See:/ 'newS3ContentLocation' smart constructor.
+data S3ContentLocation = S3ContentLocation'
+  { -- | The version of the object containing the application code.
+    objectVersion :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) for the S3 bucket containing the
+    -- application code.
+    bucketARN :: Prelude.Text,
+    -- | The file key for the object containing the application code.
+    fileKey :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'S3ContentLocation' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'objectVersion', 's3ContentLocation_objectVersion' - The version of the object containing the application code.
+--
+-- 'bucketARN', 's3ContentLocation_bucketARN' - The Amazon Resource Name (ARN) for the S3 bucket containing the
+-- application code.
+--
+-- 'fileKey', 's3ContentLocation_fileKey' - The file key for the object containing the application code.
+newS3ContentLocation ::
+  -- | 'bucketARN'
+  Prelude.Text ->
+  -- | 'fileKey'
+  Prelude.Text ->
+  S3ContentLocation
+newS3ContentLocation pBucketARN_ pFileKey_ =
+  S3ContentLocation'
+    { objectVersion = Prelude.Nothing,
+      bucketARN = pBucketARN_,
+      fileKey = pFileKey_
+    }
+
+-- | The version of the object containing the application code.
+s3ContentLocation_objectVersion :: Lens.Lens' S3ContentLocation (Prelude.Maybe Prelude.Text)
+s3ContentLocation_objectVersion = Lens.lens (\S3ContentLocation' {objectVersion} -> objectVersion) (\s@S3ContentLocation' {} a -> s {objectVersion = a} :: S3ContentLocation)
+
+-- | The Amazon Resource Name (ARN) for the S3 bucket containing the
+-- application code.
+s3ContentLocation_bucketARN :: Lens.Lens' S3ContentLocation Prelude.Text
+s3ContentLocation_bucketARN = Lens.lens (\S3ContentLocation' {bucketARN} -> bucketARN) (\s@S3ContentLocation' {} a -> s {bucketARN = a} :: S3ContentLocation)
+
+-- | The file key for the object containing the application code.
+s3ContentLocation_fileKey :: Lens.Lens' S3ContentLocation Prelude.Text
+s3ContentLocation_fileKey = Lens.lens (\S3ContentLocation' {fileKey} -> fileKey) (\s@S3ContentLocation' {} a -> s {fileKey = a} :: S3ContentLocation)
+
+instance Data.FromJSON S3ContentLocation where
+  parseJSON =
+    Data.withObject
+      "S3ContentLocation"
+      ( \x ->
+          S3ContentLocation'
+            Prelude.<$> (x Data..:? "ObjectVersion")
+            Prelude.<*> (x Data..: "BucketARN")
+            Prelude.<*> (x Data..: "FileKey")
+      )
+
+instance Prelude.Hashable S3ContentLocation where
+  hashWithSalt _salt S3ContentLocation' {..} =
+    _salt
+      `Prelude.hashWithSalt` objectVersion
+      `Prelude.hashWithSalt` bucketARN
+      `Prelude.hashWithSalt` fileKey
+
+instance Prelude.NFData S3ContentLocation where
+  rnf S3ContentLocation' {..} =
+    Prelude.rnf objectVersion
+      `Prelude.seq` Prelude.rnf bucketARN
+      `Prelude.seq` Prelude.rnf fileKey
+
+instance Data.ToJSON S3ContentLocation where
+  toJSON S3ContentLocation' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ObjectVersion" Data..=) Prelude.<$> objectVersion,
+            Prelude.Just ("BucketARN" Data..= bucketARN),
+            Prelude.Just ("FileKey" Data..= fileKey)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentLocationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentLocationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ContentLocationUpdate.hs
@@ -0,0 +1,102 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.S3ContentLocationUpdate
+-- 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.KinesisAnalyticsV2.Types.S3ContentLocationUpdate 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 update for the Amazon S3 code content location for an
+-- application.
+--
+-- /See:/ 'newS3ContentLocationUpdate' smart constructor.
+data S3ContentLocationUpdate = S3ContentLocationUpdate'
+  { -- | The new Amazon Resource Name (ARN) for the S3 bucket containing the
+    -- application code.
+    bucketARNUpdate :: Prelude.Maybe Prelude.Text,
+    -- | The new file key for the object containing the application code.
+    fileKeyUpdate :: Prelude.Maybe Prelude.Text,
+    -- | The new version of the object containing the application code.
+    objectVersionUpdate :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'S3ContentLocationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'bucketARNUpdate', 's3ContentLocationUpdate_bucketARNUpdate' - The new Amazon Resource Name (ARN) for the S3 bucket containing the
+-- application code.
+--
+-- 'fileKeyUpdate', 's3ContentLocationUpdate_fileKeyUpdate' - The new file key for the object containing the application code.
+--
+-- 'objectVersionUpdate', 's3ContentLocationUpdate_objectVersionUpdate' - The new version of the object containing the application code.
+newS3ContentLocationUpdate ::
+  S3ContentLocationUpdate
+newS3ContentLocationUpdate =
+  S3ContentLocationUpdate'
+    { bucketARNUpdate =
+        Prelude.Nothing,
+      fileKeyUpdate = Prelude.Nothing,
+      objectVersionUpdate = Prelude.Nothing
+    }
+
+-- | The new Amazon Resource Name (ARN) for the S3 bucket containing the
+-- application code.
+s3ContentLocationUpdate_bucketARNUpdate :: Lens.Lens' S3ContentLocationUpdate (Prelude.Maybe Prelude.Text)
+s3ContentLocationUpdate_bucketARNUpdate = Lens.lens (\S3ContentLocationUpdate' {bucketARNUpdate} -> bucketARNUpdate) (\s@S3ContentLocationUpdate' {} a -> s {bucketARNUpdate = a} :: S3ContentLocationUpdate)
+
+-- | The new file key for the object containing the application code.
+s3ContentLocationUpdate_fileKeyUpdate :: Lens.Lens' S3ContentLocationUpdate (Prelude.Maybe Prelude.Text)
+s3ContentLocationUpdate_fileKeyUpdate = Lens.lens (\S3ContentLocationUpdate' {fileKeyUpdate} -> fileKeyUpdate) (\s@S3ContentLocationUpdate' {} a -> s {fileKeyUpdate = a} :: S3ContentLocationUpdate)
+
+-- | The new version of the object containing the application code.
+s3ContentLocationUpdate_objectVersionUpdate :: Lens.Lens' S3ContentLocationUpdate (Prelude.Maybe Prelude.Text)
+s3ContentLocationUpdate_objectVersionUpdate = Lens.lens (\S3ContentLocationUpdate' {objectVersionUpdate} -> objectVersionUpdate) (\s@S3ContentLocationUpdate' {} a -> s {objectVersionUpdate = a} :: S3ContentLocationUpdate)
+
+instance Prelude.Hashable S3ContentLocationUpdate where
+  hashWithSalt _salt S3ContentLocationUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` bucketARNUpdate
+      `Prelude.hashWithSalt` fileKeyUpdate
+      `Prelude.hashWithSalt` objectVersionUpdate
+
+instance Prelude.NFData S3ContentLocationUpdate where
+  rnf S3ContentLocationUpdate' {..} =
+    Prelude.rnf bucketARNUpdate
+      `Prelude.seq` Prelude.rnf fileKeyUpdate
+      `Prelude.seq` Prelude.rnf objectVersionUpdate
+
+instance Data.ToJSON S3ContentLocationUpdate where
+  toJSON S3ContentLocationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("BucketARNUpdate" Data..=)
+              Prelude.<$> bucketARNUpdate,
+            ("FileKeyUpdate" Data..=) Prelude.<$> fileKeyUpdate,
+            ("ObjectVersionUpdate" Data..=)
+              Prelude.<$> objectVersionUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/S3ReferenceDataSource.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ReferenceDataSource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ReferenceDataSource.hs
@@ -0,0 +1,88 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSource
+-- 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.KinesisAnalyticsV2.Types.S3ReferenceDataSource 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
+
+-- | For a SQL-based Kinesis Data Analytics application, identifies the
+-- Amazon S3 bucket and object that contains the reference data.
+--
+-- A Kinesis Data Analytics application loads reference data only once. If
+-- the data changes, you call the UpdateApplication operation to trigger
+-- reloading of data into your application.
+--
+-- /See:/ 'newS3ReferenceDataSource' smart constructor.
+data S3ReferenceDataSource = S3ReferenceDataSource'
+  { -- | The Amazon Resource Name (ARN) of the S3 bucket.
+    bucketARN :: Prelude.Maybe Prelude.Text,
+    -- | The object key name containing the reference data.
+    fileKey :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'S3ReferenceDataSource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'bucketARN', 's3ReferenceDataSource_bucketARN' - The Amazon Resource Name (ARN) of the S3 bucket.
+--
+-- 'fileKey', 's3ReferenceDataSource_fileKey' - The object key name containing the reference data.
+newS3ReferenceDataSource ::
+  S3ReferenceDataSource
+newS3ReferenceDataSource =
+  S3ReferenceDataSource'
+    { bucketARN = Prelude.Nothing,
+      fileKey = Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) of the S3 bucket.
+s3ReferenceDataSource_bucketARN :: Lens.Lens' S3ReferenceDataSource (Prelude.Maybe Prelude.Text)
+s3ReferenceDataSource_bucketARN = Lens.lens (\S3ReferenceDataSource' {bucketARN} -> bucketARN) (\s@S3ReferenceDataSource' {} a -> s {bucketARN = a} :: S3ReferenceDataSource)
+
+-- | The object key name containing the reference data.
+s3ReferenceDataSource_fileKey :: Lens.Lens' S3ReferenceDataSource (Prelude.Maybe Prelude.Text)
+s3ReferenceDataSource_fileKey = Lens.lens (\S3ReferenceDataSource' {fileKey} -> fileKey) (\s@S3ReferenceDataSource' {} a -> s {fileKey = a} :: S3ReferenceDataSource)
+
+instance Prelude.Hashable S3ReferenceDataSource where
+  hashWithSalt _salt S3ReferenceDataSource' {..} =
+    _salt
+      `Prelude.hashWithSalt` bucketARN
+      `Prelude.hashWithSalt` fileKey
+
+instance Prelude.NFData S3ReferenceDataSource where
+  rnf S3ReferenceDataSource' {..} =
+    Prelude.rnf bucketARN
+      `Prelude.seq` Prelude.rnf fileKey
+
+instance Data.ToJSON S3ReferenceDataSource where
+  toJSON S3ReferenceDataSource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("BucketARN" Data..=) Prelude.<$> bucketARN,
+            ("FileKey" Data..=) Prelude.<$> fileKey
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/S3ReferenceDataSourceDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ReferenceDataSourceDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ReferenceDataSourceDescription.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.S3ReferenceDataSourceDescription
+-- 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.KinesisAnalyticsV2.Types.S3ReferenceDataSourceDescription 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
+
+-- | For a SQL-based Kinesis Data Analytics application, provides the bucket
+-- name and object key name that stores the reference data.
+--
+-- /See:/ 'newS3ReferenceDataSourceDescription' smart constructor.
+data S3ReferenceDataSourceDescription = S3ReferenceDataSourceDescription'
+  { -- | The ARN of the IAM role that Kinesis Data Analytics can assume to read
+    -- the Amazon S3 object on your behalf to populate the in-application
+    -- reference table.
+    --
+    -- Provided for backward compatibility. Applications that are created with
+    -- the current API version have an application-level service execution role
+    -- rather than a resource-level role.
+    referenceRoleARN :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the S3 bucket.
+    bucketARN :: Prelude.Text,
+    -- | Amazon S3 object key name.
+    fileKey :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'S3ReferenceDataSourceDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'referenceRoleARN', 's3ReferenceDataSourceDescription_referenceRoleARN' - The ARN of the IAM role that Kinesis Data Analytics can assume to read
+-- the Amazon S3 object on your behalf to populate the in-application
+-- reference table.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+--
+-- 'bucketARN', 's3ReferenceDataSourceDescription_bucketARN' - The Amazon Resource Name (ARN) of the S3 bucket.
+--
+-- 'fileKey', 's3ReferenceDataSourceDescription_fileKey' - Amazon S3 object key name.
+newS3ReferenceDataSourceDescription ::
+  -- | 'bucketARN'
+  Prelude.Text ->
+  -- | 'fileKey'
+  Prelude.Text ->
+  S3ReferenceDataSourceDescription
+newS3ReferenceDataSourceDescription
+  pBucketARN_
+  pFileKey_ =
+    S3ReferenceDataSourceDescription'
+      { referenceRoleARN =
+          Prelude.Nothing,
+        bucketARN = pBucketARN_,
+        fileKey = pFileKey_
+      }
+
+-- | The ARN of the IAM role that Kinesis Data Analytics can assume to read
+-- the Amazon S3 object on your behalf to populate the in-application
+-- reference table.
+--
+-- Provided for backward compatibility. Applications that are created with
+-- the current API version have an application-level service execution role
+-- rather than a resource-level role.
+s3ReferenceDataSourceDescription_referenceRoleARN :: Lens.Lens' S3ReferenceDataSourceDescription (Prelude.Maybe Prelude.Text)
+s3ReferenceDataSourceDescription_referenceRoleARN = Lens.lens (\S3ReferenceDataSourceDescription' {referenceRoleARN} -> referenceRoleARN) (\s@S3ReferenceDataSourceDescription' {} a -> s {referenceRoleARN = a} :: S3ReferenceDataSourceDescription)
+
+-- | The Amazon Resource Name (ARN) of the S3 bucket.
+s3ReferenceDataSourceDescription_bucketARN :: Lens.Lens' S3ReferenceDataSourceDescription Prelude.Text
+s3ReferenceDataSourceDescription_bucketARN = Lens.lens (\S3ReferenceDataSourceDescription' {bucketARN} -> bucketARN) (\s@S3ReferenceDataSourceDescription' {} a -> s {bucketARN = a} :: S3ReferenceDataSourceDescription)
+
+-- | Amazon S3 object key name.
+s3ReferenceDataSourceDescription_fileKey :: Lens.Lens' S3ReferenceDataSourceDescription Prelude.Text
+s3ReferenceDataSourceDescription_fileKey = Lens.lens (\S3ReferenceDataSourceDescription' {fileKey} -> fileKey) (\s@S3ReferenceDataSourceDescription' {} a -> s {fileKey = a} :: S3ReferenceDataSourceDescription)
+
+instance
+  Data.FromJSON
+    S3ReferenceDataSourceDescription
+  where
+  parseJSON =
+    Data.withObject
+      "S3ReferenceDataSourceDescription"
+      ( \x ->
+          S3ReferenceDataSourceDescription'
+            Prelude.<$> (x Data..:? "ReferenceRoleARN")
+            Prelude.<*> (x Data..: "BucketARN")
+            Prelude.<*> (x Data..: "FileKey")
+      )
+
+instance
+  Prelude.Hashable
+    S3ReferenceDataSourceDescription
+  where
+  hashWithSalt
+    _salt
+    S3ReferenceDataSourceDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` referenceRoleARN
+        `Prelude.hashWithSalt` bucketARN
+        `Prelude.hashWithSalt` fileKey
+
+instance
+  Prelude.NFData
+    S3ReferenceDataSourceDescription
+  where
+  rnf S3ReferenceDataSourceDescription' {..} =
+    Prelude.rnf referenceRoleARN
+      `Prelude.seq` Prelude.rnf bucketARN
+      `Prelude.seq` Prelude.rnf fileKey
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/S3ReferenceDataSourceUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ReferenceDataSourceUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/S3ReferenceDataSourceUpdate.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.KinesisAnalyticsV2.Types.S3ReferenceDataSourceUpdate
+-- 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.KinesisAnalyticsV2.Types.S3ReferenceDataSourceUpdate 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
+
+-- | For a SQL-based Kinesis Data Analytics application, describes the Amazon
+-- S3 bucket name and object key name for an in-application reference
+-- table.
+--
+-- /See:/ 'newS3ReferenceDataSourceUpdate' smart constructor.
+data S3ReferenceDataSourceUpdate = S3ReferenceDataSourceUpdate'
+  { -- | The Amazon Resource Name (ARN) of the S3 bucket.
+    bucketARNUpdate :: Prelude.Maybe Prelude.Text,
+    -- | The object key name.
+    fileKeyUpdate :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'S3ReferenceDataSourceUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'bucketARNUpdate', 's3ReferenceDataSourceUpdate_bucketARNUpdate' - The Amazon Resource Name (ARN) of the S3 bucket.
+--
+-- 'fileKeyUpdate', 's3ReferenceDataSourceUpdate_fileKeyUpdate' - The object key name.
+newS3ReferenceDataSourceUpdate ::
+  S3ReferenceDataSourceUpdate
+newS3ReferenceDataSourceUpdate =
+  S3ReferenceDataSourceUpdate'
+    { bucketARNUpdate =
+        Prelude.Nothing,
+      fileKeyUpdate = Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) of the S3 bucket.
+s3ReferenceDataSourceUpdate_bucketARNUpdate :: Lens.Lens' S3ReferenceDataSourceUpdate (Prelude.Maybe Prelude.Text)
+s3ReferenceDataSourceUpdate_bucketARNUpdate = Lens.lens (\S3ReferenceDataSourceUpdate' {bucketARNUpdate} -> bucketARNUpdate) (\s@S3ReferenceDataSourceUpdate' {} a -> s {bucketARNUpdate = a} :: S3ReferenceDataSourceUpdate)
+
+-- | The object key name.
+s3ReferenceDataSourceUpdate_fileKeyUpdate :: Lens.Lens' S3ReferenceDataSourceUpdate (Prelude.Maybe Prelude.Text)
+s3ReferenceDataSourceUpdate_fileKeyUpdate = Lens.lens (\S3ReferenceDataSourceUpdate' {fileKeyUpdate} -> fileKeyUpdate) (\s@S3ReferenceDataSourceUpdate' {} a -> s {fileKeyUpdate = a} :: S3ReferenceDataSourceUpdate)
+
+instance Prelude.Hashable S3ReferenceDataSourceUpdate where
+  hashWithSalt _salt S3ReferenceDataSourceUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` bucketARNUpdate
+      `Prelude.hashWithSalt` fileKeyUpdate
+
+instance Prelude.NFData S3ReferenceDataSourceUpdate where
+  rnf S3ReferenceDataSourceUpdate' {..} =
+    Prelude.rnf bucketARNUpdate
+      `Prelude.seq` Prelude.rnf fileKeyUpdate
+
+instance Data.ToJSON S3ReferenceDataSourceUpdate where
+  toJSON S3ReferenceDataSourceUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("BucketARNUpdate" Data..=)
+              Prelude.<$> bucketARNUpdate,
+            ("FileKeyUpdate" Data..=) Prelude.<$> fileKeyUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/SnapshotDetails.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/SnapshotDetails.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/SnapshotDetails.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.KinesisAnalyticsV2.Types.SnapshotDetails
+-- 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.KinesisAnalyticsV2.Types.SnapshotDetails where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.SnapshotStatus
+import qualified Amazonka.Prelude as Prelude
+
+-- | Provides details about a snapshot of application state.
+--
+-- /See:/ 'newSnapshotDetails' smart constructor.
+data SnapshotDetails = SnapshotDetails'
+  { -- | The timestamp of the application snapshot.
+    snapshotCreationTimestamp :: Prelude.Maybe Data.POSIX,
+    -- | The identifier for the application snapshot.
+    snapshotName :: Prelude.Text,
+    -- | The status of the application snapshot.
+    snapshotStatus :: SnapshotStatus,
+    -- | The current application version ID when the snapshot was created.
+    applicationVersionId :: Prelude.Natural
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'SnapshotDetails' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'snapshotCreationTimestamp', 'snapshotDetails_snapshotCreationTimestamp' - The timestamp of the application snapshot.
+--
+-- 'snapshotName', 'snapshotDetails_snapshotName' - The identifier for the application snapshot.
+--
+-- 'snapshotStatus', 'snapshotDetails_snapshotStatus' - The status of the application snapshot.
+--
+-- 'applicationVersionId', 'snapshotDetails_applicationVersionId' - The current application version ID when the snapshot was created.
+newSnapshotDetails ::
+  -- | 'snapshotName'
+  Prelude.Text ->
+  -- | 'snapshotStatus'
+  SnapshotStatus ->
+  -- | 'applicationVersionId'
+  Prelude.Natural ->
+  SnapshotDetails
+newSnapshotDetails
+  pSnapshotName_
+  pSnapshotStatus_
+  pApplicationVersionId_ =
+    SnapshotDetails'
+      { snapshotCreationTimestamp =
+          Prelude.Nothing,
+        snapshotName = pSnapshotName_,
+        snapshotStatus = pSnapshotStatus_,
+        applicationVersionId = pApplicationVersionId_
+      }
+
+-- | The timestamp of the application snapshot.
+snapshotDetails_snapshotCreationTimestamp :: Lens.Lens' SnapshotDetails (Prelude.Maybe Prelude.UTCTime)
+snapshotDetails_snapshotCreationTimestamp = Lens.lens (\SnapshotDetails' {snapshotCreationTimestamp} -> snapshotCreationTimestamp) (\s@SnapshotDetails' {} a -> s {snapshotCreationTimestamp = a} :: SnapshotDetails) Prelude.. Lens.mapping Data._Time
+
+-- | The identifier for the application snapshot.
+snapshotDetails_snapshotName :: Lens.Lens' SnapshotDetails Prelude.Text
+snapshotDetails_snapshotName = Lens.lens (\SnapshotDetails' {snapshotName} -> snapshotName) (\s@SnapshotDetails' {} a -> s {snapshotName = a} :: SnapshotDetails)
+
+-- | The status of the application snapshot.
+snapshotDetails_snapshotStatus :: Lens.Lens' SnapshotDetails SnapshotStatus
+snapshotDetails_snapshotStatus = Lens.lens (\SnapshotDetails' {snapshotStatus} -> snapshotStatus) (\s@SnapshotDetails' {} a -> s {snapshotStatus = a} :: SnapshotDetails)
+
+-- | The current application version ID when the snapshot was created.
+snapshotDetails_applicationVersionId :: Lens.Lens' SnapshotDetails Prelude.Natural
+snapshotDetails_applicationVersionId = Lens.lens (\SnapshotDetails' {applicationVersionId} -> applicationVersionId) (\s@SnapshotDetails' {} a -> s {applicationVersionId = a} :: SnapshotDetails)
+
+instance Data.FromJSON SnapshotDetails where
+  parseJSON =
+    Data.withObject
+      "SnapshotDetails"
+      ( \x ->
+          SnapshotDetails'
+            Prelude.<$> (x Data..:? "SnapshotCreationTimestamp")
+            Prelude.<*> (x Data..: "SnapshotName")
+            Prelude.<*> (x Data..: "SnapshotStatus")
+            Prelude.<*> (x Data..: "ApplicationVersionId")
+      )
+
+instance Prelude.Hashable SnapshotDetails where
+  hashWithSalt _salt SnapshotDetails' {..} =
+    _salt
+      `Prelude.hashWithSalt` snapshotCreationTimestamp
+      `Prelude.hashWithSalt` snapshotName
+      `Prelude.hashWithSalt` snapshotStatus
+      `Prelude.hashWithSalt` applicationVersionId
+
+instance Prelude.NFData SnapshotDetails where
+  rnf SnapshotDetails' {..} =
+    Prelude.rnf snapshotCreationTimestamp
+      `Prelude.seq` Prelude.rnf snapshotName
+      `Prelude.seq` Prelude.rnf snapshotStatus
+      `Prelude.seq` Prelude.rnf applicationVersionId
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/SnapshotStatus.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/SnapshotStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/SnapshotStatus.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.SnapshotStatus
+-- 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.KinesisAnalyticsV2.Types.SnapshotStatus
+  ( SnapshotStatus
+      ( ..,
+        SnapshotStatus_CREATING,
+        SnapshotStatus_DELETING,
+        SnapshotStatus_FAILED,
+        SnapshotStatus_READY
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype SnapshotStatus = SnapshotStatus'
+  { fromSnapshotStatus ::
+      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 SnapshotStatus_CREATING :: SnapshotStatus
+pattern SnapshotStatus_CREATING = SnapshotStatus' "CREATING"
+
+pattern SnapshotStatus_DELETING :: SnapshotStatus
+pattern SnapshotStatus_DELETING = SnapshotStatus' "DELETING"
+
+pattern SnapshotStatus_FAILED :: SnapshotStatus
+pattern SnapshotStatus_FAILED = SnapshotStatus' "FAILED"
+
+pattern SnapshotStatus_READY :: SnapshotStatus
+pattern SnapshotStatus_READY = SnapshotStatus' "READY"
+
+{-# COMPLETE
+  SnapshotStatus_CREATING,
+  SnapshotStatus_DELETING,
+  SnapshotStatus_FAILED,
+  SnapshotStatus_READY,
+  SnapshotStatus'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/SourceSchema.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/SourceSchema.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/SourceSchema.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.KinesisAnalyticsV2.Types.SourceSchema
+-- 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.KinesisAnalyticsV2.Types.SourceSchema where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.RecordColumn
+import Amazonka.KinesisAnalyticsV2.Types.RecordFormat
+import qualified Amazonka.Prelude as Prelude
+
+-- | For a SQL-based Kinesis Data Analytics application, describes the format
+-- of the data in the streaming source, and how each data element maps to
+-- corresponding columns created in the in-application stream.
+--
+-- /See:/ 'newSourceSchema' smart constructor.
+data SourceSchema = SourceSchema'
+  { -- | Specifies the encoding of the records in the streaming source. For
+    -- example, UTF-8.
+    recordEncoding :: Prelude.Maybe Prelude.Text,
+    -- | Specifies the format of the records on the streaming source.
+    recordFormat :: RecordFormat,
+    -- | A list of @RecordColumn@ objects.
+    recordColumns :: Prelude.NonEmpty RecordColumn
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'SourceSchema' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'recordEncoding', 'sourceSchema_recordEncoding' - Specifies the encoding of the records in the streaming source. For
+-- example, UTF-8.
+--
+-- 'recordFormat', 'sourceSchema_recordFormat' - Specifies the format of the records on the streaming source.
+--
+-- 'recordColumns', 'sourceSchema_recordColumns' - A list of @RecordColumn@ objects.
+newSourceSchema ::
+  -- | 'recordFormat'
+  RecordFormat ->
+  -- | 'recordColumns'
+  Prelude.NonEmpty RecordColumn ->
+  SourceSchema
+newSourceSchema pRecordFormat_ pRecordColumns_ =
+  SourceSchema'
+    { recordEncoding = Prelude.Nothing,
+      recordFormat = pRecordFormat_,
+      recordColumns = Lens.coerced Lens.# pRecordColumns_
+    }
+
+-- | Specifies the encoding of the records in the streaming source. For
+-- example, UTF-8.
+sourceSchema_recordEncoding :: Lens.Lens' SourceSchema (Prelude.Maybe Prelude.Text)
+sourceSchema_recordEncoding = Lens.lens (\SourceSchema' {recordEncoding} -> recordEncoding) (\s@SourceSchema' {} a -> s {recordEncoding = a} :: SourceSchema)
+
+-- | Specifies the format of the records on the streaming source.
+sourceSchema_recordFormat :: Lens.Lens' SourceSchema RecordFormat
+sourceSchema_recordFormat = Lens.lens (\SourceSchema' {recordFormat} -> recordFormat) (\s@SourceSchema' {} a -> s {recordFormat = a} :: SourceSchema)
+
+-- | A list of @RecordColumn@ objects.
+sourceSchema_recordColumns :: Lens.Lens' SourceSchema (Prelude.NonEmpty RecordColumn)
+sourceSchema_recordColumns = Lens.lens (\SourceSchema' {recordColumns} -> recordColumns) (\s@SourceSchema' {} a -> s {recordColumns = a} :: SourceSchema) Prelude.. Lens.coerced
+
+instance Data.FromJSON SourceSchema where
+  parseJSON =
+    Data.withObject
+      "SourceSchema"
+      ( \x ->
+          SourceSchema'
+            Prelude.<$> (x Data..:? "RecordEncoding")
+            Prelude.<*> (x Data..: "RecordFormat")
+            Prelude.<*> (x Data..: "RecordColumns")
+      )
+
+instance Prelude.Hashable SourceSchema where
+  hashWithSalt _salt SourceSchema' {..} =
+    _salt
+      `Prelude.hashWithSalt` recordEncoding
+      `Prelude.hashWithSalt` recordFormat
+      `Prelude.hashWithSalt` recordColumns
+
+instance Prelude.NFData SourceSchema where
+  rnf SourceSchema' {..} =
+    Prelude.rnf recordEncoding
+      `Prelude.seq` Prelude.rnf recordFormat
+      `Prelude.seq` Prelude.rnf recordColumns
+
+instance Data.ToJSON SourceSchema where
+  toJSON SourceSchema' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("RecordEncoding" Data..=)
+              Prelude.<$> recordEncoding,
+            Prelude.Just ("RecordFormat" Data..= recordFormat),
+            Prelude.Just
+              ("RecordColumns" Data..= recordColumns)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/SqlApplicationConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/SqlApplicationConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/SqlApplicationConfiguration.hs
@@ -0,0 +1,110 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfiguration
+-- 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.KinesisAnalyticsV2.Types.SqlApplicationConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.Input
+import Amazonka.KinesisAnalyticsV2.Types.Output
+import Amazonka.KinesisAnalyticsV2.Types.ReferenceDataSource
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the inputs, outputs, and reference data sources for a
+-- SQL-based Kinesis Data Analytics application.
+--
+-- /See:/ 'newSqlApplicationConfiguration' smart constructor.
+data SqlApplicationConfiguration = SqlApplicationConfiguration'
+  { -- | The array of Input objects describing the input streams used by the
+    -- application.
+    inputs :: Prelude.Maybe [Input],
+    -- | The array of Output objects describing the destination streams used by
+    -- the application.
+    outputs :: Prelude.Maybe [Output],
+    -- | The array of ReferenceDataSource objects describing the reference data
+    -- sources used by the application.
+    referenceDataSources :: Prelude.Maybe [ReferenceDataSource]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'SqlApplicationConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inputs', 'sqlApplicationConfiguration_inputs' - The array of Input objects describing the input streams used by the
+-- application.
+--
+-- 'outputs', 'sqlApplicationConfiguration_outputs' - The array of Output objects describing the destination streams used by
+-- the application.
+--
+-- 'referenceDataSources', 'sqlApplicationConfiguration_referenceDataSources' - The array of ReferenceDataSource objects describing the reference data
+-- sources used by the application.
+newSqlApplicationConfiguration ::
+  SqlApplicationConfiguration
+newSqlApplicationConfiguration =
+  SqlApplicationConfiguration'
+    { inputs =
+        Prelude.Nothing,
+      outputs = Prelude.Nothing,
+      referenceDataSources = Prelude.Nothing
+    }
+
+-- | The array of Input objects describing the input streams used by the
+-- application.
+sqlApplicationConfiguration_inputs :: Lens.Lens' SqlApplicationConfiguration (Prelude.Maybe [Input])
+sqlApplicationConfiguration_inputs = Lens.lens (\SqlApplicationConfiguration' {inputs} -> inputs) (\s@SqlApplicationConfiguration' {} a -> s {inputs = a} :: SqlApplicationConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | The array of Output objects describing the destination streams used by
+-- the application.
+sqlApplicationConfiguration_outputs :: Lens.Lens' SqlApplicationConfiguration (Prelude.Maybe [Output])
+sqlApplicationConfiguration_outputs = Lens.lens (\SqlApplicationConfiguration' {outputs} -> outputs) (\s@SqlApplicationConfiguration' {} a -> s {outputs = a} :: SqlApplicationConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | The array of ReferenceDataSource objects describing the reference data
+-- sources used by the application.
+sqlApplicationConfiguration_referenceDataSources :: Lens.Lens' SqlApplicationConfiguration (Prelude.Maybe [ReferenceDataSource])
+sqlApplicationConfiguration_referenceDataSources = Lens.lens (\SqlApplicationConfiguration' {referenceDataSources} -> referenceDataSources) (\s@SqlApplicationConfiguration' {} a -> s {referenceDataSources = a} :: SqlApplicationConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+instance Prelude.Hashable SqlApplicationConfiguration where
+  hashWithSalt _salt SqlApplicationConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` inputs
+      `Prelude.hashWithSalt` outputs
+      `Prelude.hashWithSalt` referenceDataSources
+
+instance Prelude.NFData SqlApplicationConfiguration where
+  rnf SqlApplicationConfiguration' {..} =
+    Prelude.rnf inputs
+      `Prelude.seq` Prelude.rnf outputs
+      `Prelude.seq` Prelude.rnf referenceDataSources
+
+instance Data.ToJSON SqlApplicationConfiguration where
+  toJSON SqlApplicationConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Inputs" Data..=) Prelude.<$> inputs,
+            ("Outputs" Data..=) Prelude.<$> outputs,
+            ("ReferenceDataSources" Data..=)
+              Prelude.<$> referenceDataSources
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/SqlApplicationConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/SqlApplicationConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/SqlApplicationConfigurationDescription.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.SqlApplicationConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.SqlApplicationConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.InputDescription
+import Amazonka.KinesisAnalyticsV2.Types.OutputDescription
+import Amazonka.KinesisAnalyticsV2.Types.ReferenceDataSourceDescription
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the inputs, outputs, and reference data sources for a
+-- SQL-based Kinesis Data Analytics application.
+--
+-- /See:/ 'newSqlApplicationConfigurationDescription' smart constructor.
+data SqlApplicationConfigurationDescription = SqlApplicationConfigurationDescription'
+  { -- | The array of InputDescription objects describing the input streams used
+    -- by the application.
+    inputDescriptions :: Prelude.Maybe [InputDescription],
+    -- | The array of OutputDescription objects describing the destination
+    -- streams used by the application.
+    outputDescriptions :: Prelude.Maybe [OutputDescription],
+    -- | The array of ReferenceDataSourceDescription objects describing the
+    -- reference data sources used by the application.
+    referenceDataSourceDescriptions :: Prelude.Maybe [ReferenceDataSourceDescription]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'SqlApplicationConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inputDescriptions', 'sqlApplicationConfigurationDescription_inputDescriptions' - The array of InputDescription objects describing the input streams used
+-- by the application.
+--
+-- 'outputDescriptions', 'sqlApplicationConfigurationDescription_outputDescriptions' - The array of OutputDescription objects describing the destination
+-- streams used by the application.
+--
+-- 'referenceDataSourceDescriptions', 'sqlApplicationConfigurationDescription_referenceDataSourceDescriptions' - The array of ReferenceDataSourceDescription objects describing the
+-- reference data sources used by the application.
+newSqlApplicationConfigurationDescription ::
+  SqlApplicationConfigurationDescription
+newSqlApplicationConfigurationDescription =
+  SqlApplicationConfigurationDescription'
+    { inputDescriptions =
+        Prelude.Nothing,
+      outputDescriptions =
+        Prelude.Nothing,
+      referenceDataSourceDescriptions =
+        Prelude.Nothing
+    }
+
+-- | The array of InputDescription objects describing the input streams used
+-- by the application.
+sqlApplicationConfigurationDescription_inputDescriptions :: Lens.Lens' SqlApplicationConfigurationDescription (Prelude.Maybe [InputDescription])
+sqlApplicationConfigurationDescription_inputDescriptions = Lens.lens (\SqlApplicationConfigurationDescription' {inputDescriptions} -> inputDescriptions) (\s@SqlApplicationConfigurationDescription' {} a -> s {inputDescriptions = a} :: SqlApplicationConfigurationDescription) Prelude.. Lens.mapping Lens.coerced
+
+-- | The array of OutputDescription objects describing the destination
+-- streams used by the application.
+sqlApplicationConfigurationDescription_outputDescriptions :: Lens.Lens' SqlApplicationConfigurationDescription (Prelude.Maybe [OutputDescription])
+sqlApplicationConfigurationDescription_outputDescriptions = Lens.lens (\SqlApplicationConfigurationDescription' {outputDescriptions} -> outputDescriptions) (\s@SqlApplicationConfigurationDescription' {} a -> s {outputDescriptions = a} :: SqlApplicationConfigurationDescription) Prelude.. Lens.mapping Lens.coerced
+
+-- | The array of ReferenceDataSourceDescription objects describing the
+-- reference data sources used by the application.
+sqlApplicationConfigurationDescription_referenceDataSourceDescriptions :: Lens.Lens' SqlApplicationConfigurationDescription (Prelude.Maybe [ReferenceDataSourceDescription])
+sqlApplicationConfigurationDescription_referenceDataSourceDescriptions = Lens.lens (\SqlApplicationConfigurationDescription' {referenceDataSourceDescriptions} -> referenceDataSourceDescriptions) (\s@SqlApplicationConfigurationDescription' {} a -> s {referenceDataSourceDescriptions = a} :: SqlApplicationConfigurationDescription) Prelude.. Lens.mapping Lens.coerced
+
+instance
+  Data.FromJSON
+    SqlApplicationConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "SqlApplicationConfigurationDescription"
+      ( \x ->
+          SqlApplicationConfigurationDescription'
+            Prelude.<$> ( x
+                            Data..:? "InputDescriptions"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> ( x
+                            Data..:? "OutputDescriptions"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> ( x
+                            Data..:? "ReferenceDataSourceDescriptions"
+                            Data..!= Prelude.mempty
+                        )
+      )
+
+instance
+  Prelude.Hashable
+    SqlApplicationConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    SqlApplicationConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` inputDescriptions
+        `Prelude.hashWithSalt` outputDescriptions
+        `Prelude.hashWithSalt` referenceDataSourceDescriptions
+
+instance
+  Prelude.NFData
+    SqlApplicationConfigurationDescription
+  where
+  rnf SqlApplicationConfigurationDescription' {..} =
+    Prelude.rnf inputDescriptions
+      `Prelude.seq` Prelude.rnf outputDescriptions
+      `Prelude.seq` Prelude.rnf referenceDataSourceDescriptions
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/SqlApplicationConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/SqlApplicationConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/SqlApplicationConfigurationUpdate.hs
@@ -0,0 +1,123 @@
+{-# 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.KinesisAnalyticsV2.Types.SqlApplicationConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.SqlApplicationConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.InputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.OutputUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ReferenceDataSourceUpdate
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes updates to the input streams, destination streams, and
+-- reference data sources for a SQL-based Kinesis Data Analytics
+-- application.
+--
+-- /See:/ 'newSqlApplicationConfigurationUpdate' smart constructor.
+data SqlApplicationConfigurationUpdate = SqlApplicationConfigurationUpdate'
+  { -- | The array of InputUpdate objects describing the new input streams used
+    -- by the application.
+    inputUpdates :: Prelude.Maybe [InputUpdate],
+    -- | The array of OutputUpdate objects describing the new destination streams
+    -- used by the application.
+    outputUpdates :: Prelude.Maybe [OutputUpdate],
+    -- | The array of ReferenceDataSourceUpdate objects describing the new
+    -- reference data sources used by the application.
+    referenceDataSourceUpdates :: Prelude.Maybe [ReferenceDataSourceUpdate]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'SqlApplicationConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inputUpdates', 'sqlApplicationConfigurationUpdate_inputUpdates' - The array of InputUpdate objects describing the new input streams used
+-- by the application.
+--
+-- 'outputUpdates', 'sqlApplicationConfigurationUpdate_outputUpdates' - The array of OutputUpdate objects describing the new destination streams
+-- used by the application.
+--
+-- 'referenceDataSourceUpdates', 'sqlApplicationConfigurationUpdate_referenceDataSourceUpdates' - The array of ReferenceDataSourceUpdate objects describing the new
+-- reference data sources used by the application.
+newSqlApplicationConfigurationUpdate ::
+  SqlApplicationConfigurationUpdate
+newSqlApplicationConfigurationUpdate =
+  SqlApplicationConfigurationUpdate'
+    { inputUpdates =
+        Prelude.Nothing,
+      outputUpdates = Prelude.Nothing,
+      referenceDataSourceUpdates =
+        Prelude.Nothing
+    }
+
+-- | The array of InputUpdate objects describing the new input streams used
+-- by the application.
+sqlApplicationConfigurationUpdate_inputUpdates :: Lens.Lens' SqlApplicationConfigurationUpdate (Prelude.Maybe [InputUpdate])
+sqlApplicationConfigurationUpdate_inputUpdates = Lens.lens (\SqlApplicationConfigurationUpdate' {inputUpdates} -> inputUpdates) (\s@SqlApplicationConfigurationUpdate' {} a -> s {inputUpdates = a} :: SqlApplicationConfigurationUpdate) Prelude.. Lens.mapping Lens.coerced
+
+-- | The array of OutputUpdate objects describing the new destination streams
+-- used by the application.
+sqlApplicationConfigurationUpdate_outputUpdates :: Lens.Lens' SqlApplicationConfigurationUpdate (Prelude.Maybe [OutputUpdate])
+sqlApplicationConfigurationUpdate_outputUpdates = Lens.lens (\SqlApplicationConfigurationUpdate' {outputUpdates} -> outputUpdates) (\s@SqlApplicationConfigurationUpdate' {} a -> s {outputUpdates = a} :: SqlApplicationConfigurationUpdate) Prelude.. Lens.mapping Lens.coerced
+
+-- | The array of ReferenceDataSourceUpdate objects describing the new
+-- reference data sources used by the application.
+sqlApplicationConfigurationUpdate_referenceDataSourceUpdates :: Lens.Lens' SqlApplicationConfigurationUpdate (Prelude.Maybe [ReferenceDataSourceUpdate])
+sqlApplicationConfigurationUpdate_referenceDataSourceUpdates = Lens.lens (\SqlApplicationConfigurationUpdate' {referenceDataSourceUpdates} -> referenceDataSourceUpdates) (\s@SqlApplicationConfigurationUpdate' {} a -> s {referenceDataSourceUpdates = a} :: SqlApplicationConfigurationUpdate) Prelude.. Lens.mapping Lens.coerced
+
+instance
+  Prelude.Hashable
+    SqlApplicationConfigurationUpdate
+  where
+  hashWithSalt
+    _salt
+    SqlApplicationConfigurationUpdate' {..} =
+      _salt
+        `Prelude.hashWithSalt` inputUpdates
+        `Prelude.hashWithSalt` outputUpdates
+        `Prelude.hashWithSalt` referenceDataSourceUpdates
+
+instance
+  Prelude.NFData
+    SqlApplicationConfigurationUpdate
+  where
+  rnf SqlApplicationConfigurationUpdate' {..} =
+    Prelude.rnf inputUpdates
+      `Prelude.seq` Prelude.rnf outputUpdates
+      `Prelude.seq` Prelude.rnf referenceDataSourceUpdates
+
+instance
+  Data.ToJSON
+    SqlApplicationConfigurationUpdate
+  where
+  toJSON SqlApplicationConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("InputUpdates" Data..=) Prelude.<$> inputUpdates,
+            ("OutputUpdates" Data..=) Prelude.<$> outputUpdates,
+            ("ReferenceDataSourceUpdates" Data..=)
+              Prelude.<$> referenceDataSourceUpdates
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/SqlRunConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/SqlRunConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/SqlRunConfiguration.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.KinesisAnalyticsV2.Types.SqlRunConfiguration
+-- 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.KinesisAnalyticsV2.Types.SqlRunConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.InputStartingPositionConfiguration
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the starting parameters for a SQL-based Kinesis Data Analytics
+-- application.
+--
+-- /See:/ 'newSqlRunConfiguration' smart constructor.
+data SqlRunConfiguration = SqlRunConfiguration'
+  { -- | The input source ID. You can get this ID by calling the
+    -- DescribeApplication operation.
+    inputId :: Prelude.Text,
+    -- | The point at which you want the application to start processing records
+    -- from the streaming source.
+    inputStartingPositionConfiguration :: InputStartingPositionConfiguration
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'SqlRunConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'inputId', 'sqlRunConfiguration_inputId' - The input source ID. You can get this ID by calling the
+-- DescribeApplication operation.
+--
+-- 'inputStartingPositionConfiguration', 'sqlRunConfiguration_inputStartingPositionConfiguration' - The point at which you want the application to start processing records
+-- from the streaming source.
+newSqlRunConfiguration ::
+  -- | 'inputId'
+  Prelude.Text ->
+  -- | 'inputStartingPositionConfiguration'
+  InputStartingPositionConfiguration ->
+  SqlRunConfiguration
+newSqlRunConfiguration
+  pInputId_
+  pInputStartingPositionConfiguration_ =
+    SqlRunConfiguration'
+      { inputId = pInputId_,
+        inputStartingPositionConfiguration =
+          pInputStartingPositionConfiguration_
+      }
+
+-- | The input source ID. You can get this ID by calling the
+-- DescribeApplication operation.
+sqlRunConfiguration_inputId :: Lens.Lens' SqlRunConfiguration Prelude.Text
+sqlRunConfiguration_inputId = Lens.lens (\SqlRunConfiguration' {inputId} -> inputId) (\s@SqlRunConfiguration' {} a -> s {inputId = a} :: SqlRunConfiguration)
+
+-- | The point at which you want the application to start processing records
+-- from the streaming source.
+sqlRunConfiguration_inputStartingPositionConfiguration :: Lens.Lens' SqlRunConfiguration InputStartingPositionConfiguration
+sqlRunConfiguration_inputStartingPositionConfiguration = Lens.lens (\SqlRunConfiguration' {inputStartingPositionConfiguration} -> inputStartingPositionConfiguration) (\s@SqlRunConfiguration' {} a -> s {inputStartingPositionConfiguration = a} :: SqlRunConfiguration)
+
+instance Prelude.Hashable SqlRunConfiguration where
+  hashWithSalt _salt SqlRunConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` inputId
+      `Prelude.hashWithSalt` inputStartingPositionConfiguration
+
+instance Prelude.NFData SqlRunConfiguration where
+  rnf SqlRunConfiguration' {..} =
+    Prelude.rnf inputId
+      `Prelude.seq` Prelude.rnf inputStartingPositionConfiguration
+
+instance Data.ToJSON SqlRunConfiguration where
+  toJSON SqlRunConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("InputId" Data..= inputId),
+            Prelude.Just
+              ( "InputStartingPositionConfiguration"
+                  Data..= inputStartingPositionConfiguration
+              )
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/Tag.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/Tag.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/Tag.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.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.KinesisAnalyticsV2.Types.Tag where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | A key-value pair (the value is optional) that you can define and assign
+-- to Amazon resources. If you specify a tag that already exists, the tag
+-- value is replaced with the value that you specify in the request. Note
+-- that the maximum number of application tags includes system tags. The
+-- maximum number of user-defined application tags is 50. For more
+-- information, see
+-- <https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html Using Tagging>.
+--
+-- /See:/ 'newTag' smart constructor.
+data Tag = Tag'
+  { -- | The value of the key-value tag. The value is optional.
+    value :: Prelude.Maybe Prelude.Text,
+    -- | The key of the key-value tag.
+    key :: 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:
+--
+-- 'value', 'tag_value' - The value of the key-value tag. The value is optional.
+--
+-- 'key', 'tag_key' - The key of the key-value tag.
+newTag ::
+  -- | 'key'
+  Prelude.Text ->
+  Tag
+newTag pKey_ =
+  Tag' {value = Prelude.Nothing, key = pKey_}
+
+-- | The value of the key-value tag. The value is optional.
+tag_value :: Lens.Lens' Tag (Prelude.Maybe Prelude.Text)
+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)
+
+-- | The key of the key-value tag.
+tag_key :: Lens.Lens' Tag Prelude.Text
+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)
+
+instance Data.FromJSON Tag where
+  parseJSON =
+    Data.withObject
+      "Tag"
+      ( \x ->
+          Tag'
+            Prelude.<$> (x Data..:? "Value")
+            Prelude.<*> (x Data..: "Key")
+      )
+
+instance Prelude.Hashable Tag where
+  hashWithSalt _salt Tag' {..} =
+    _salt
+      `Prelude.hashWithSalt` value
+      `Prelude.hashWithSalt` key
+
+instance Prelude.NFData Tag where
+  rnf Tag' {..} =
+    Prelude.rnf value `Prelude.seq` Prelude.rnf key
+
+instance Data.ToJSON Tag where
+  toJSON Tag' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("Value" Data..=) Prelude.<$> value,
+            Prelude.Just ("Key" Data..= key)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/UrlType.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/UrlType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/UrlType.hs
@@ -0,0 +1,68 @@
+{-# 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.KinesisAnalyticsV2.Types.UrlType
+-- 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.KinesisAnalyticsV2.Types.UrlType
+  ( UrlType
+      ( ..,
+        UrlType_FLINK_DASHBOARD_URL,
+        UrlType_ZEPPELIN_UI_URL
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype UrlType = UrlType' {fromUrlType :: 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 UrlType_FLINK_DASHBOARD_URL :: UrlType
+pattern UrlType_FLINK_DASHBOARD_URL = UrlType' "FLINK_DASHBOARD_URL"
+
+pattern UrlType_ZEPPELIN_UI_URL :: UrlType
+pattern UrlType_ZEPPELIN_UI_URL = UrlType' "ZEPPELIN_UI_URL"
+
+{-# COMPLETE
+  UrlType_FLINK_DASHBOARD_URL,
+  UrlType_ZEPPELIN_UI_URL,
+  UrlType'
+  #-}
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/VpcConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/VpcConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/VpcConfiguration.hs
@@ -0,0 +1,102 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.VpcConfiguration
+-- 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.KinesisAnalyticsV2.Types.VpcConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the parameters of a VPC used by the application.
+--
+-- /See:/ 'newVpcConfiguration' smart constructor.
+data VpcConfiguration = VpcConfiguration'
+  { -- | The array of
+    -- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html Subnet>
+    -- IDs used by the VPC configuration.
+    subnetIds :: Prelude.NonEmpty Prelude.Text,
+    -- | The array of
+    -- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html SecurityGroup>
+    -- IDs used by the VPC configuration.
+    securityGroupIds :: Prelude.NonEmpty Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'VpcConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'subnetIds', 'vpcConfiguration_subnetIds' - The array of
+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html Subnet>
+-- IDs used by the VPC configuration.
+--
+-- 'securityGroupIds', 'vpcConfiguration_securityGroupIds' - The array of
+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html SecurityGroup>
+-- IDs used by the VPC configuration.
+newVpcConfiguration ::
+  -- | 'subnetIds'
+  Prelude.NonEmpty Prelude.Text ->
+  -- | 'securityGroupIds'
+  Prelude.NonEmpty Prelude.Text ->
+  VpcConfiguration
+newVpcConfiguration pSubnetIds_ pSecurityGroupIds_ =
+  VpcConfiguration'
+    { subnetIds =
+        Lens.coerced Lens.# pSubnetIds_,
+      securityGroupIds =
+        Lens.coerced Lens.# pSecurityGroupIds_
+    }
+
+-- | The array of
+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html Subnet>
+-- IDs used by the VPC configuration.
+vpcConfiguration_subnetIds :: Lens.Lens' VpcConfiguration (Prelude.NonEmpty Prelude.Text)
+vpcConfiguration_subnetIds = Lens.lens (\VpcConfiguration' {subnetIds} -> subnetIds) (\s@VpcConfiguration' {} a -> s {subnetIds = a} :: VpcConfiguration) Prelude.. Lens.coerced
+
+-- | The array of
+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html SecurityGroup>
+-- IDs used by the VPC configuration.
+vpcConfiguration_securityGroupIds :: Lens.Lens' VpcConfiguration (Prelude.NonEmpty Prelude.Text)
+vpcConfiguration_securityGroupIds = Lens.lens (\VpcConfiguration' {securityGroupIds} -> securityGroupIds) (\s@VpcConfiguration' {} a -> s {securityGroupIds = a} :: VpcConfiguration) Prelude.. Lens.coerced
+
+instance Prelude.Hashable VpcConfiguration where
+  hashWithSalt _salt VpcConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` subnetIds
+      `Prelude.hashWithSalt` securityGroupIds
+
+instance Prelude.NFData VpcConfiguration where
+  rnf VpcConfiguration' {..} =
+    Prelude.rnf subnetIds
+      `Prelude.seq` Prelude.rnf securityGroupIds
+
+instance Data.ToJSON VpcConfiguration where
+  toJSON VpcConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("SubnetIds" Data..= subnetIds),
+            Prelude.Just
+              ("SecurityGroupIds" Data..= securityGroupIds)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/VpcConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/VpcConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/VpcConfigurationDescription.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.KinesisAnalyticsV2.Types.VpcConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.VpcConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes the parameters of a VPC used by the application.
+--
+-- /See:/ 'newVpcConfigurationDescription' smart constructor.
+data VpcConfigurationDescription = VpcConfigurationDescription'
+  { -- | The ID of the VPC configuration.
+    vpcConfigurationId :: Prelude.Text,
+    -- | The ID of the associated VPC.
+    vpcId :: Prelude.Text,
+    -- | The array of
+    -- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html Subnet>
+    -- IDs used by the VPC configuration.
+    subnetIds :: Prelude.NonEmpty Prelude.Text,
+    -- | The array of
+    -- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html SecurityGroup>
+    -- IDs used by the VPC configuration.
+    securityGroupIds :: Prelude.NonEmpty Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'VpcConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'vpcConfigurationId', 'vpcConfigurationDescription_vpcConfigurationId' - The ID of the VPC configuration.
+--
+-- 'vpcId', 'vpcConfigurationDescription_vpcId' - The ID of the associated VPC.
+--
+-- 'subnetIds', 'vpcConfigurationDescription_subnetIds' - The array of
+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html Subnet>
+-- IDs used by the VPC configuration.
+--
+-- 'securityGroupIds', 'vpcConfigurationDescription_securityGroupIds' - The array of
+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html SecurityGroup>
+-- IDs used by the VPC configuration.
+newVpcConfigurationDescription ::
+  -- | 'vpcConfigurationId'
+  Prelude.Text ->
+  -- | 'vpcId'
+  Prelude.Text ->
+  -- | 'subnetIds'
+  Prelude.NonEmpty Prelude.Text ->
+  -- | 'securityGroupIds'
+  Prelude.NonEmpty Prelude.Text ->
+  VpcConfigurationDescription
+newVpcConfigurationDescription
+  pVpcConfigurationId_
+  pVpcId_
+  pSubnetIds_
+  pSecurityGroupIds_ =
+    VpcConfigurationDescription'
+      { vpcConfigurationId =
+          pVpcConfigurationId_,
+        vpcId = pVpcId_,
+        subnetIds = Lens.coerced Lens.# pSubnetIds_,
+        securityGroupIds =
+          Lens.coerced Lens.# pSecurityGroupIds_
+      }
+
+-- | The ID of the VPC configuration.
+vpcConfigurationDescription_vpcConfigurationId :: Lens.Lens' VpcConfigurationDescription Prelude.Text
+vpcConfigurationDescription_vpcConfigurationId = Lens.lens (\VpcConfigurationDescription' {vpcConfigurationId} -> vpcConfigurationId) (\s@VpcConfigurationDescription' {} a -> s {vpcConfigurationId = a} :: VpcConfigurationDescription)
+
+-- | The ID of the associated VPC.
+vpcConfigurationDescription_vpcId :: Lens.Lens' VpcConfigurationDescription Prelude.Text
+vpcConfigurationDescription_vpcId = Lens.lens (\VpcConfigurationDescription' {vpcId} -> vpcId) (\s@VpcConfigurationDescription' {} a -> s {vpcId = a} :: VpcConfigurationDescription)
+
+-- | The array of
+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html Subnet>
+-- IDs used by the VPC configuration.
+vpcConfigurationDescription_subnetIds :: Lens.Lens' VpcConfigurationDescription (Prelude.NonEmpty Prelude.Text)
+vpcConfigurationDescription_subnetIds = Lens.lens (\VpcConfigurationDescription' {subnetIds} -> subnetIds) (\s@VpcConfigurationDescription' {} a -> s {subnetIds = a} :: VpcConfigurationDescription) Prelude.. Lens.coerced
+
+-- | The array of
+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html SecurityGroup>
+-- IDs used by the VPC configuration.
+vpcConfigurationDescription_securityGroupIds :: Lens.Lens' VpcConfigurationDescription (Prelude.NonEmpty Prelude.Text)
+vpcConfigurationDescription_securityGroupIds = Lens.lens (\VpcConfigurationDescription' {securityGroupIds} -> securityGroupIds) (\s@VpcConfigurationDescription' {} a -> s {securityGroupIds = a} :: VpcConfigurationDescription) Prelude.. Lens.coerced
+
+instance Data.FromJSON VpcConfigurationDescription where
+  parseJSON =
+    Data.withObject
+      "VpcConfigurationDescription"
+      ( \x ->
+          VpcConfigurationDescription'
+            Prelude.<$> (x Data..: "VpcConfigurationId")
+            Prelude.<*> (x Data..: "VpcId")
+            Prelude.<*> (x Data..: "SubnetIds")
+            Prelude.<*> (x Data..: "SecurityGroupIds")
+      )
+
+instance Prelude.Hashable VpcConfigurationDescription where
+  hashWithSalt _salt VpcConfigurationDescription' {..} =
+    _salt
+      `Prelude.hashWithSalt` vpcConfigurationId
+      `Prelude.hashWithSalt` vpcId
+      `Prelude.hashWithSalt` subnetIds
+      `Prelude.hashWithSalt` securityGroupIds
+
+instance Prelude.NFData VpcConfigurationDescription where
+  rnf VpcConfigurationDescription' {..} =
+    Prelude.rnf vpcConfigurationId
+      `Prelude.seq` Prelude.rnf vpcId
+      `Prelude.seq` Prelude.rnf subnetIds
+      `Prelude.seq` Prelude.rnf securityGroupIds
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/VpcConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/VpcConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/VpcConfigurationUpdate.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.KinesisAnalyticsV2.Types.VpcConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.VpcConfigurationUpdate 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 updates to the VPC configuration used by the application.
+--
+-- /See:/ 'newVpcConfigurationUpdate' smart constructor.
+data VpcConfigurationUpdate = VpcConfigurationUpdate'
+  { -- | Describes updates to the array of
+    -- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html SecurityGroup>
+    -- IDs used by the VPC configuration.
+    securityGroupIdUpdates :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
+    -- | Describes updates to the array of
+    -- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html Subnet>
+    -- IDs used by the VPC configuration.
+    subnetIdUpdates :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
+    -- | Describes an update to the ID of the VPC configuration.
+    vpcConfigurationId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'VpcConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'securityGroupIdUpdates', 'vpcConfigurationUpdate_securityGroupIdUpdates' - Describes updates to the array of
+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html SecurityGroup>
+-- IDs used by the VPC configuration.
+--
+-- 'subnetIdUpdates', 'vpcConfigurationUpdate_subnetIdUpdates' - Describes updates to the array of
+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html Subnet>
+-- IDs used by the VPC configuration.
+--
+-- 'vpcConfigurationId', 'vpcConfigurationUpdate_vpcConfigurationId' - Describes an update to the ID of the VPC configuration.
+newVpcConfigurationUpdate ::
+  -- | 'vpcConfigurationId'
+  Prelude.Text ->
+  VpcConfigurationUpdate
+newVpcConfigurationUpdate pVpcConfigurationId_ =
+  VpcConfigurationUpdate'
+    { securityGroupIdUpdates =
+        Prelude.Nothing,
+      subnetIdUpdates = Prelude.Nothing,
+      vpcConfigurationId = pVpcConfigurationId_
+    }
+
+-- | Describes updates to the array of
+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html SecurityGroup>
+-- IDs used by the VPC configuration.
+vpcConfigurationUpdate_securityGroupIdUpdates :: Lens.Lens' VpcConfigurationUpdate (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
+vpcConfigurationUpdate_securityGroupIdUpdates = Lens.lens (\VpcConfigurationUpdate' {securityGroupIdUpdates} -> securityGroupIdUpdates) (\s@VpcConfigurationUpdate' {} a -> s {securityGroupIdUpdates = a} :: VpcConfigurationUpdate) Prelude.. Lens.mapping Lens.coerced
+
+-- | Describes updates to the array of
+-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html Subnet>
+-- IDs used by the VPC configuration.
+vpcConfigurationUpdate_subnetIdUpdates :: Lens.Lens' VpcConfigurationUpdate (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
+vpcConfigurationUpdate_subnetIdUpdates = Lens.lens (\VpcConfigurationUpdate' {subnetIdUpdates} -> subnetIdUpdates) (\s@VpcConfigurationUpdate' {} a -> s {subnetIdUpdates = a} :: VpcConfigurationUpdate) Prelude.. Lens.mapping Lens.coerced
+
+-- | Describes an update to the ID of the VPC configuration.
+vpcConfigurationUpdate_vpcConfigurationId :: Lens.Lens' VpcConfigurationUpdate Prelude.Text
+vpcConfigurationUpdate_vpcConfigurationId = Lens.lens (\VpcConfigurationUpdate' {vpcConfigurationId} -> vpcConfigurationId) (\s@VpcConfigurationUpdate' {} a -> s {vpcConfigurationId = a} :: VpcConfigurationUpdate)
+
+instance Prelude.Hashable VpcConfigurationUpdate where
+  hashWithSalt _salt VpcConfigurationUpdate' {..} =
+    _salt
+      `Prelude.hashWithSalt` securityGroupIdUpdates
+      `Prelude.hashWithSalt` subnetIdUpdates
+      `Prelude.hashWithSalt` vpcConfigurationId
+
+instance Prelude.NFData VpcConfigurationUpdate where
+  rnf VpcConfigurationUpdate' {..} =
+    Prelude.rnf securityGroupIdUpdates
+      `Prelude.seq` Prelude.rnf subnetIdUpdates
+      `Prelude.seq` Prelude.rnf vpcConfigurationId
+
+instance Data.ToJSON VpcConfigurationUpdate where
+  toJSON VpcConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("SecurityGroupIdUpdates" Data..=)
+              Prelude.<$> securityGroupIdUpdates,
+            ("SubnetIdUpdates" Data..=)
+              Prelude.<$> subnetIdUpdates,
+            Prelude.Just
+              ("VpcConfigurationId" Data..= vpcConfigurationId)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinApplicationConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinApplicationConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinApplicationConfiguration.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.KinesisAnalyticsV2.Types.ZeppelinApplicationConfiguration
+-- 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.KinesisAnalyticsV2.Types.ZeppelinApplicationConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.CatalogConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.CustomArtifactConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.DeployAsApplicationConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfiguration
+import qualified Amazonka.Prelude as Prelude
+
+-- | The configuration of a Kinesis Data Analytics Studio notebook.
+--
+-- /See:/ 'newZeppelinApplicationConfiguration' smart constructor.
+data ZeppelinApplicationConfiguration = ZeppelinApplicationConfiguration'
+  { -- | The Amazon Glue Data Catalog that you use in queries in a Kinesis Data
+    -- Analytics Studio notebook.
+    catalogConfiguration :: Prelude.Maybe CatalogConfiguration,
+    -- | Custom artifacts are dependency JARs and user-defined functions (UDF).
+    customArtifactsConfiguration :: Prelude.Maybe [CustomArtifactConfiguration],
+    -- | The information required to deploy a Kinesis Data Analytics Studio
+    -- notebook as an application with durable state.
+    deployAsApplicationConfiguration :: Prelude.Maybe DeployAsApplicationConfiguration,
+    -- | The monitoring configuration of a Kinesis Data Analytics Studio
+    -- notebook.
+    monitoringConfiguration :: Prelude.Maybe ZeppelinMonitoringConfiguration
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ZeppelinApplicationConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'catalogConfiguration', 'zeppelinApplicationConfiguration_catalogConfiguration' - The Amazon Glue Data Catalog that you use in queries in a Kinesis Data
+-- Analytics Studio notebook.
+--
+-- 'customArtifactsConfiguration', 'zeppelinApplicationConfiguration_customArtifactsConfiguration' - Custom artifacts are dependency JARs and user-defined functions (UDF).
+--
+-- 'deployAsApplicationConfiguration', 'zeppelinApplicationConfiguration_deployAsApplicationConfiguration' - The information required to deploy a Kinesis Data Analytics Studio
+-- notebook as an application with durable state.
+--
+-- 'monitoringConfiguration', 'zeppelinApplicationConfiguration_monitoringConfiguration' - The monitoring configuration of a Kinesis Data Analytics Studio
+-- notebook.
+newZeppelinApplicationConfiguration ::
+  ZeppelinApplicationConfiguration
+newZeppelinApplicationConfiguration =
+  ZeppelinApplicationConfiguration'
+    { catalogConfiguration =
+        Prelude.Nothing,
+      customArtifactsConfiguration =
+        Prelude.Nothing,
+      deployAsApplicationConfiguration =
+        Prelude.Nothing,
+      monitoringConfiguration = Prelude.Nothing
+    }
+
+-- | The Amazon Glue Data Catalog that you use in queries in a Kinesis Data
+-- Analytics Studio notebook.
+zeppelinApplicationConfiguration_catalogConfiguration :: Lens.Lens' ZeppelinApplicationConfiguration (Prelude.Maybe CatalogConfiguration)
+zeppelinApplicationConfiguration_catalogConfiguration = Lens.lens (\ZeppelinApplicationConfiguration' {catalogConfiguration} -> catalogConfiguration) (\s@ZeppelinApplicationConfiguration' {} a -> s {catalogConfiguration = a} :: ZeppelinApplicationConfiguration)
+
+-- | Custom artifacts are dependency JARs and user-defined functions (UDF).
+zeppelinApplicationConfiguration_customArtifactsConfiguration :: Lens.Lens' ZeppelinApplicationConfiguration (Prelude.Maybe [CustomArtifactConfiguration])
+zeppelinApplicationConfiguration_customArtifactsConfiguration = Lens.lens (\ZeppelinApplicationConfiguration' {customArtifactsConfiguration} -> customArtifactsConfiguration) (\s@ZeppelinApplicationConfiguration' {} a -> s {customArtifactsConfiguration = a} :: ZeppelinApplicationConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | The information required to deploy a Kinesis Data Analytics Studio
+-- notebook as an application with durable state.
+zeppelinApplicationConfiguration_deployAsApplicationConfiguration :: Lens.Lens' ZeppelinApplicationConfiguration (Prelude.Maybe DeployAsApplicationConfiguration)
+zeppelinApplicationConfiguration_deployAsApplicationConfiguration = Lens.lens (\ZeppelinApplicationConfiguration' {deployAsApplicationConfiguration} -> deployAsApplicationConfiguration) (\s@ZeppelinApplicationConfiguration' {} a -> s {deployAsApplicationConfiguration = a} :: ZeppelinApplicationConfiguration)
+
+-- | The monitoring configuration of a Kinesis Data Analytics Studio
+-- notebook.
+zeppelinApplicationConfiguration_monitoringConfiguration :: Lens.Lens' ZeppelinApplicationConfiguration (Prelude.Maybe ZeppelinMonitoringConfiguration)
+zeppelinApplicationConfiguration_monitoringConfiguration = Lens.lens (\ZeppelinApplicationConfiguration' {monitoringConfiguration} -> monitoringConfiguration) (\s@ZeppelinApplicationConfiguration' {} a -> s {monitoringConfiguration = a} :: ZeppelinApplicationConfiguration)
+
+instance
+  Prelude.Hashable
+    ZeppelinApplicationConfiguration
+  where
+  hashWithSalt
+    _salt
+    ZeppelinApplicationConfiguration' {..} =
+      _salt
+        `Prelude.hashWithSalt` catalogConfiguration
+        `Prelude.hashWithSalt` customArtifactsConfiguration
+        `Prelude.hashWithSalt` deployAsApplicationConfiguration
+        `Prelude.hashWithSalt` monitoringConfiguration
+
+instance
+  Prelude.NFData
+    ZeppelinApplicationConfiguration
+  where
+  rnf ZeppelinApplicationConfiguration' {..} =
+    Prelude.rnf catalogConfiguration
+      `Prelude.seq` Prelude.rnf customArtifactsConfiguration
+      `Prelude.seq` Prelude.rnf deployAsApplicationConfiguration
+      `Prelude.seq` Prelude.rnf monitoringConfiguration
+
+instance Data.ToJSON ZeppelinApplicationConfiguration where
+  toJSON ZeppelinApplicationConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("CatalogConfiguration" Data..=)
+              Prelude.<$> catalogConfiguration,
+            ("CustomArtifactsConfiguration" Data..=)
+              Prelude.<$> customArtifactsConfiguration,
+            ("DeployAsApplicationConfiguration" Data..=)
+              Prelude.<$> deployAsApplicationConfiguration,
+            ("MonitoringConfiguration" Data..=)
+              Prelude.<$> monitoringConfiguration
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinApplicationConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinApplicationConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinApplicationConfigurationDescription.hs
@@ -0,0 +1,145 @@
+{-# 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.KinesisAnalyticsV2.Types.ZeppelinApplicationConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.ZeppelinApplicationConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.CatalogConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.CustomArtifactConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.DeployAsApplicationConfigurationDescription
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfigurationDescription
+import qualified Amazonka.Prelude as Prelude
+
+-- | The configuration of a Kinesis Data Analytics Studio notebook.
+--
+-- /See:/ 'newZeppelinApplicationConfigurationDescription' smart constructor.
+data ZeppelinApplicationConfigurationDescription = ZeppelinApplicationConfigurationDescription'
+  { -- | The Amazon Glue Data Catalog that is associated with the Kinesis Data
+    -- Analytics Studio notebook.
+    catalogConfigurationDescription :: Prelude.Maybe CatalogConfigurationDescription,
+    -- | Custom artifacts are dependency JARs and user-defined functions (UDF).
+    customArtifactsConfigurationDescription :: Prelude.Maybe [CustomArtifactConfigurationDescription],
+    -- | The parameters required to deploy a Kinesis Data Analytics Studio
+    -- notebook as an application with durable state.
+    deployAsApplicationConfigurationDescription :: Prelude.Maybe DeployAsApplicationConfigurationDescription,
+    -- | The monitoring configuration of a Kinesis Data Analytics Studio
+    -- notebook.
+    monitoringConfigurationDescription :: ZeppelinMonitoringConfigurationDescription
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ZeppelinApplicationConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'catalogConfigurationDescription', 'zeppelinApplicationConfigurationDescription_catalogConfigurationDescription' - The Amazon Glue Data Catalog that is associated with the Kinesis Data
+-- Analytics Studio notebook.
+--
+-- 'customArtifactsConfigurationDescription', 'zeppelinApplicationConfigurationDescription_customArtifactsConfigurationDescription' - Custom artifacts are dependency JARs and user-defined functions (UDF).
+--
+-- 'deployAsApplicationConfigurationDescription', 'zeppelinApplicationConfigurationDescription_deployAsApplicationConfigurationDescription' - The parameters required to deploy a Kinesis Data Analytics Studio
+-- notebook as an application with durable state.
+--
+-- 'monitoringConfigurationDescription', 'zeppelinApplicationConfigurationDescription_monitoringConfigurationDescription' - The monitoring configuration of a Kinesis Data Analytics Studio
+-- notebook.
+newZeppelinApplicationConfigurationDescription ::
+  -- | 'monitoringConfigurationDescription'
+  ZeppelinMonitoringConfigurationDescription ->
+  ZeppelinApplicationConfigurationDescription
+newZeppelinApplicationConfigurationDescription
+  pMonitoringConfigurationDescription_ =
+    ZeppelinApplicationConfigurationDescription'
+      { catalogConfigurationDescription =
+          Prelude.Nothing,
+        customArtifactsConfigurationDescription =
+          Prelude.Nothing,
+        deployAsApplicationConfigurationDescription =
+          Prelude.Nothing,
+        monitoringConfigurationDescription =
+          pMonitoringConfigurationDescription_
+      }
+
+-- | The Amazon Glue Data Catalog that is associated with the Kinesis Data
+-- Analytics Studio notebook.
+zeppelinApplicationConfigurationDescription_catalogConfigurationDescription :: Lens.Lens' ZeppelinApplicationConfigurationDescription (Prelude.Maybe CatalogConfigurationDescription)
+zeppelinApplicationConfigurationDescription_catalogConfigurationDescription = Lens.lens (\ZeppelinApplicationConfigurationDescription' {catalogConfigurationDescription} -> catalogConfigurationDescription) (\s@ZeppelinApplicationConfigurationDescription' {} a -> s {catalogConfigurationDescription = a} :: ZeppelinApplicationConfigurationDescription)
+
+-- | Custom artifacts are dependency JARs and user-defined functions (UDF).
+zeppelinApplicationConfigurationDescription_customArtifactsConfigurationDescription :: Lens.Lens' ZeppelinApplicationConfigurationDescription (Prelude.Maybe [CustomArtifactConfigurationDescription])
+zeppelinApplicationConfigurationDescription_customArtifactsConfigurationDescription = Lens.lens (\ZeppelinApplicationConfigurationDescription' {customArtifactsConfigurationDescription} -> customArtifactsConfigurationDescription) (\s@ZeppelinApplicationConfigurationDescription' {} a -> s {customArtifactsConfigurationDescription = a} :: ZeppelinApplicationConfigurationDescription) Prelude.. Lens.mapping Lens.coerced
+
+-- | The parameters required to deploy a Kinesis Data Analytics Studio
+-- notebook as an application with durable state.
+zeppelinApplicationConfigurationDescription_deployAsApplicationConfigurationDescription :: Lens.Lens' ZeppelinApplicationConfigurationDescription (Prelude.Maybe DeployAsApplicationConfigurationDescription)
+zeppelinApplicationConfigurationDescription_deployAsApplicationConfigurationDescription = Lens.lens (\ZeppelinApplicationConfigurationDescription' {deployAsApplicationConfigurationDescription} -> deployAsApplicationConfigurationDescription) (\s@ZeppelinApplicationConfigurationDescription' {} a -> s {deployAsApplicationConfigurationDescription = a} :: ZeppelinApplicationConfigurationDescription)
+
+-- | The monitoring configuration of a Kinesis Data Analytics Studio
+-- notebook.
+zeppelinApplicationConfigurationDescription_monitoringConfigurationDescription :: Lens.Lens' ZeppelinApplicationConfigurationDescription ZeppelinMonitoringConfigurationDescription
+zeppelinApplicationConfigurationDescription_monitoringConfigurationDescription = Lens.lens (\ZeppelinApplicationConfigurationDescription' {monitoringConfigurationDescription} -> monitoringConfigurationDescription) (\s@ZeppelinApplicationConfigurationDescription' {} a -> s {monitoringConfigurationDescription = a} :: ZeppelinApplicationConfigurationDescription)
+
+instance
+  Data.FromJSON
+    ZeppelinApplicationConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "ZeppelinApplicationConfigurationDescription"
+      ( \x ->
+          ZeppelinApplicationConfigurationDescription'
+            Prelude.<$> (x Data..:? "CatalogConfigurationDescription")
+            Prelude.<*> ( x
+                            Data..:? "CustomArtifactsConfigurationDescription"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> ( x
+                            Data..:? "DeployAsApplicationConfigurationDescription"
+                        )
+            Prelude.<*> (x Data..: "MonitoringConfigurationDescription")
+      )
+
+instance
+  Prelude.Hashable
+    ZeppelinApplicationConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    ZeppelinApplicationConfigurationDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` catalogConfigurationDescription
+        `Prelude.hashWithSalt` customArtifactsConfigurationDescription
+        `Prelude.hashWithSalt` deployAsApplicationConfigurationDescription
+        `Prelude.hashWithSalt` monitoringConfigurationDescription
+
+instance
+  Prelude.NFData
+    ZeppelinApplicationConfigurationDescription
+  where
+  rnf ZeppelinApplicationConfigurationDescription' {..} =
+    Prelude.rnf catalogConfigurationDescription
+      `Prelude.seq` Prelude.rnf customArtifactsConfigurationDescription
+      `Prelude.seq` Prelude.rnf
+        deployAsApplicationConfigurationDescription
+      `Prelude.seq` Prelude.rnf monitoringConfigurationDescription
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinApplicationConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinApplicationConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinApplicationConfigurationUpdate.hs
@@ -0,0 +1,138 @@
+{-# 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.KinesisAnalyticsV2.Types.ZeppelinApplicationConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.ZeppelinApplicationConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.CatalogConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.CustomArtifactConfiguration
+import Amazonka.KinesisAnalyticsV2.Types.DeployAsApplicationConfigurationUpdate
+import Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfigurationUpdate
+import qualified Amazonka.Prelude as Prelude
+
+-- | Updates to the configuration of Kinesis Data Analytics Studio notebook.
+--
+-- /See:/ 'newZeppelinApplicationConfigurationUpdate' smart constructor.
+data ZeppelinApplicationConfigurationUpdate = ZeppelinApplicationConfigurationUpdate'
+  { -- | Updates to the configuration of the Amazon Glue Data Catalog that is
+    -- associated with the Kinesis Data Analytics Studio notebook.
+    catalogConfigurationUpdate :: Prelude.Maybe CatalogConfigurationUpdate,
+    -- | Updates to the customer artifacts. Custom artifacts are dependency JAR
+    -- files and user-defined functions (UDF).
+    customArtifactsConfigurationUpdate :: Prelude.Maybe [CustomArtifactConfiguration],
+    deployAsApplicationConfigurationUpdate :: Prelude.Maybe DeployAsApplicationConfigurationUpdate,
+    -- | Updates to the monitoring configuration of a Kinesis Data Analytics
+    -- Studio notebook.
+    monitoringConfigurationUpdate :: Prelude.Maybe ZeppelinMonitoringConfigurationUpdate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ZeppelinApplicationConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'catalogConfigurationUpdate', 'zeppelinApplicationConfigurationUpdate_catalogConfigurationUpdate' - Updates to the configuration of the Amazon Glue Data Catalog that is
+-- associated with the Kinesis Data Analytics Studio notebook.
+--
+-- 'customArtifactsConfigurationUpdate', 'zeppelinApplicationConfigurationUpdate_customArtifactsConfigurationUpdate' - Updates to the customer artifacts. Custom artifacts are dependency JAR
+-- files and user-defined functions (UDF).
+--
+-- 'deployAsApplicationConfigurationUpdate', 'zeppelinApplicationConfigurationUpdate_deployAsApplicationConfigurationUpdate' - Undocumented member.
+--
+-- 'monitoringConfigurationUpdate', 'zeppelinApplicationConfigurationUpdate_monitoringConfigurationUpdate' - Updates to the monitoring configuration of a Kinesis Data Analytics
+-- Studio notebook.
+newZeppelinApplicationConfigurationUpdate ::
+  ZeppelinApplicationConfigurationUpdate
+newZeppelinApplicationConfigurationUpdate =
+  ZeppelinApplicationConfigurationUpdate'
+    { catalogConfigurationUpdate =
+        Prelude.Nothing,
+      customArtifactsConfigurationUpdate =
+        Prelude.Nothing,
+      deployAsApplicationConfigurationUpdate =
+        Prelude.Nothing,
+      monitoringConfigurationUpdate =
+        Prelude.Nothing
+    }
+
+-- | Updates to the configuration of the Amazon Glue Data Catalog that is
+-- associated with the Kinesis Data Analytics Studio notebook.
+zeppelinApplicationConfigurationUpdate_catalogConfigurationUpdate :: Lens.Lens' ZeppelinApplicationConfigurationUpdate (Prelude.Maybe CatalogConfigurationUpdate)
+zeppelinApplicationConfigurationUpdate_catalogConfigurationUpdate = Lens.lens (\ZeppelinApplicationConfigurationUpdate' {catalogConfigurationUpdate} -> catalogConfigurationUpdate) (\s@ZeppelinApplicationConfigurationUpdate' {} a -> s {catalogConfigurationUpdate = a} :: ZeppelinApplicationConfigurationUpdate)
+
+-- | Updates to the customer artifacts. Custom artifacts are dependency JAR
+-- files and user-defined functions (UDF).
+zeppelinApplicationConfigurationUpdate_customArtifactsConfigurationUpdate :: Lens.Lens' ZeppelinApplicationConfigurationUpdate (Prelude.Maybe [CustomArtifactConfiguration])
+zeppelinApplicationConfigurationUpdate_customArtifactsConfigurationUpdate = Lens.lens (\ZeppelinApplicationConfigurationUpdate' {customArtifactsConfigurationUpdate} -> customArtifactsConfigurationUpdate) (\s@ZeppelinApplicationConfigurationUpdate' {} a -> s {customArtifactsConfigurationUpdate = a} :: ZeppelinApplicationConfigurationUpdate) Prelude.. Lens.mapping Lens.coerced
+
+-- | Undocumented member.
+zeppelinApplicationConfigurationUpdate_deployAsApplicationConfigurationUpdate :: Lens.Lens' ZeppelinApplicationConfigurationUpdate (Prelude.Maybe DeployAsApplicationConfigurationUpdate)
+zeppelinApplicationConfigurationUpdate_deployAsApplicationConfigurationUpdate = Lens.lens (\ZeppelinApplicationConfigurationUpdate' {deployAsApplicationConfigurationUpdate} -> deployAsApplicationConfigurationUpdate) (\s@ZeppelinApplicationConfigurationUpdate' {} a -> s {deployAsApplicationConfigurationUpdate = a} :: ZeppelinApplicationConfigurationUpdate)
+
+-- | Updates to the monitoring configuration of a Kinesis Data Analytics
+-- Studio notebook.
+zeppelinApplicationConfigurationUpdate_monitoringConfigurationUpdate :: Lens.Lens' ZeppelinApplicationConfigurationUpdate (Prelude.Maybe ZeppelinMonitoringConfigurationUpdate)
+zeppelinApplicationConfigurationUpdate_monitoringConfigurationUpdate = Lens.lens (\ZeppelinApplicationConfigurationUpdate' {monitoringConfigurationUpdate} -> monitoringConfigurationUpdate) (\s@ZeppelinApplicationConfigurationUpdate' {} a -> s {monitoringConfigurationUpdate = a} :: ZeppelinApplicationConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    ZeppelinApplicationConfigurationUpdate
+  where
+  hashWithSalt
+    _salt
+    ZeppelinApplicationConfigurationUpdate' {..} =
+      _salt
+        `Prelude.hashWithSalt` catalogConfigurationUpdate
+        `Prelude.hashWithSalt` customArtifactsConfigurationUpdate
+        `Prelude.hashWithSalt` deployAsApplicationConfigurationUpdate
+        `Prelude.hashWithSalt` monitoringConfigurationUpdate
+
+instance
+  Prelude.NFData
+    ZeppelinApplicationConfigurationUpdate
+  where
+  rnf ZeppelinApplicationConfigurationUpdate' {..} =
+    Prelude.rnf catalogConfigurationUpdate
+      `Prelude.seq` Prelude.rnf customArtifactsConfigurationUpdate
+      `Prelude.seq` Prelude.rnf deployAsApplicationConfigurationUpdate
+      `Prelude.seq` Prelude.rnf monitoringConfigurationUpdate
+
+instance
+  Data.ToJSON
+    ZeppelinApplicationConfigurationUpdate
+  where
+  toJSON ZeppelinApplicationConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("CatalogConfigurationUpdate" Data..=)
+              Prelude.<$> catalogConfigurationUpdate,
+            ("CustomArtifactsConfigurationUpdate" Data..=)
+              Prelude.<$> customArtifactsConfigurationUpdate,
+            ("DeployAsApplicationConfigurationUpdate" Data..=)
+              Prelude.<$> deployAsApplicationConfigurationUpdate,
+            ("MonitoringConfigurationUpdate" Data..=)
+              Prelude.<$> monitoringConfigurationUpdate
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinMonitoringConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinMonitoringConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinMonitoringConfiguration.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfiguration
+-- 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.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfiguration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.LogLevel
+import qualified Amazonka.Prelude as Prelude
+
+-- | Describes configuration parameters for Amazon CloudWatch logging for a
+-- Kinesis Data Analytics Studio notebook. For more information about
+-- CloudWatch logging, see
+-- <https://docs.aws.amazon.com/kinesisanalytics/latest/java/monitoring-overview.html Monitoring>.
+--
+-- /See:/ 'newZeppelinMonitoringConfiguration' smart constructor.
+data ZeppelinMonitoringConfiguration = ZeppelinMonitoringConfiguration'
+  { -- | The verbosity of the CloudWatch Logs for an application.
+    logLevel :: LogLevel
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ZeppelinMonitoringConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'logLevel', 'zeppelinMonitoringConfiguration_logLevel' - The verbosity of the CloudWatch Logs for an application.
+newZeppelinMonitoringConfiguration ::
+  -- | 'logLevel'
+  LogLevel ->
+  ZeppelinMonitoringConfiguration
+newZeppelinMonitoringConfiguration pLogLevel_ =
+  ZeppelinMonitoringConfiguration'
+    { logLevel =
+        pLogLevel_
+    }
+
+-- | The verbosity of the CloudWatch Logs for an application.
+zeppelinMonitoringConfiguration_logLevel :: Lens.Lens' ZeppelinMonitoringConfiguration LogLevel
+zeppelinMonitoringConfiguration_logLevel = Lens.lens (\ZeppelinMonitoringConfiguration' {logLevel} -> logLevel) (\s@ZeppelinMonitoringConfiguration' {} a -> s {logLevel = a} :: ZeppelinMonitoringConfiguration)
+
+instance
+  Prelude.Hashable
+    ZeppelinMonitoringConfiguration
+  where
+  hashWithSalt
+    _salt
+    ZeppelinMonitoringConfiguration' {..} =
+      _salt `Prelude.hashWithSalt` logLevel
+
+instance
+  Prelude.NFData
+    ZeppelinMonitoringConfiguration
+  where
+  rnf ZeppelinMonitoringConfiguration' {..} =
+    Prelude.rnf logLevel
+
+instance Data.ToJSON ZeppelinMonitoringConfiguration where
+  toJSON ZeppelinMonitoringConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("LogLevel" Data..= logLevel)]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinMonitoringConfigurationDescription.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinMonitoringConfigurationDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinMonitoringConfigurationDescription.hs
@@ -0,0 +1,85 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfigurationDescription
+-- 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.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfigurationDescription where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.LogLevel
+import qualified Amazonka.Prelude as Prelude
+
+-- | The monitoring configuration for Apache Zeppelin within a Kinesis Data
+-- Analytics Studio notebook.
+--
+-- /See:/ 'newZeppelinMonitoringConfigurationDescription' smart constructor.
+data ZeppelinMonitoringConfigurationDescription = ZeppelinMonitoringConfigurationDescription'
+  { -- | Describes the verbosity of the CloudWatch Logs for an application.
+    logLevel :: Prelude.Maybe LogLevel
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ZeppelinMonitoringConfigurationDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'logLevel', 'zeppelinMonitoringConfigurationDescription_logLevel' - Describes the verbosity of the CloudWatch Logs for an application.
+newZeppelinMonitoringConfigurationDescription ::
+  ZeppelinMonitoringConfigurationDescription
+newZeppelinMonitoringConfigurationDescription =
+  ZeppelinMonitoringConfigurationDescription'
+    { logLevel =
+        Prelude.Nothing
+    }
+
+-- | Describes the verbosity of the CloudWatch Logs for an application.
+zeppelinMonitoringConfigurationDescription_logLevel :: Lens.Lens' ZeppelinMonitoringConfigurationDescription (Prelude.Maybe LogLevel)
+zeppelinMonitoringConfigurationDescription_logLevel = Lens.lens (\ZeppelinMonitoringConfigurationDescription' {logLevel} -> logLevel) (\s@ZeppelinMonitoringConfigurationDescription' {} a -> s {logLevel = a} :: ZeppelinMonitoringConfigurationDescription)
+
+instance
+  Data.FromJSON
+    ZeppelinMonitoringConfigurationDescription
+  where
+  parseJSON =
+    Data.withObject
+      "ZeppelinMonitoringConfigurationDescription"
+      ( \x ->
+          ZeppelinMonitoringConfigurationDescription'
+            Prelude.<$> (x Data..:? "LogLevel")
+      )
+
+instance
+  Prelude.Hashable
+    ZeppelinMonitoringConfigurationDescription
+  where
+  hashWithSalt
+    _salt
+    ZeppelinMonitoringConfigurationDescription' {..} =
+      _salt `Prelude.hashWithSalt` logLevel
+
+instance
+  Prelude.NFData
+    ZeppelinMonitoringConfigurationDescription
+  where
+  rnf ZeppelinMonitoringConfigurationDescription' {..} =
+    Prelude.rnf logLevel
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinMonitoringConfigurationUpdate.hs b/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinMonitoringConfigurationUpdate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Types/ZeppelinMonitoringConfigurationUpdate.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.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfigurationUpdate
+-- 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.KinesisAnalyticsV2.Types.ZeppelinMonitoringConfigurationUpdate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types.LogLevel
+import qualified Amazonka.Prelude as Prelude
+
+-- | Updates to the monitoring configuration for Apache Zeppelin within a
+-- Kinesis Data Analytics Studio notebook.
+--
+-- /See:/ 'newZeppelinMonitoringConfigurationUpdate' smart constructor.
+data ZeppelinMonitoringConfigurationUpdate = ZeppelinMonitoringConfigurationUpdate'
+  { -- | Updates to the logging level for Apache Zeppelin within a Kinesis Data
+    -- Analytics Studio notebook.
+    logLevelUpdate :: LogLevel
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ZeppelinMonitoringConfigurationUpdate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'logLevelUpdate', 'zeppelinMonitoringConfigurationUpdate_logLevelUpdate' - Updates to the logging level for Apache Zeppelin within a Kinesis Data
+-- Analytics Studio notebook.
+newZeppelinMonitoringConfigurationUpdate ::
+  -- | 'logLevelUpdate'
+  LogLevel ->
+  ZeppelinMonitoringConfigurationUpdate
+newZeppelinMonitoringConfigurationUpdate
+  pLogLevelUpdate_ =
+    ZeppelinMonitoringConfigurationUpdate'
+      { logLevelUpdate =
+          pLogLevelUpdate_
+      }
+
+-- | Updates to the logging level for Apache Zeppelin within a Kinesis Data
+-- Analytics Studio notebook.
+zeppelinMonitoringConfigurationUpdate_logLevelUpdate :: Lens.Lens' ZeppelinMonitoringConfigurationUpdate LogLevel
+zeppelinMonitoringConfigurationUpdate_logLevelUpdate = Lens.lens (\ZeppelinMonitoringConfigurationUpdate' {logLevelUpdate} -> logLevelUpdate) (\s@ZeppelinMonitoringConfigurationUpdate' {} a -> s {logLevelUpdate = a} :: ZeppelinMonitoringConfigurationUpdate)
+
+instance
+  Prelude.Hashable
+    ZeppelinMonitoringConfigurationUpdate
+  where
+  hashWithSalt
+    _salt
+    ZeppelinMonitoringConfigurationUpdate' {..} =
+      _salt `Prelude.hashWithSalt` logLevelUpdate
+
+instance
+  Prelude.NFData
+    ZeppelinMonitoringConfigurationUpdate
+  where
+  rnf ZeppelinMonitoringConfigurationUpdate' {..} =
+    Prelude.rnf logLevelUpdate
+
+instance
+  Data.ToJSON
+    ZeppelinMonitoringConfigurationUpdate
+  where
+  toJSON ZeppelinMonitoringConfigurationUpdate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("LogLevelUpdate" Data..= logLevelUpdate)
+          ]
+      )
diff --git a/gen/Amazonka/KinesisAnalyticsV2/UntagResource.hs b/gen/Amazonka/KinesisAnalyticsV2/UntagResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/UntagResource.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.KinesisAnalyticsV2.UntagResource
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes one or more tags from a Kinesis Data Analytics application. For
+-- more information, see
+-- <https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html Using Tagging>.
+module Amazonka.KinesisAnalyticsV2.UntagResource
+  ( -- * Creating a Request
+    UntagResource (..),
+    newUntagResource,
+
+    -- * Request Lenses
+    untagResource_resourceARN,
+    untagResource_tagKeys,
+
+    -- * Destructuring the Response
+    UntagResourceResponse (..),
+    newUntagResourceResponse,
+
+    -- * Response Lenses
+    untagResourceResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newUntagResource' smart constructor.
+data UntagResource = UntagResource'
+  { -- | The ARN of the Kinesis Data Analytics application from which to remove
+    -- the tags.
+    resourceARN :: Prelude.Text,
+    -- | A list of keys of tags to remove from the specified application.
+    tagKeys :: Prelude.NonEmpty Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UntagResource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceARN', 'untagResource_resourceARN' - The ARN of the Kinesis Data Analytics application from which to remove
+-- the tags.
+--
+-- 'tagKeys', 'untagResource_tagKeys' - A list of keys of tags to remove from the specified application.
+newUntagResource ::
+  -- | 'resourceARN'
+  Prelude.Text ->
+  -- | 'tagKeys'
+  Prelude.NonEmpty Prelude.Text ->
+  UntagResource
+newUntagResource pResourceARN_ pTagKeys_ =
+  UntagResource'
+    { resourceARN = pResourceARN_,
+      tagKeys = Lens.coerced Lens.# pTagKeys_
+    }
+
+-- | The ARN of the Kinesis Data Analytics application from which to remove
+-- the tags.
+untagResource_resourceARN :: Lens.Lens' UntagResource Prelude.Text
+untagResource_resourceARN = Lens.lens (\UntagResource' {resourceARN} -> resourceARN) (\s@UntagResource' {} a -> s {resourceARN = a} :: UntagResource)
+
+-- | A list of keys of tags to remove from the specified application.
+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.NonEmpty Prelude.Text)
+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced
+
+instance Core.AWSRequest UntagResource where
+  type
+    AWSResponse UntagResource =
+      UntagResourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          UntagResourceResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UntagResource where
+  hashWithSalt _salt UntagResource' {..} =
+    _salt
+      `Prelude.hashWithSalt` resourceARN
+      `Prelude.hashWithSalt` tagKeys
+
+instance Prelude.NFData UntagResource where
+  rnf UntagResource' {..} =
+    Prelude.rnf resourceARN
+      `Prelude.seq` Prelude.rnf tagKeys
+
+instance Data.ToHeaders UntagResource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.UntagResource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UntagResource where
+  toJSON UntagResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("ResourceARN" Data..= resourceARN),
+            Prelude.Just ("TagKeys" Data..= tagKeys)
+          ]
+      )
+
+instance Data.ToPath UntagResource where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UntagResource where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUntagResourceResponse' smart constructor.
+data UntagResourceResponse = UntagResourceResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.
+newUntagResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UntagResourceResponse
+newUntagResourceResponse pHttpStatus_ =
+  UntagResourceResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int
+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)
+
+instance Prelude.NFData UntagResourceResponse where
+  rnf UntagResourceResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/UpdateApplication.hs b/gen/Amazonka/KinesisAnalyticsV2/UpdateApplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/UpdateApplication.hs
@@ -0,0 +1,308 @@
+{-# 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.KinesisAnalyticsV2.UpdateApplication
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing Kinesis Data Analytics application. Using this
+-- operation, you can update application code, input configuration, and
+-- output configuration.
+--
+-- Kinesis Data Analytics updates the @ApplicationVersionId@ each time you
+-- update your application.
+--
+-- You cannot update the @RuntimeEnvironment@ of an existing application.
+-- If you need to update an application\'s @RuntimeEnvironment@, you must
+-- delete the application and create it again.
+module Amazonka.KinesisAnalyticsV2.UpdateApplication
+  ( -- * Creating a Request
+    UpdateApplication (..),
+    newUpdateApplication,
+
+    -- * Request Lenses
+    updateApplication_applicationConfigurationUpdate,
+    updateApplication_cloudWatchLoggingOptionUpdates,
+    updateApplication_conditionalToken,
+    updateApplication_currentApplicationVersionId,
+    updateApplication_runConfigurationUpdate,
+    updateApplication_serviceExecutionRoleUpdate,
+    updateApplication_applicationName,
+
+    -- * Destructuring the Response
+    UpdateApplicationResponse (..),
+    newUpdateApplicationResponse,
+
+    -- * Response Lenses
+    updateApplicationResponse_httpStatus,
+    updateApplicationResponse_applicationDetail,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newUpdateApplication' smart constructor.
+data UpdateApplication = UpdateApplication'
+  { -- | Describes application configuration updates.
+    applicationConfigurationUpdate :: Prelude.Maybe ApplicationConfigurationUpdate,
+    -- | Describes application Amazon CloudWatch logging option updates. You can
+    -- only update existing CloudWatch logging options with this action. To add
+    -- a new CloudWatch logging option, use
+    -- AddApplicationCloudWatchLoggingOption.
+    cloudWatchLoggingOptionUpdates :: Prelude.Maybe [CloudWatchLoggingOptionUpdate],
+    -- | A value you use to implement strong concurrency for application updates.
+    -- You must provide the @CurrentApplicationVersionId@ or the
+    -- @ConditionalToken@. You get the application\'s current
+    -- @ConditionalToken@ using DescribeApplication. For better concurrency
+    -- support, use the @ConditionalToken@ parameter instead of
+    -- @CurrentApplicationVersionId@.
+    conditionalToken :: Prelude.Maybe Prelude.Text,
+    -- | The current application version ID. You must provide the
+    -- @CurrentApplicationVersionId@ or the @ConditionalToken@.You can retrieve
+    -- the application version ID using DescribeApplication. For better
+    -- concurrency support, use the @ConditionalToken@ parameter instead of
+    -- @CurrentApplicationVersionId@.
+    currentApplicationVersionId :: Prelude.Maybe Prelude.Natural,
+    -- | Describes updates to the application\'s starting parameters.
+    runConfigurationUpdate :: Prelude.Maybe RunConfigurationUpdate,
+    -- | Describes updates to the service execution role.
+    serviceExecutionRoleUpdate :: Prelude.Maybe Prelude.Text,
+    -- | The name of the application to update.
+    applicationName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateApplication' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationConfigurationUpdate', 'updateApplication_applicationConfigurationUpdate' - Describes application configuration updates.
+--
+-- 'cloudWatchLoggingOptionUpdates', 'updateApplication_cloudWatchLoggingOptionUpdates' - Describes application Amazon CloudWatch logging option updates. You can
+-- only update existing CloudWatch logging options with this action. To add
+-- a new CloudWatch logging option, use
+-- AddApplicationCloudWatchLoggingOption.
+--
+-- 'conditionalToken', 'updateApplication_conditionalToken' - A value you use to implement strong concurrency for application updates.
+-- You must provide the @CurrentApplicationVersionId@ or the
+-- @ConditionalToken@. You get the application\'s current
+-- @ConditionalToken@ using DescribeApplication. For better concurrency
+-- support, use the @ConditionalToken@ parameter instead of
+-- @CurrentApplicationVersionId@.
+--
+-- 'currentApplicationVersionId', 'updateApplication_currentApplicationVersionId' - The current application version ID. You must provide the
+-- @CurrentApplicationVersionId@ or the @ConditionalToken@.You can retrieve
+-- the application version ID using DescribeApplication. For better
+-- concurrency support, use the @ConditionalToken@ parameter instead of
+-- @CurrentApplicationVersionId@.
+--
+-- 'runConfigurationUpdate', 'updateApplication_runConfigurationUpdate' - Describes updates to the application\'s starting parameters.
+--
+-- 'serviceExecutionRoleUpdate', 'updateApplication_serviceExecutionRoleUpdate' - Describes updates to the service execution role.
+--
+-- 'applicationName', 'updateApplication_applicationName' - The name of the application to update.
+newUpdateApplication ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  UpdateApplication
+newUpdateApplication pApplicationName_ =
+  UpdateApplication'
+    { applicationConfigurationUpdate =
+        Prelude.Nothing,
+      cloudWatchLoggingOptionUpdates = Prelude.Nothing,
+      conditionalToken = Prelude.Nothing,
+      currentApplicationVersionId = Prelude.Nothing,
+      runConfigurationUpdate = Prelude.Nothing,
+      serviceExecutionRoleUpdate = Prelude.Nothing,
+      applicationName = pApplicationName_
+    }
+
+-- | Describes application configuration updates.
+updateApplication_applicationConfigurationUpdate :: Lens.Lens' UpdateApplication (Prelude.Maybe ApplicationConfigurationUpdate)
+updateApplication_applicationConfigurationUpdate = Lens.lens (\UpdateApplication' {applicationConfigurationUpdate} -> applicationConfigurationUpdate) (\s@UpdateApplication' {} a -> s {applicationConfigurationUpdate = a} :: UpdateApplication)
+
+-- | Describes application Amazon CloudWatch logging option updates. You can
+-- only update existing CloudWatch logging options with this action. To add
+-- a new CloudWatch logging option, use
+-- AddApplicationCloudWatchLoggingOption.
+updateApplication_cloudWatchLoggingOptionUpdates :: Lens.Lens' UpdateApplication (Prelude.Maybe [CloudWatchLoggingOptionUpdate])
+updateApplication_cloudWatchLoggingOptionUpdates = Lens.lens (\UpdateApplication' {cloudWatchLoggingOptionUpdates} -> cloudWatchLoggingOptionUpdates) (\s@UpdateApplication' {} a -> s {cloudWatchLoggingOptionUpdates = a} :: UpdateApplication) Prelude.. Lens.mapping Lens.coerced
+
+-- | A value you use to implement strong concurrency for application updates.
+-- You must provide the @CurrentApplicationVersionId@ or the
+-- @ConditionalToken@. You get the application\'s current
+-- @ConditionalToken@ using DescribeApplication. For better concurrency
+-- support, use the @ConditionalToken@ parameter instead of
+-- @CurrentApplicationVersionId@.
+updateApplication_conditionalToken :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)
+updateApplication_conditionalToken = Lens.lens (\UpdateApplication' {conditionalToken} -> conditionalToken) (\s@UpdateApplication' {} a -> s {conditionalToken = a} :: UpdateApplication)
+
+-- | The current application version ID. You must provide the
+-- @CurrentApplicationVersionId@ or the @ConditionalToken@.You can retrieve
+-- the application version ID using DescribeApplication. For better
+-- concurrency support, use the @ConditionalToken@ parameter instead of
+-- @CurrentApplicationVersionId@.
+updateApplication_currentApplicationVersionId :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Natural)
+updateApplication_currentApplicationVersionId = Lens.lens (\UpdateApplication' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@UpdateApplication' {} a -> s {currentApplicationVersionId = a} :: UpdateApplication)
+
+-- | Describes updates to the application\'s starting parameters.
+updateApplication_runConfigurationUpdate :: Lens.Lens' UpdateApplication (Prelude.Maybe RunConfigurationUpdate)
+updateApplication_runConfigurationUpdate = Lens.lens (\UpdateApplication' {runConfigurationUpdate} -> runConfigurationUpdate) (\s@UpdateApplication' {} a -> s {runConfigurationUpdate = a} :: UpdateApplication)
+
+-- | Describes updates to the service execution role.
+updateApplication_serviceExecutionRoleUpdate :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)
+updateApplication_serviceExecutionRoleUpdate = Lens.lens (\UpdateApplication' {serviceExecutionRoleUpdate} -> serviceExecutionRoleUpdate) (\s@UpdateApplication' {} a -> s {serviceExecutionRoleUpdate = a} :: UpdateApplication)
+
+-- | The name of the application to update.
+updateApplication_applicationName :: Lens.Lens' UpdateApplication Prelude.Text
+updateApplication_applicationName = Lens.lens (\UpdateApplication' {applicationName} -> applicationName) (\s@UpdateApplication' {} a -> s {applicationName = a} :: UpdateApplication)
+
+instance Core.AWSRequest UpdateApplication where
+  type
+    AWSResponse UpdateApplication =
+      UpdateApplicationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateApplicationResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "ApplicationDetail")
+      )
+
+instance Prelude.Hashable UpdateApplication where
+  hashWithSalt _salt UpdateApplication' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationConfigurationUpdate
+      `Prelude.hashWithSalt` cloudWatchLoggingOptionUpdates
+      `Prelude.hashWithSalt` conditionalToken
+      `Prelude.hashWithSalt` currentApplicationVersionId
+      `Prelude.hashWithSalt` runConfigurationUpdate
+      `Prelude.hashWithSalt` serviceExecutionRoleUpdate
+      `Prelude.hashWithSalt` applicationName
+
+instance Prelude.NFData UpdateApplication where
+  rnf UpdateApplication' {..} =
+    Prelude.rnf applicationConfigurationUpdate
+      `Prelude.seq` Prelude.rnf cloudWatchLoggingOptionUpdates
+      `Prelude.seq` Prelude.rnf conditionalToken
+      `Prelude.seq` Prelude.rnf currentApplicationVersionId
+      `Prelude.seq` Prelude.rnf runConfigurationUpdate
+      `Prelude.seq` Prelude.rnf serviceExecutionRoleUpdate
+      `Prelude.seq` Prelude.rnf applicationName
+
+instance Data.ToHeaders UpdateApplication where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.UpdateApplication" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateApplication where
+  toJSON UpdateApplication' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("ApplicationConfigurationUpdate" Data..=)
+              Prelude.<$> applicationConfigurationUpdate,
+            ("CloudWatchLoggingOptionUpdates" Data..=)
+              Prelude.<$> cloudWatchLoggingOptionUpdates,
+            ("ConditionalToken" Data..=)
+              Prelude.<$> conditionalToken,
+            ("CurrentApplicationVersionId" Data..=)
+              Prelude.<$> currentApplicationVersionId,
+            ("RunConfigurationUpdate" Data..=)
+              Prelude.<$> runConfigurationUpdate,
+            ("ServiceExecutionRoleUpdate" Data..=)
+              Prelude.<$> serviceExecutionRoleUpdate,
+            Prelude.Just
+              ("ApplicationName" Data..= applicationName)
+          ]
+      )
+
+instance Data.ToPath UpdateApplication where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UpdateApplication where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateApplicationResponse' smart constructor.
+data UpdateApplicationResponse = UpdateApplicationResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | Describes application updates.
+    applicationDetail :: ApplicationDetail
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateApplicationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'updateApplicationResponse_httpStatus' - The response's http status code.
+--
+-- 'applicationDetail', 'updateApplicationResponse_applicationDetail' - Describes application updates.
+newUpdateApplicationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'applicationDetail'
+  ApplicationDetail ->
+  UpdateApplicationResponse
+newUpdateApplicationResponse
+  pHttpStatus_
+  pApplicationDetail_ =
+    UpdateApplicationResponse'
+      { httpStatus =
+          pHttpStatus_,
+        applicationDetail = pApplicationDetail_
+      }
+
+-- | The response's http status code.
+updateApplicationResponse_httpStatus :: Lens.Lens' UpdateApplicationResponse Prelude.Int
+updateApplicationResponse_httpStatus = Lens.lens (\UpdateApplicationResponse' {httpStatus} -> httpStatus) (\s@UpdateApplicationResponse' {} a -> s {httpStatus = a} :: UpdateApplicationResponse)
+
+-- | Describes application updates.
+updateApplicationResponse_applicationDetail :: Lens.Lens' UpdateApplicationResponse ApplicationDetail
+updateApplicationResponse_applicationDetail = Lens.lens (\UpdateApplicationResponse' {applicationDetail} -> applicationDetail) (\s@UpdateApplicationResponse' {} a -> s {applicationDetail = a} :: UpdateApplicationResponse)
+
+instance Prelude.NFData UpdateApplicationResponse where
+  rnf UpdateApplicationResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf applicationDetail
diff --git a/gen/Amazonka/KinesisAnalyticsV2/UpdateApplicationMaintenanceConfiguration.hs b/gen/Amazonka/KinesisAnalyticsV2/UpdateApplicationMaintenanceConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/UpdateApplicationMaintenanceConfiguration.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.KinesisAnalyticsV2.UpdateApplicationMaintenanceConfiguration
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the maintenance configuration of the Kinesis Data Analytics
+-- application.
+--
+-- You can invoke this operation on an application that is in one of the
+-- two following states: @READY@ or @RUNNING@. If you invoke it when the
+-- application is in a state other than these two states, it throws a
+-- @ResourceInUseException@. The service makes use of the updated
+-- configuration the next time it schedules maintenance for the
+-- application. If you invoke this operation after the service schedules
+-- maintenance, the service will apply the configuration update the next
+-- time it schedules maintenance for the application. This means that you
+-- might not see the maintenance configuration update applied to the
+-- maintenance process that follows a successful invocation of this
+-- operation, but to the following maintenance process instead.
+--
+-- To see the current maintenance configuration of your application, invoke
+-- the DescribeApplication operation.
+--
+-- For information about application maintenance, see
+-- <https://docs.aws.amazon.com/kinesisanalytics/latest/java/maintenance.html Kinesis Data Analytics for Apache Flink Maintenance>.
+--
+-- This operation is supported only for Amazon Kinesis Data Analytics for
+-- Apache Flink.
+module Amazonka.KinesisAnalyticsV2.UpdateApplicationMaintenanceConfiguration
+  ( -- * Creating a Request
+    UpdateApplicationMaintenanceConfiguration (..),
+    newUpdateApplicationMaintenanceConfiguration,
+
+    -- * Request Lenses
+    updateApplicationMaintenanceConfiguration_applicationName,
+    updateApplicationMaintenanceConfiguration_applicationMaintenanceConfigurationUpdate,
+
+    -- * Destructuring the Response
+    UpdateApplicationMaintenanceConfigurationResponse (..),
+    newUpdateApplicationMaintenanceConfigurationResponse,
+
+    -- * Response Lenses
+    updateApplicationMaintenanceConfigurationResponse_applicationARN,
+    updateApplicationMaintenanceConfigurationResponse_applicationMaintenanceConfigurationDescription,
+    updateApplicationMaintenanceConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newUpdateApplicationMaintenanceConfiguration' smart constructor.
+data UpdateApplicationMaintenanceConfiguration = UpdateApplicationMaintenanceConfiguration'
+  { -- | The name of the application for which you want to update the maintenance
+    -- configuration.
+    applicationName :: Prelude.Text,
+    -- | Describes the application maintenance configuration update.
+    applicationMaintenanceConfigurationUpdate :: ApplicationMaintenanceConfigurationUpdate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateApplicationMaintenanceConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationName', 'updateApplicationMaintenanceConfiguration_applicationName' - The name of the application for which you want to update the maintenance
+-- configuration.
+--
+-- 'applicationMaintenanceConfigurationUpdate', 'updateApplicationMaintenanceConfiguration_applicationMaintenanceConfigurationUpdate' - Describes the application maintenance configuration update.
+newUpdateApplicationMaintenanceConfiguration ::
+  -- | 'applicationName'
+  Prelude.Text ->
+  -- | 'applicationMaintenanceConfigurationUpdate'
+  ApplicationMaintenanceConfigurationUpdate ->
+  UpdateApplicationMaintenanceConfiguration
+newUpdateApplicationMaintenanceConfiguration
+  pApplicationName_
+  pApplicationMaintenanceConfigurationUpdate_ =
+    UpdateApplicationMaintenanceConfiguration'
+      { applicationName =
+          pApplicationName_,
+        applicationMaintenanceConfigurationUpdate =
+          pApplicationMaintenanceConfigurationUpdate_
+      }
+
+-- | The name of the application for which you want to update the maintenance
+-- configuration.
+updateApplicationMaintenanceConfiguration_applicationName :: Lens.Lens' UpdateApplicationMaintenanceConfiguration Prelude.Text
+updateApplicationMaintenanceConfiguration_applicationName = Lens.lens (\UpdateApplicationMaintenanceConfiguration' {applicationName} -> applicationName) (\s@UpdateApplicationMaintenanceConfiguration' {} a -> s {applicationName = a} :: UpdateApplicationMaintenanceConfiguration)
+
+-- | Describes the application maintenance configuration update.
+updateApplicationMaintenanceConfiguration_applicationMaintenanceConfigurationUpdate :: Lens.Lens' UpdateApplicationMaintenanceConfiguration ApplicationMaintenanceConfigurationUpdate
+updateApplicationMaintenanceConfiguration_applicationMaintenanceConfigurationUpdate = Lens.lens (\UpdateApplicationMaintenanceConfiguration' {applicationMaintenanceConfigurationUpdate} -> applicationMaintenanceConfigurationUpdate) (\s@UpdateApplicationMaintenanceConfiguration' {} a -> s {applicationMaintenanceConfigurationUpdate = a} :: UpdateApplicationMaintenanceConfiguration)
+
+instance
+  Core.AWSRequest
+    UpdateApplicationMaintenanceConfiguration
+  where
+  type
+    AWSResponse
+      UpdateApplicationMaintenanceConfiguration =
+      UpdateApplicationMaintenanceConfigurationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateApplicationMaintenanceConfigurationResponse'
+            Prelude.<$> (x Data..?> "ApplicationARN")
+            Prelude.<*> ( x
+                            Data..?> "ApplicationMaintenanceConfigurationDescription"
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    UpdateApplicationMaintenanceConfiguration
+  where
+  hashWithSalt
+    _salt
+    UpdateApplicationMaintenanceConfiguration' {..} =
+      _salt
+        `Prelude.hashWithSalt` applicationName
+        `Prelude.hashWithSalt` applicationMaintenanceConfigurationUpdate
+
+instance
+  Prelude.NFData
+    UpdateApplicationMaintenanceConfiguration
+  where
+  rnf UpdateApplicationMaintenanceConfiguration' {..} =
+    Prelude.rnf applicationName
+      `Prelude.seq` Prelude.rnf applicationMaintenanceConfigurationUpdate
+
+instance
+  Data.ToHeaders
+    UpdateApplicationMaintenanceConfiguration
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "KinesisAnalytics_20180523.UpdateApplicationMaintenanceConfiguration" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    UpdateApplicationMaintenanceConfiguration
+  where
+  toJSON UpdateApplicationMaintenanceConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("ApplicationName" Data..= applicationName),
+            Prelude.Just
+              ( "ApplicationMaintenanceConfigurationUpdate"
+                  Data..= applicationMaintenanceConfigurationUpdate
+              )
+          ]
+      )
+
+instance
+  Data.ToPath
+    UpdateApplicationMaintenanceConfiguration
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    UpdateApplicationMaintenanceConfiguration
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateApplicationMaintenanceConfigurationResponse' smart constructor.
+data UpdateApplicationMaintenanceConfigurationResponse = UpdateApplicationMaintenanceConfigurationResponse'
+  { -- | The Amazon Resource Name (ARN) of the application.
+    applicationARN :: Prelude.Maybe Prelude.Text,
+    -- | The application maintenance configuration description after the update.
+    applicationMaintenanceConfigurationDescription :: Prelude.Maybe ApplicationMaintenanceConfigurationDescription,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateApplicationMaintenanceConfigurationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationARN', 'updateApplicationMaintenanceConfigurationResponse_applicationARN' - The Amazon Resource Name (ARN) of the application.
+--
+-- 'applicationMaintenanceConfigurationDescription', 'updateApplicationMaintenanceConfigurationResponse_applicationMaintenanceConfigurationDescription' - The application maintenance configuration description after the update.
+--
+-- 'httpStatus', 'updateApplicationMaintenanceConfigurationResponse_httpStatus' - The response's http status code.
+newUpdateApplicationMaintenanceConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateApplicationMaintenanceConfigurationResponse
+newUpdateApplicationMaintenanceConfigurationResponse
+  pHttpStatus_ =
+    UpdateApplicationMaintenanceConfigurationResponse'
+      { applicationARN =
+          Prelude.Nothing,
+        applicationMaintenanceConfigurationDescription =
+          Prelude.Nothing,
+        httpStatus =
+          pHttpStatus_
+      }
+
+-- | The Amazon Resource Name (ARN) of the application.
+updateApplicationMaintenanceConfigurationResponse_applicationARN :: Lens.Lens' UpdateApplicationMaintenanceConfigurationResponse (Prelude.Maybe Prelude.Text)
+updateApplicationMaintenanceConfigurationResponse_applicationARN = Lens.lens (\UpdateApplicationMaintenanceConfigurationResponse' {applicationARN} -> applicationARN) (\s@UpdateApplicationMaintenanceConfigurationResponse' {} a -> s {applicationARN = a} :: UpdateApplicationMaintenanceConfigurationResponse)
+
+-- | The application maintenance configuration description after the update.
+updateApplicationMaintenanceConfigurationResponse_applicationMaintenanceConfigurationDescription :: Lens.Lens' UpdateApplicationMaintenanceConfigurationResponse (Prelude.Maybe ApplicationMaintenanceConfigurationDescription)
+updateApplicationMaintenanceConfigurationResponse_applicationMaintenanceConfigurationDescription = Lens.lens (\UpdateApplicationMaintenanceConfigurationResponse' {applicationMaintenanceConfigurationDescription} -> applicationMaintenanceConfigurationDescription) (\s@UpdateApplicationMaintenanceConfigurationResponse' {} a -> s {applicationMaintenanceConfigurationDescription = a} :: UpdateApplicationMaintenanceConfigurationResponse)
+
+-- | The response's http status code.
+updateApplicationMaintenanceConfigurationResponse_httpStatus :: Lens.Lens' UpdateApplicationMaintenanceConfigurationResponse Prelude.Int
+updateApplicationMaintenanceConfigurationResponse_httpStatus = Lens.lens (\UpdateApplicationMaintenanceConfigurationResponse' {httpStatus} -> httpStatus) (\s@UpdateApplicationMaintenanceConfigurationResponse' {} a -> s {httpStatus = a} :: UpdateApplicationMaintenanceConfigurationResponse)
+
+instance
+  Prelude.NFData
+    UpdateApplicationMaintenanceConfigurationResponse
+  where
+  rnf
+    UpdateApplicationMaintenanceConfigurationResponse' {..} =
+      Prelude.rnf applicationARN
+        `Prelude.seq` Prelude.rnf
+          applicationMaintenanceConfigurationDescription
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/KinesisAnalyticsV2/Waiters.hs b/gen/Amazonka/KinesisAnalyticsV2/Waiters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/KinesisAnalyticsV2/Waiters.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE DisambiguateRecordFields #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.KinesisAnalyticsV2.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.KinesisAnalyticsV2.Waiters where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.KinesisAnalyticsV2.Lens
+import Amazonka.KinesisAnalyticsV2.Types
+import qualified Amazonka.Prelude as Prelude
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.KinesisAnalyticsV2
+import Test.Amazonka.KinesisAnalyticsV2.Internal
+import Test.Tasty
+
+main :: IO ()
+main =
+  defaultMain $
+    testGroup
+      "KinesisAnalyticsV2"
+      [ testGroup "tests" tests,
+        testGroup "fixtures" fixtures
+      ]
diff --git a/test/Test/Amazonka/Gen/KinesisAnalyticsV2.hs b/test/Test/Amazonka/Gen/KinesisAnalyticsV2.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/Gen/KinesisAnalyticsV2.hs
@@ -0,0 +1,658 @@
+{-# 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.KinesisAnalyticsV2
+-- 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.KinesisAnalyticsV2 where
+
+import Amazonka.KinesisAnalyticsV2
+import qualified Data.Proxy as Proxy
+import Test.Amazonka.Fixture
+import Test.Amazonka.KinesisAnalyticsV2.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"
+--         [ requestAddApplicationCloudWatchLoggingOption $
+--             newAddApplicationCloudWatchLoggingOption
+--
+--         , requestAddApplicationInput $
+--             newAddApplicationInput
+--
+--         , requestAddApplicationInputProcessingConfiguration $
+--             newAddApplicationInputProcessingConfiguration
+--
+--         , requestAddApplicationOutput $
+--             newAddApplicationOutput
+--
+--         , requestAddApplicationReferenceDataSource $
+--             newAddApplicationReferenceDataSource
+--
+--         , requestAddApplicationVpcConfiguration $
+--             newAddApplicationVpcConfiguration
+--
+--         , requestCreateApplication $
+--             newCreateApplication
+--
+--         , requestCreateApplicationPresignedUrl $
+--             newCreateApplicationPresignedUrl
+--
+--         , requestCreateApplicationSnapshot $
+--             newCreateApplicationSnapshot
+--
+--         , requestDeleteApplication $
+--             newDeleteApplication
+--
+--         , requestDeleteApplicationCloudWatchLoggingOption $
+--             newDeleteApplicationCloudWatchLoggingOption
+--
+--         , requestDeleteApplicationInputProcessingConfiguration $
+--             newDeleteApplicationInputProcessingConfiguration
+--
+--         , requestDeleteApplicationOutput $
+--             newDeleteApplicationOutput
+--
+--         , requestDeleteApplicationReferenceDataSource $
+--             newDeleteApplicationReferenceDataSource
+--
+--         , requestDeleteApplicationSnapshot $
+--             newDeleteApplicationSnapshot
+--
+--         , requestDeleteApplicationVpcConfiguration $
+--             newDeleteApplicationVpcConfiguration
+--
+--         , requestDescribeApplication $
+--             newDescribeApplication
+--
+--         , requestDescribeApplicationSnapshot $
+--             newDescribeApplicationSnapshot
+--
+--         , requestDescribeApplicationVersion $
+--             newDescribeApplicationVersion
+--
+--         , requestDiscoverInputSchema $
+--             newDiscoverInputSchema
+--
+--         , requestListApplicationSnapshots $
+--             newListApplicationSnapshots
+--
+--         , requestListApplicationVersions $
+--             newListApplicationVersions
+--
+--         , requestListApplications $
+--             newListApplications
+--
+--         , requestListTagsForResource $
+--             newListTagsForResource
+--
+--         , requestRollbackApplication $
+--             newRollbackApplication
+--
+--         , requestStartApplication $
+--             newStartApplication
+--
+--         , requestStopApplication $
+--             newStopApplication
+--
+--         , requestTagResource $
+--             newTagResource
+--
+--         , requestUntagResource $
+--             newUntagResource
+--
+--         , requestUpdateApplication $
+--             newUpdateApplication
+--
+--         , requestUpdateApplicationMaintenanceConfiguration $
+--             newUpdateApplicationMaintenanceConfiguration
+--
+--           ]
+
+--     , testGroup "response"
+--         [ responseAddApplicationCloudWatchLoggingOption $
+--             newAddApplicationCloudWatchLoggingOptionResponse
+--
+--         , responseAddApplicationInput $
+--             newAddApplicationInputResponse
+--
+--         , responseAddApplicationInputProcessingConfiguration $
+--             newAddApplicationInputProcessingConfigurationResponse
+--
+--         , responseAddApplicationOutput $
+--             newAddApplicationOutputResponse
+--
+--         , responseAddApplicationReferenceDataSource $
+--             newAddApplicationReferenceDataSourceResponse
+--
+--         , responseAddApplicationVpcConfiguration $
+--             newAddApplicationVpcConfigurationResponse
+--
+--         , responseCreateApplication $
+--             newCreateApplicationResponse
+--
+--         , responseCreateApplicationPresignedUrl $
+--             newCreateApplicationPresignedUrlResponse
+--
+--         , responseCreateApplicationSnapshot $
+--             newCreateApplicationSnapshotResponse
+--
+--         , responseDeleteApplication $
+--             newDeleteApplicationResponse
+--
+--         , responseDeleteApplicationCloudWatchLoggingOption $
+--             newDeleteApplicationCloudWatchLoggingOptionResponse
+--
+--         , responseDeleteApplicationInputProcessingConfiguration $
+--             newDeleteApplicationInputProcessingConfigurationResponse
+--
+--         , responseDeleteApplicationOutput $
+--             newDeleteApplicationOutputResponse
+--
+--         , responseDeleteApplicationReferenceDataSource $
+--             newDeleteApplicationReferenceDataSourceResponse
+--
+--         , responseDeleteApplicationSnapshot $
+--             newDeleteApplicationSnapshotResponse
+--
+--         , responseDeleteApplicationVpcConfiguration $
+--             newDeleteApplicationVpcConfigurationResponse
+--
+--         , responseDescribeApplication $
+--             newDescribeApplicationResponse
+--
+--         , responseDescribeApplicationSnapshot $
+--             newDescribeApplicationSnapshotResponse
+--
+--         , responseDescribeApplicationVersion $
+--             newDescribeApplicationVersionResponse
+--
+--         , responseDiscoverInputSchema $
+--             newDiscoverInputSchemaResponse
+--
+--         , responseListApplicationSnapshots $
+--             newListApplicationSnapshotsResponse
+--
+--         , responseListApplicationVersions $
+--             newListApplicationVersionsResponse
+--
+--         , responseListApplications $
+--             newListApplicationsResponse
+--
+--         , responseListTagsForResource $
+--             newListTagsForResourceResponse
+--
+--         , responseRollbackApplication $
+--             newRollbackApplicationResponse
+--
+--         , responseStartApplication $
+--             newStartApplicationResponse
+--
+--         , responseStopApplication $
+--             newStopApplicationResponse
+--
+--         , responseTagResource $
+--             newTagResourceResponse
+--
+--         , responseUntagResource $
+--             newUntagResourceResponse
+--
+--         , responseUpdateApplication $
+--             newUpdateApplicationResponse
+--
+--         , responseUpdateApplicationMaintenanceConfiguration $
+--             newUpdateApplicationMaintenanceConfigurationResponse
+--
+--           ]
+--     ]
+
+-- Requests
+
+requestAddApplicationCloudWatchLoggingOption :: AddApplicationCloudWatchLoggingOption -> TestTree
+requestAddApplicationCloudWatchLoggingOption =
+  req
+    "AddApplicationCloudWatchLoggingOption"
+    "fixture/AddApplicationCloudWatchLoggingOption.yaml"
+
+requestAddApplicationInput :: AddApplicationInput -> TestTree
+requestAddApplicationInput =
+  req
+    "AddApplicationInput"
+    "fixture/AddApplicationInput.yaml"
+
+requestAddApplicationInputProcessingConfiguration :: AddApplicationInputProcessingConfiguration -> TestTree
+requestAddApplicationInputProcessingConfiguration =
+  req
+    "AddApplicationInputProcessingConfiguration"
+    "fixture/AddApplicationInputProcessingConfiguration.yaml"
+
+requestAddApplicationOutput :: AddApplicationOutput -> TestTree
+requestAddApplicationOutput =
+  req
+    "AddApplicationOutput"
+    "fixture/AddApplicationOutput.yaml"
+
+requestAddApplicationReferenceDataSource :: AddApplicationReferenceDataSource -> TestTree
+requestAddApplicationReferenceDataSource =
+  req
+    "AddApplicationReferenceDataSource"
+    "fixture/AddApplicationReferenceDataSource.yaml"
+
+requestAddApplicationVpcConfiguration :: AddApplicationVpcConfiguration -> TestTree
+requestAddApplicationVpcConfiguration =
+  req
+    "AddApplicationVpcConfiguration"
+    "fixture/AddApplicationVpcConfiguration.yaml"
+
+requestCreateApplication :: CreateApplication -> TestTree
+requestCreateApplication =
+  req
+    "CreateApplication"
+    "fixture/CreateApplication.yaml"
+
+requestCreateApplicationPresignedUrl :: CreateApplicationPresignedUrl -> TestTree
+requestCreateApplicationPresignedUrl =
+  req
+    "CreateApplicationPresignedUrl"
+    "fixture/CreateApplicationPresignedUrl.yaml"
+
+requestCreateApplicationSnapshot :: CreateApplicationSnapshot -> TestTree
+requestCreateApplicationSnapshot =
+  req
+    "CreateApplicationSnapshot"
+    "fixture/CreateApplicationSnapshot.yaml"
+
+requestDeleteApplication :: DeleteApplication -> TestTree
+requestDeleteApplication =
+  req
+    "DeleteApplication"
+    "fixture/DeleteApplication.yaml"
+
+requestDeleteApplicationCloudWatchLoggingOption :: DeleteApplicationCloudWatchLoggingOption -> TestTree
+requestDeleteApplicationCloudWatchLoggingOption =
+  req
+    "DeleteApplicationCloudWatchLoggingOption"
+    "fixture/DeleteApplicationCloudWatchLoggingOption.yaml"
+
+requestDeleteApplicationInputProcessingConfiguration :: DeleteApplicationInputProcessingConfiguration -> TestTree
+requestDeleteApplicationInputProcessingConfiguration =
+  req
+    "DeleteApplicationInputProcessingConfiguration"
+    "fixture/DeleteApplicationInputProcessingConfiguration.yaml"
+
+requestDeleteApplicationOutput :: DeleteApplicationOutput -> TestTree
+requestDeleteApplicationOutput =
+  req
+    "DeleteApplicationOutput"
+    "fixture/DeleteApplicationOutput.yaml"
+
+requestDeleteApplicationReferenceDataSource :: DeleteApplicationReferenceDataSource -> TestTree
+requestDeleteApplicationReferenceDataSource =
+  req
+    "DeleteApplicationReferenceDataSource"
+    "fixture/DeleteApplicationReferenceDataSource.yaml"
+
+requestDeleteApplicationSnapshot :: DeleteApplicationSnapshot -> TestTree
+requestDeleteApplicationSnapshot =
+  req
+    "DeleteApplicationSnapshot"
+    "fixture/DeleteApplicationSnapshot.yaml"
+
+requestDeleteApplicationVpcConfiguration :: DeleteApplicationVpcConfiguration -> TestTree
+requestDeleteApplicationVpcConfiguration =
+  req
+    "DeleteApplicationVpcConfiguration"
+    "fixture/DeleteApplicationVpcConfiguration.yaml"
+
+requestDescribeApplication :: DescribeApplication -> TestTree
+requestDescribeApplication =
+  req
+    "DescribeApplication"
+    "fixture/DescribeApplication.yaml"
+
+requestDescribeApplicationSnapshot :: DescribeApplicationSnapshot -> TestTree
+requestDescribeApplicationSnapshot =
+  req
+    "DescribeApplicationSnapshot"
+    "fixture/DescribeApplicationSnapshot.yaml"
+
+requestDescribeApplicationVersion :: DescribeApplicationVersion -> TestTree
+requestDescribeApplicationVersion =
+  req
+    "DescribeApplicationVersion"
+    "fixture/DescribeApplicationVersion.yaml"
+
+requestDiscoverInputSchema :: DiscoverInputSchema -> TestTree
+requestDiscoverInputSchema =
+  req
+    "DiscoverInputSchema"
+    "fixture/DiscoverInputSchema.yaml"
+
+requestListApplicationSnapshots :: ListApplicationSnapshots -> TestTree
+requestListApplicationSnapshots =
+  req
+    "ListApplicationSnapshots"
+    "fixture/ListApplicationSnapshots.yaml"
+
+requestListApplicationVersions :: ListApplicationVersions -> TestTree
+requestListApplicationVersions =
+  req
+    "ListApplicationVersions"
+    "fixture/ListApplicationVersions.yaml"
+
+requestListApplications :: ListApplications -> TestTree
+requestListApplications =
+  req
+    "ListApplications"
+    "fixture/ListApplications.yaml"
+
+requestListTagsForResource :: ListTagsForResource -> TestTree
+requestListTagsForResource =
+  req
+    "ListTagsForResource"
+    "fixture/ListTagsForResource.yaml"
+
+requestRollbackApplication :: RollbackApplication -> TestTree
+requestRollbackApplication =
+  req
+    "RollbackApplication"
+    "fixture/RollbackApplication.yaml"
+
+requestStartApplication :: StartApplication -> TestTree
+requestStartApplication =
+  req
+    "StartApplication"
+    "fixture/StartApplication.yaml"
+
+requestStopApplication :: StopApplication -> TestTree
+requestStopApplication =
+  req
+    "StopApplication"
+    "fixture/StopApplication.yaml"
+
+requestTagResource :: TagResource -> TestTree
+requestTagResource =
+  req
+    "TagResource"
+    "fixture/TagResource.yaml"
+
+requestUntagResource :: UntagResource -> TestTree
+requestUntagResource =
+  req
+    "UntagResource"
+    "fixture/UntagResource.yaml"
+
+requestUpdateApplication :: UpdateApplication -> TestTree
+requestUpdateApplication =
+  req
+    "UpdateApplication"
+    "fixture/UpdateApplication.yaml"
+
+requestUpdateApplicationMaintenanceConfiguration :: UpdateApplicationMaintenanceConfiguration -> TestTree
+requestUpdateApplicationMaintenanceConfiguration =
+  req
+    "UpdateApplicationMaintenanceConfiguration"
+    "fixture/UpdateApplicationMaintenanceConfiguration.yaml"
+
+-- Responses
+
+responseAddApplicationCloudWatchLoggingOption :: AddApplicationCloudWatchLoggingOptionResponse -> TestTree
+responseAddApplicationCloudWatchLoggingOption =
+  res
+    "AddApplicationCloudWatchLoggingOptionResponse"
+    "fixture/AddApplicationCloudWatchLoggingOptionResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy AddApplicationCloudWatchLoggingOption)
+
+responseAddApplicationInput :: AddApplicationInputResponse -> TestTree
+responseAddApplicationInput =
+  res
+    "AddApplicationInputResponse"
+    "fixture/AddApplicationInputResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy AddApplicationInput)
+
+responseAddApplicationInputProcessingConfiguration :: AddApplicationInputProcessingConfigurationResponse -> TestTree
+responseAddApplicationInputProcessingConfiguration =
+  res
+    "AddApplicationInputProcessingConfigurationResponse"
+    "fixture/AddApplicationInputProcessingConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy AddApplicationInputProcessingConfiguration)
+
+responseAddApplicationOutput :: AddApplicationOutputResponse -> TestTree
+responseAddApplicationOutput =
+  res
+    "AddApplicationOutputResponse"
+    "fixture/AddApplicationOutputResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy AddApplicationOutput)
+
+responseAddApplicationReferenceDataSource :: AddApplicationReferenceDataSourceResponse -> TestTree
+responseAddApplicationReferenceDataSource =
+  res
+    "AddApplicationReferenceDataSourceResponse"
+    "fixture/AddApplicationReferenceDataSourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy AddApplicationReferenceDataSource)
+
+responseAddApplicationVpcConfiguration :: AddApplicationVpcConfigurationResponse -> TestTree
+responseAddApplicationVpcConfiguration =
+  res
+    "AddApplicationVpcConfigurationResponse"
+    "fixture/AddApplicationVpcConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy AddApplicationVpcConfiguration)
+
+responseCreateApplication :: CreateApplicationResponse -> TestTree
+responseCreateApplication =
+  res
+    "CreateApplicationResponse"
+    "fixture/CreateApplicationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateApplication)
+
+responseCreateApplicationPresignedUrl :: CreateApplicationPresignedUrlResponse -> TestTree
+responseCreateApplicationPresignedUrl =
+  res
+    "CreateApplicationPresignedUrlResponse"
+    "fixture/CreateApplicationPresignedUrlResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateApplicationPresignedUrl)
+
+responseCreateApplicationSnapshot :: CreateApplicationSnapshotResponse -> TestTree
+responseCreateApplicationSnapshot =
+  res
+    "CreateApplicationSnapshotResponse"
+    "fixture/CreateApplicationSnapshotResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateApplicationSnapshot)
+
+responseDeleteApplication :: DeleteApplicationResponse -> TestTree
+responseDeleteApplication =
+  res
+    "DeleteApplicationResponse"
+    "fixture/DeleteApplicationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteApplication)
+
+responseDeleteApplicationCloudWatchLoggingOption :: DeleteApplicationCloudWatchLoggingOptionResponse -> TestTree
+responseDeleteApplicationCloudWatchLoggingOption =
+  res
+    "DeleteApplicationCloudWatchLoggingOptionResponse"
+    "fixture/DeleteApplicationCloudWatchLoggingOptionResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteApplicationCloudWatchLoggingOption)
+
+responseDeleteApplicationInputProcessingConfiguration :: DeleteApplicationInputProcessingConfigurationResponse -> TestTree
+responseDeleteApplicationInputProcessingConfiguration =
+  res
+    "DeleteApplicationInputProcessingConfigurationResponse"
+    "fixture/DeleteApplicationInputProcessingConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteApplicationInputProcessingConfiguration)
+
+responseDeleteApplicationOutput :: DeleteApplicationOutputResponse -> TestTree
+responseDeleteApplicationOutput =
+  res
+    "DeleteApplicationOutputResponse"
+    "fixture/DeleteApplicationOutputResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteApplicationOutput)
+
+responseDeleteApplicationReferenceDataSource :: DeleteApplicationReferenceDataSourceResponse -> TestTree
+responseDeleteApplicationReferenceDataSource =
+  res
+    "DeleteApplicationReferenceDataSourceResponse"
+    "fixture/DeleteApplicationReferenceDataSourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteApplicationReferenceDataSource)
+
+responseDeleteApplicationSnapshot :: DeleteApplicationSnapshotResponse -> TestTree
+responseDeleteApplicationSnapshot =
+  res
+    "DeleteApplicationSnapshotResponse"
+    "fixture/DeleteApplicationSnapshotResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteApplicationSnapshot)
+
+responseDeleteApplicationVpcConfiguration :: DeleteApplicationVpcConfigurationResponse -> TestTree
+responseDeleteApplicationVpcConfiguration =
+  res
+    "DeleteApplicationVpcConfigurationResponse"
+    "fixture/DeleteApplicationVpcConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteApplicationVpcConfiguration)
+
+responseDescribeApplication :: DescribeApplicationResponse -> TestTree
+responseDescribeApplication =
+  res
+    "DescribeApplicationResponse"
+    "fixture/DescribeApplicationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeApplication)
+
+responseDescribeApplicationSnapshot :: DescribeApplicationSnapshotResponse -> TestTree
+responseDescribeApplicationSnapshot =
+  res
+    "DescribeApplicationSnapshotResponse"
+    "fixture/DescribeApplicationSnapshotResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeApplicationSnapshot)
+
+responseDescribeApplicationVersion :: DescribeApplicationVersionResponse -> TestTree
+responseDescribeApplicationVersion =
+  res
+    "DescribeApplicationVersionResponse"
+    "fixture/DescribeApplicationVersionResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeApplicationVersion)
+
+responseDiscoverInputSchema :: DiscoverInputSchemaResponse -> TestTree
+responseDiscoverInputSchema =
+  res
+    "DiscoverInputSchemaResponse"
+    "fixture/DiscoverInputSchemaResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DiscoverInputSchema)
+
+responseListApplicationSnapshots :: ListApplicationSnapshotsResponse -> TestTree
+responseListApplicationSnapshots =
+  res
+    "ListApplicationSnapshotsResponse"
+    "fixture/ListApplicationSnapshotsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListApplicationSnapshots)
+
+responseListApplicationVersions :: ListApplicationVersionsResponse -> TestTree
+responseListApplicationVersions =
+  res
+    "ListApplicationVersionsResponse"
+    "fixture/ListApplicationVersionsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListApplicationVersions)
+
+responseListApplications :: ListApplicationsResponse -> TestTree
+responseListApplications =
+  res
+    "ListApplicationsResponse"
+    "fixture/ListApplicationsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListApplications)
+
+responseListTagsForResource :: ListTagsForResourceResponse -> TestTree
+responseListTagsForResource =
+  res
+    "ListTagsForResourceResponse"
+    "fixture/ListTagsForResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)
+
+responseRollbackApplication :: RollbackApplicationResponse -> TestTree
+responseRollbackApplication =
+  res
+    "RollbackApplicationResponse"
+    "fixture/RollbackApplicationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy RollbackApplication)
+
+responseStartApplication :: StartApplicationResponse -> TestTree
+responseStartApplication =
+  res
+    "StartApplicationResponse"
+    "fixture/StartApplicationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy StartApplication)
+
+responseStopApplication :: StopApplicationResponse -> TestTree
+responseStopApplication =
+  res
+    "StopApplicationResponse"
+    "fixture/StopApplicationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy StopApplication)
+
+responseTagResource :: TagResourceResponse -> TestTree
+responseTagResource =
+  res
+    "TagResourceResponse"
+    "fixture/TagResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy TagResource)
+
+responseUntagResource :: UntagResourceResponse -> TestTree
+responseUntagResource =
+  res
+    "UntagResourceResponse"
+    "fixture/UntagResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UntagResource)
+
+responseUpdateApplication :: UpdateApplicationResponse -> TestTree
+responseUpdateApplication =
+  res
+    "UpdateApplicationResponse"
+    "fixture/UpdateApplicationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateApplication)
+
+responseUpdateApplicationMaintenanceConfiguration :: UpdateApplicationMaintenanceConfigurationResponse -> TestTree
+responseUpdateApplicationMaintenanceConfiguration =
+  res
+    "UpdateApplicationMaintenanceConfigurationResponse"
+    "fixture/UpdateApplicationMaintenanceConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateApplicationMaintenanceConfiguration)
diff --git a/test/Test/Amazonka/KinesisAnalyticsV2.hs b/test/Test/Amazonka/KinesisAnalyticsV2.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/KinesisAnalyticsV2.hs
@@ -0,0 +1,20 @@
+-- |
+-- Module      : Test.Amazonka.KinesisAnalyticsV2
+-- 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.KinesisAnalyticsV2
+  ( tests,
+    fixtures,
+  )
+where
+
+import Test.Tasty (TestTree)
+
+tests :: [TestTree]
+tests = []
+
+fixtures :: [TestTree]
+fixtures = []
diff --git a/test/Test/Amazonka/KinesisAnalyticsV2/Internal.hs b/test/Test/Amazonka/KinesisAnalyticsV2/Internal.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/KinesisAnalyticsV2/Internal.hs
@@ -0,0 +1,8 @@
+-- |
+-- Module      : Test.Amazonka.KinesisAnalyticsV2.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.KinesisAnalyticsV2.Internal where
