diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -7,9 +7,8 @@
 
 
 ## Version
-
-`1.6.1`
-
+ 
+`2.0` - Derived from API version @2017-09-08@ of the AWS service descriptions, licensed under Apache 2.0.
 
 ## Description
 
@@ -26,7 +25,7 @@
 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 [Network.AWS.ServerlessApplicationRepository](http://hackage.haskell.org/package/amazonka-serverlessrepo/docs/Network-AWS-ServerlessApplicationRepository.html)
+See [Amazonka.ServerlessApplicationRepository](http://hackage.haskell.org/package/amazonka-serverlessrepo/docs/Amazonka-ServerlessApplicationRepository.html)
 or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.
 
 
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import           Distribution.Simple
-main = defaultMain
diff --git a/amazonka-serverlessrepo.cabal b/amazonka-serverlessrepo.cabal
--- a/amazonka-serverlessrepo.cabal
+++ b/amazonka-serverlessrepo.cabal
@@ -1,95 +1,109 @@
-name:                  amazonka-serverlessrepo
-version:               1.6.1
-synopsis:              Amazon ServerlessApplicationRepository 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>
-copyright:             Copyright (c) 2013-2018 Brendan Hay
-category:              Network, AWS, Cloud, Distributed Computing
-build-type:            Simple
-cabal-version:         >= 1.10
-extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep
+cabal-version:      2.2
+name:               amazonka-serverlessrepo
+version:            2.0
+synopsis:           Amazon ServerlessApplicationRepository 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:
-    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.
-    .
-    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
-    such as <http://hackage.haskell.org/package/lens lens> or
-    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
-    .
-    See "Network.AWS.ServerlessApplicationRepository" or <https://aws.amazon.com/documentation/ the AWS documentation>
-    to get started.
+  Derived from API version @2017-09-08@ 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.ServerlessApplicationRepository.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.ServerlessApplicationRepository" 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-serverlessrepo
+  type:     git
+  location: git://github.com/brendanhay/amazonka.git
+  subdir:   amazonka-serverlessrepo
 
 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:
-          Network.AWS.ServerlessApplicationRepository
-        , Network.AWS.ServerlessApplicationRepository.CreateApplication
-        , Network.AWS.ServerlessApplicationRepository.CreateApplicationVersion
-        , Network.AWS.ServerlessApplicationRepository.CreateCloudFormationChangeSet
-        , Network.AWS.ServerlessApplicationRepository.DeleteApplication
-        , Network.AWS.ServerlessApplicationRepository.GetApplication
-        , Network.AWS.ServerlessApplicationRepository.GetApplicationPolicy
-        , Network.AWS.ServerlessApplicationRepository.ListApplicationVersions
-        , Network.AWS.ServerlessApplicationRepository.ListApplications
-        , Network.AWS.ServerlessApplicationRepository.PutApplicationPolicy
-        , Network.AWS.ServerlessApplicationRepository.Types
-        , Network.AWS.ServerlessApplicationRepository.UpdateApplication
-        , Network.AWS.ServerlessApplicationRepository.Waiters
+  default-language: Haskell2010
+  hs-source-dirs:   src gen
+  ghc-options:
+    -Wall -fwarn-incomplete-uni-patterns
+    -fwarn-incomplete-record-updates -funbox-strict-fields
 
-    other-modules:
-          Network.AWS.ServerlessApplicationRepository.Types.Product
-        , Network.AWS.ServerlessApplicationRepository.Types.Sum
+  exposed-modules:
+    Amazonka.ServerlessApplicationRepository
+    Amazonka.ServerlessApplicationRepository.CreateApplication
+    Amazonka.ServerlessApplicationRepository.CreateApplicationVersion
+    Amazonka.ServerlessApplicationRepository.CreateCloudFormationChangeSet
+    Amazonka.ServerlessApplicationRepository.CreateCloudFormationTemplate
+    Amazonka.ServerlessApplicationRepository.DeleteApplication
+    Amazonka.ServerlessApplicationRepository.GetApplication
+    Amazonka.ServerlessApplicationRepository.GetApplicationPolicy
+    Amazonka.ServerlessApplicationRepository.GetCloudFormationTemplate
+    Amazonka.ServerlessApplicationRepository.Lens
+    Amazonka.ServerlessApplicationRepository.ListApplicationDependencies
+    Amazonka.ServerlessApplicationRepository.ListApplications
+    Amazonka.ServerlessApplicationRepository.ListApplicationVersions
+    Amazonka.ServerlessApplicationRepository.PutApplicationPolicy
+    Amazonka.ServerlessApplicationRepository.Types
+    Amazonka.ServerlessApplicationRepository.Types.ApplicationDependencySummary
+    Amazonka.ServerlessApplicationRepository.Types.ApplicationPolicyStatement
+    Amazonka.ServerlessApplicationRepository.Types.ApplicationSummary
+    Amazonka.ServerlessApplicationRepository.Types.Capability
+    Amazonka.ServerlessApplicationRepository.Types.ParameterDefinition
+    Amazonka.ServerlessApplicationRepository.Types.ParameterValue
+    Amazonka.ServerlessApplicationRepository.Types.RollbackConfiguration
+    Amazonka.ServerlessApplicationRepository.Types.RollbackTrigger
+    Amazonka.ServerlessApplicationRepository.Types.Status
+    Amazonka.ServerlessApplicationRepository.Types.Tag
+    Amazonka.ServerlessApplicationRepository.Types.Version
+    Amazonka.ServerlessApplicationRepository.Types.VersionSummary
+    Amazonka.ServerlessApplicationRepository.UnshareApplication
+    Amazonka.ServerlessApplicationRepository.UpdateApplication
+    Amazonka.ServerlessApplicationRepository.Waiters
 
-    build-depends:
-          amazonka-core == 1.6.1.*
-        , base          >= 4.7     && < 5
+  build-depends:
+    , amazonka-core  >=2.0  && <2.1
+    , base           >=4.12 && <5
 
 test-suite amazonka-serverlessrepo-test
-    type:              exitcode-stdio-1.0
-    default-language:  Haskell2010
-    hs-source-dirs:    test
-    main-is:           Main.hs
-
-    ghc-options:       -Wall -threaded
+  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.AWS.ServerlessApplicationRepository
-        , Test.AWS.Gen.ServerlessApplicationRepository
-        , Test.AWS.ServerlessApplicationRepository.Internal
+  -- 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.ServerlessApplicationRepository
+    Test.Amazonka.ServerlessApplicationRepository
+    Test.Amazonka.ServerlessApplicationRepository.Internal
 
-    build-depends:
-          amazonka-core == 1.6.1.*
-        , amazonka-test == 1.6.1.*
-        , amazonka-serverlessrepo
-        , base
-        , bytestring
-        , tasty
-        , tasty-hunit
-        , text
-        , time
-        , unordered-containers
+  build-depends:
+    , amazonka-core            >=2.0 && <2.1
+    , amazonka-serverlessrepo
+    , amazonka-test            >=2.0 && <2.1
+    , base
+    , bytestring
+    , case-insensitive
+    , tasty
+    , tasty-hunit
+    , text
+    , time
+    , unordered-containers
diff --git a/fixture/CreateCloudFormationTemplate.yaml b/fixture/CreateCloudFormationTemplate.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateCloudFormationTemplate.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/serverlessrepo/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  serverlessrepo.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/CreateCloudFormationTemplateResponse.proto b/fixture/CreateCloudFormationTemplateResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateCloudFormationTemplateResponse.proto
diff --git a/fixture/GetCloudFormationTemplate.yaml b/fixture/GetCloudFormationTemplate.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetCloudFormationTemplate.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/serverlessrepo/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  serverlessrepo.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/GetCloudFormationTemplateResponse.proto b/fixture/GetCloudFormationTemplateResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetCloudFormationTemplateResponse.proto
diff --git a/fixture/ListApplicationDependencies.yaml b/fixture/ListApplicationDependencies.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListApplicationDependencies.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/serverlessrepo/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  serverlessrepo.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/ListApplicationDependenciesResponse.proto b/fixture/ListApplicationDependenciesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListApplicationDependenciesResponse.proto
diff --git a/fixture/UnshareApplication.yaml b/fixture/UnshareApplication.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UnshareApplication.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/serverlessrepo/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  serverlessrepo.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/UnshareApplicationResponse.proto b/fixture/UnshareApplicationResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UnshareApplicationResponse.proto
diff --git a/gen/Amazonka/ServerlessApplicationRepository.hs b/gen/Amazonka/ServerlessApplicationRepository.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository.hs
@@ -0,0 +1,255 @@
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Amazonka.ServerlessApplicationRepository
+-- 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 @2017-09-08@ of the AWS service descriptions, licensed under Apache 2.0.
+--
+-- The AWS Serverless Application Repository makes it easy for developers
+-- and enterprises to quickly find and deploy serverless applications in
+-- the AWS Cloud. For more information about serverless applications, see
+-- Serverless Computing and Applications on the AWS website.
+--
+-- The AWS Serverless Application Repository is deeply integrated with the
+-- AWS Lambda console, so that developers of all levels can get started
+-- with serverless computing without needing to learn anything new. You can
+-- use category keywords to browse for applications such as web and mobile
+-- backends, data processing applications, or chatbots. You can also search
+-- for applications by name, publisher, or event source. To use an
+-- application, you simply choose it, configure any required fields, and
+-- deploy it with a few clicks.
+--
+-- You can also easily publish applications, sharing them publicly with the
+-- community at large, or privately within your team or across your
+-- organization. To publish a serverless application (or app), you can use
+-- the AWS Management Console, AWS Command Line Interface (AWS CLI), or AWS
+-- SDKs to upload the code. Along with the code, you upload a simple
+-- manifest file, also known as the AWS Serverless Application Model (AWS
+-- SAM) template. For more information about AWS SAM, see AWS Serverless
+-- Application Model (AWS SAM) on the AWS Labs GitHub repository.
+--
+-- The AWS Serverless Application Repository Developer Guide contains more
+-- information about the two developer experiences available:
+--
+-- -   Consuming Applications – Browse for applications and view
+--     information about them, including source code and readme files. Also
+--     install, configure, and deploy applications of your choosing.
+--
+--     Publishing Applications – Configure and upload applications to make
+--     them available to other developers, and publish new versions of
+--     applications.
+module Amazonka.ServerlessApplicationRepository
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    -- $errors
+
+    -- ** BadRequestException
+    _BadRequestException,
+
+    -- ** ConflictException
+    _ConflictException,
+
+    -- ** ForbiddenException
+    _ForbiddenException,
+
+    -- ** InternalServerErrorException
+    _InternalServerErrorException,
+
+    -- ** NotFoundException
+    _NotFoundException,
+
+    -- ** TooManyRequestsException
+    _TooManyRequestsException,
+
+    -- * Waiters
+    -- $waiters
+
+    -- * Operations
+    -- $operations
+
+    -- ** CreateApplication
+    CreateApplication (CreateApplication'),
+    newCreateApplication,
+    CreateApplicationResponse (CreateApplicationResponse'),
+    newCreateApplicationResponse,
+
+    -- ** CreateApplicationVersion
+    CreateApplicationVersion (CreateApplicationVersion'),
+    newCreateApplicationVersion,
+    CreateApplicationVersionResponse (CreateApplicationVersionResponse'),
+    newCreateApplicationVersionResponse,
+
+    -- ** CreateCloudFormationChangeSet
+    CreateCloudFormationChangeSet (CreateCloudFormationChangeSet'),
+    newCreateCloudFormationChangeSet,
+    CreateCloudFormationChangeSetResponse (CreateCloudFormationChangeSetResponse'),
+    newCreateCloudFormationChangeSetResponse,
+
+    -- ** CreateCloudFormationTemplate
+    CreateCloudFormationTemplate (CreateCloudFormationTemplate'),
+    newCreateCloudFormationTemplate,
+    CreateCloudFormationTemplateResponse (CreateCloudFormationTemplateResponse'),
+    newCreateCloudFormationTemplateResponse,
+
+    -- ** DeleteApplication
+    DeleteApplication (DeleteApplication'),
+    newDeleteApplication,
+    DeleteApplicationResponse (DeleteApplicationResponse'),
+    newDeleteApplicationResponse,
+
+    -- ** GetApplication
+    GetApplication (GetApplication'),
+    newGetApplication,
+    GetApplicationResponse (GetApplicationResponse'),
+    newGetApplicationResponse,
+
+    -- ** GetApplicationPolicy
+    GetApplicationPolicy (GetApplicationPolicy'),
+    newGetApplicationPolicy,
+    GetApplicationPolicyResponse (GetApplicationPolicyResponse'),
+    newGetApplicationPolicyResponse,
+
+    -- ** GetCloudFormationTemplate
+    GetCloudFormationTemplate (GetCloudFormationTemplate'),
+    newGetCloudFormationTemplate,
+    GetCloudFormationTemplateResponse (GetCloudFormationTemplateResponse'),
+    newGetCloudFormationTemplateResponse,
+
+    -- ** ListApplicationDependencies (Paginated)
+    ListApplicationDependencies (ListApplicationDependencies'),
+    newListApplicationDependencies,
+    ListApplicationDependenciesResponse (ListApplicationDependenciesResponse'),
+    newListApplicationDependenciesResponse,
+
+    -- ** ListApplicationVersions (Paginated)
+    ListApplicationVersions (ListApplicationVersions'),
+    newListApplicationVersions,
+    ListApplicationVersionsResponse (ListApplicationVersionsResponse'),
+    newListApplicationVersionsResponse,
+
+    -- ** ListApplications (Paginated)
+    ListApplications (ListApplications'),
+    newListApplications,
+    ListApplicationsResponse (ListApplicationsResponse'),
+    newListApplicationsResponse,
+
+    -- ** PutApplicationPolicy
+    PutApplicationPolicy (PutApplicationPolicy'),
+    newPutApplicationPolicy,
+    PutApplicationPolicyResponse (PutApplicationPolicyResponse'),
+    newPutApplicationPolicyResponse,
+
+    -- ** UnshareApplication
+    UnshareApplication (UnshareApplication'),
+    newUnshareApplication,
+    UnshareApplicationResponse (UnshareApplicationResponse'),
+    newUnshareApplicationResponse,
+
+    -- ** UpdateApplication
+    UpdateApplication (UpdateApplication'),
+    newUpdateApplication,
+    UpdateApplicationResponse (UpdateApplicationResponse'),
+    newUpdateApplicationResponse,
+
+    -- * Types
+
+    -- ** Capability
+    Capability (..),
+
+    -- ** Status
+    Status (..),
+
+    -- ** ApplicationDependencySummary
+    ApplicationDependencySummary (ApplicationDependencySummary'),
+    newApplicationDependencySummary,
+
+    -- ** ApplicationPolicyStatement
+    ApplicationPolicyStatement (ApplicationPolicyStatement'),
+    newApplicationPolicyStatement,
+
+    -- ** ApplicationSummary
+    ApplicationSummary (ApplicationSummary'),
+    newApplicationSummary,
+
+    -- ** ParameterDefinition
+    ParameterDefinition (ParameterDefinition'),
+    newParameterDefinition,
+
+    -- ** ParameterValue
+    ParameterValue (ParameterValue'),
+    newParameterValue,
+
+    -- ** RollbackConfiguration
+    RollbackConfiguration (RollbackConfiguration'),
+    newRollbackConfiguration,
+
+    -- ** RollbackTrigger
+    RollbackTrigger (RollbackTrigger'),
+    newRollbackTrigger,
+
+    -- ** Tag
+    Tag (Tag'),
+    newTag,
+
+    -- ** Version
+    Version (Version'),
+    newVersion,
+
+    -- ** VersionSummary
+    VersionSummary (VersionSummary'),
+    newVersionSummary,
+  )
+where
+
+import Amazonka.ServerlessApplicationRepository.CreateApplication
+import Amazonka.ServerlessApplicationRepository.CreateApplicationVersion
+import Amazonka.ServerlessApplicationRepository.CreateCloudFormationChangeSet
+import Amazonka.ServerlessApplicationRepository.CreateCloudFormationTemplate
+import Amazonka.ServerlessApplicationRepository.DeleteApplication
+import Amazonka.ServerlessApplicationRepository.GetApplication
+import Amazonka.ServerlessApplicationRepository.GetApplicationPolicy
+import Amazonka.ServerlessApplicationRepository.GetCloudFormationTemplate
+import Amazonka.ServerlessApplicationRepository.Lens
+import Amazonka.ServerlessApplicationRepository.ListApplicationDependencies
+import Amazonka.ServerlessApplicationRepository.ListApplicationVersions
+import Amazonka.ServerlessApplicationRepository.ListApplications
+import Amazonka.ServerlessApplicationRepository.PutApplicationPolicy
+import Amazonka.ServerlessApplicationRepository.Types
+import Amazonka.ServerlessApplicationRepository.UnshareApplication
+import Amazonka.ServerlessApplicationRepository.UpdateApplication
+import Amazonka.ServerlessApplicationRepository.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 'ServerlessApplicationRepository'.
+
+-- $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/ServerlessApplicationRepository/CreateApplication.hs b/gen/Amazonka/ServerlessApplicationRepository/CreateApplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/CreateApplication.hs
@@ -0,0 +1,742 @@
+{-# 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.ServerlessApplicationRepository.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 an application, optionally including an AWS SAM file to create
+-- the first application version in the same call.
+module Amazonka.ServerlessApplicationRepository.CreateApplication
+  ( -- * Creating a Request
+    CreateApplication (..),
+    newCreateApplication,
+
+    -- * Request Lenses
+    createApplication_homePageUrl,
+    createApplication_labels,
+    createApplication_licenseBody,
+    createApplication_licenseUrl,
+    createApplication_readmeBody,
+    createApplication_readmeUrl,
+    createApplication_semanticVersion,
+    createApplication_sourceCodeArchiveUrl,
+    createApplication_sourceCodeUrl,
+    createApplication_spdxLicenseId,
+    createApplication_templateBody,
+    createApplication_templateUrl,
+    createApplication_description,
+    createApplication_name,
+    createApplication_author,
+
+    -- * Destructuring the Response
+    CreateApplicationResponse (..),
+    newCreateApplicationResponse,
+
+    -- * Response Lenses
+    createApplicationResponse_applicationId,
+    createApplicationResponse_author,
+    createApplicationResponse_creationTime,
+    createApplicationResponse_description,
+    createApplicationResponse_homePageUrl,
+    createApplicationResponse_isVerifiedAuthor,
+    createApplicationResponse_labels,
+    createApplicationResponse_licenseUrl,
+    createApplicationResponse_name,
+    createApplicationResponse_readmeUrl,
+    createApplicationResponse_spdxLicenseId,
+    createApplicationResponse_verifiedAuthorUrl,
+    createApplicationResponse_version,
+    createApplicationResponse_httpStatus,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newCreateApplication' smart constructor.
+data CreateApplication = CreateApplication'
+  { -- | A URL with more information about the application, for example the
+    -- location of your GitHub repository for the application.
+    homePageUrl :: Prelude.Maybe Prelude.Text,
+    -- | Labels to improve discovery of apps in search results.
+    --
+    -- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+    --
+    -- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+    labels :: Prelude.Maybe [Prelude.Text],
+    -- | A local text file that contains the license of the app that matches the
+    -- spdxLicenseID value of your application. The file has the format
+    -- file:\/\/\<path>\/\<filename>.
+    --
+    -- Maximum size 5 MB
+    --
+    -- You can specify only one of licenseBody and licenseUrl; otherwise, an
+    -- error results.
+    licenseBody :: Prelude.Maybe Prelude.Text,
+    -- | A link to the S3 object that contains the license of the app that
+    -- matches the spdxLicenseID value of your application.
+    --
+    -- Maximum size 5 MB
+    --
+    -- You can specify only one of licenseBody and licenseUrl; otherwise, an
+    -- error results.
+    licenseUrl :: Prelude.Maybe Prelude.Text,
+    -- | A local text readme file in Markdown language that contains a more
+    -- detailed description of the application and how it works. The file has
+    -- the format file:\/\/\<path>\/\<filename>.
+    --
+    -- Maximum size 5 MB
+    --
+    -- You can specify only one of readmeBody and readmeUrl; otherwise, an
+    -- error results.
+    readmeBody :: Prelude.Maybe Prelude.Text,
+    -- | A link to the S3 object in Markdown language that contains a more
+    -- detailed description of the application and how it works.
+    --
+    -- Maximum size 5 MB
+    --
+    -- You can specify only one of readmeBody and readmeUrl; otherwise, an
+    -- error results.
+    readmeUrl :: Prelude.Maybe Prelude.Text,
+    -- | The semantic version of the application:
+    --
+    -- <https://semver.org/>
+    semanticVersion :: Prelude.Maybe Prelude.Text,
+    -- | A link to the S3 object that contains the ZIP archive of the source code
+    -- for this version of your application.
+    --
+    -- Maximum size 50 MB
+    sourceCodeArchiveUrl :: Prelude.Maybe Prelude.Text,
+    -- | A link to a public repository for the source code of your application,
+    -- for example the URL of a specific GitHub commit.
+    sourceCodeUrl :: Prelude.Maybe Prelude.Text,
+    -- | A valid identifier from <https://spdx.org/licenses/>.
+    spdxLicenseId :: Prelude.Maybe Prelude.Text,
+    -- | The local raw packaged AWS SAM template file of your application. The
+    -- file has the format file:\/\/\<path>\/\<filename>.
+    --
+    -- You can specify only one of templateBody and templateUrl; otherwise an
+    -- error results.
+    templateBody :: Prelude.Maybe Prelude.Text,
+    -- | A link to the S3 object containing the packaged AWS SAM template of your
+    -- application.
+    --
+    -- You can specify only one of templateBody and templateUrl; otherwise an
+    -- error results.
+    templateUrl :: Prelude.Maybe Prelude.Text,
+    -- | The description of the application.
+    --
+    -- Minimum length=1. Maximum length=256
+    description :: Prelude.Text,
+    -- | The name of the application that you want to publish.
+    --
+    -- Minimum length=1. Maximum length=140
+    --
+    -- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+    name :: Prelude.Text,
+    -- | The name of the author publishing the app.
+    --
+    -- Minimum length=1. Maximum length=127.
+    --
+    -- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+    author :: 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:
+--
+-- 'homePageUrl', 'createApplication_homePageUrl' - A URL with more information about the application, for example the
+-- location of your GitHub repository for the application.
+--
+-- 'labels', 'createApplication_labels' - Labels to improve discovery of apps in search results.
+--
+-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+--
+-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+--
+-- 'licenseBody', 'createApplication_licenseBody' - A local text file that contains the license of the app that matches the
+-- spdxLicenseID value of your application. The file has the format
+-- file:\/\/\<path>\/\<filename>.
+--
+-- Maximum size 5 MB
+--
+-- You can specify only one of licenseBody and licenseUrl; otherwise, an
+-- error results.
+--
+-- 'licenseUrl', 'createApplication_licenseUrl' - A link to the S3 object that contains the license of the app that
+-- matches the spdxLicenseID value of your application.
+--
+-- Maximum size 5 MB
+--
+-- You can specify only one of licenseBody and licenseUrl; otherwise, an
+-- error results.
+--
+-- 'readmeBody', 'createApplication_readmeBody' - A local text readme file in Markdown language that contains a more
+-- detailed description of the application and how it works. The file has
+-- the format file:\/\/\<path>\/\<filename>.
+--
+-- Maximum size 5 MB
+--
+-- You can specify only one of readmeBody and readmeUrl; otherwise, an
+-- error results.
+--
+-- 'readmeUrl', 'createApplication_readmeUrl' - A link to the S3 object in Markdown language that contains a more
+-- detailed description of the application and how it works.
+--
+-- Maximum size 5 MB
+--
+-- You can specify only one of readmeBody and readmeUrl; otherwise, an
+-- error results.
+--
+-- 'semanticVersion', 'createApplication_semanticVersion' - The semantic version of the application:
+--
+-- <https://semver.org/>
+--
+-- 'sourceCodeArchiveUrl', 'createApplication_sourceCodeArchiveUrl' - A link to the S3 object that contains the ZIP archive of the source code
+-- for this version of your application.
+--
+-- Maximum size 50 MB
+--
+-- 'sourceCodeUrl', 'createApplication_sourceCodeUrl' - A link to a public repository for the source code of your application,
+-- for example the URL of a specific GitHub commit.
+--
+-- 'spdxLicenseId', 'createApplication_spdxLicenseId' - A valid identifier from <https://spdx.org/licenses/>.
+--
+-- 'templateBody', 'createApplication_templateBody' - The local raw packaged AWS SAM template file of your application. The
+-- file has the format file:\/\/\<path>\/\<filename>.
+--
+-- You can specify only one of templateBody and templateUrl; otherwise an
+-- error results.
+--
+-- 'templateUrl', 'createApplication_templateUrl' - A link to the S3 object containing the packaged AWS SAM template of your
+-- application.
+--
+-- You can specify only one of templateBody and templateUrl; otherwise an
+-- error results.
+--
+-- 'description', 'createApplication_description' - The description of the application.
+--
+-- Minimum length=1. Maximum length=256
+--
+-- 'name', 'createApplication_name' - The name of the application that you want to publish.
+--
+-- Minimum length=1. Maximum length=140
+--
+-- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+--
+-- 'author', 'createApplication_author' - The name of the author publishing the app.
+--
+-- Minimum length=1. Maximum length=127.
+--
+-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+newCreateApplication ::
+  -- | 'description'
+  Prelude.Text ->
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'author'
+  Prelude.Text ->
+  CreateApplication
+newCreateApplication pDescription_ pName_ pAuthor_ =
+  CreateApplication'
+    { homePageUrl = Prelude.Nothing,
+      labels = Prelude.Nothing,
+      licenseBody = Prelude.Nothing,
+      licenseUrl = Prelude.Nothing,
+      readmeBody = Prelude.Nothing,
+      readmeUrl = Prelude.Nothing,
+      semanticVersion = Prelude.Nothing,
+      sourceCodeArchiveUrl = Prelude.Nothing,
+      sourceCodeUrl = Prelude.Nothing,
+      spdxLicenseId = Prelude.Nothing,
+      templateBody = Prelude.Nothing,
+      templateUrl = Prelude.Nothing,
+      description = pDescription_,
+      name = pName_,
+      author = pAuthor_
+    }
+
+-- | A URL with more information about the application, for example the
+-- location of your GitHub repository for the application.
+createApplication_homePageUrl :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)
+createApplication_homePageUrl = Lens.lens (\CreateApplication' {homePageUrl} -> homePageUrl) (\s@CreateApplication' {} a -> s {homePageUrl = a} :: CreateApplication)
+
+-- | Labels to improve discovery of apps in search results.
+--
+-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+--
+-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+createApplication_labels :: Lens.Lens' CreateApplication (Prelude.Maybe [Prelude.Text])
+createApplication_labels = Lens.lens (\CreateApplication' {labels} -> labels) (\s@CreateApplication' {} a -> s {labels = a} :: CreateApplication) Prelude.. Lens.mapping Lens.coerced
+
+-- | A local text file that contains the license of the app that matches the
+-- spdxLicenseID value of your application. The file has the format
+-- file:\/\/\<path>\/\<filename>.
+--
+-- Maximum size 5 MB
+--
+-- You can specify only one of licenseBody and licenseUrl; otherwise, an
+-- error results.
+createApplication_licenseBody :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)
+createApplication_licenseBody = Lens.lens (\CreateApplication' {licenseBody} -> licenseBody) (\s@CreateApplication' {} a -> s {licenseBody = a} :: CreateApplication)
+
+-- | A link to the S3 object that contains the license of the app that
+-- matches the spdxLicenseID value of your application.
+--
+-- Maximum size 5 MB
+--
+-- You can specify only one of licenseBody and licenseUrl; otherwise, an
+-- error results.
+createApplication_licenseUrl :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)
+createApplication_licenseUrl = Lens.lens (\CreateApplication' {licenseUrl} -> licenseUrl) (\s@CreateApplication' {} a -> s {licenseUrl = a} :: CreateApplication)
+
+-- | A local text readme file in Markdown language that contains a more
+-- detailed description of the application and how it works. The file has
+-- the format file:\/\/\<path>\/\<filename>.
+--
+-- Maximum size 5 MB
+--
+-- You can specify only one of readmeBody and readmeUrl; otherwise, an
+-- error results.
+createApplication_readmeBody :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)
+createApplication_readmeBody = Lens.lens (\CreateApplication' {readmeBody} -> readmeBody) (\s@CreateApplication' {} a -> s {readmeBody = a} :: CreateApplication)
+
+-- | A link to the S3 object in Markdown language that contains a more
+-- detailed description of the application and how it works.
+--
+-- Maximum size 5 MB
+--
+-- You can specify only one of readmeBody and readmeUrl; otherwise, an
+-- error results.
+createApplication_readmeUrl :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)
+createApplication_readmeUrl = Lens.lens (\CreateApplication' {readmeUrl} -> readmeUrl) (\s@CreateApplication' {} a -> s {readmeUrl = a} :: CreateApplication)
+
+-- | The semantic version of the application:
+--
+-- <https://semver.org/>
+createApplication_semanticVersion :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)
+createApplication_semanticVersion = Lens.lens (\CreateApplication' {semanticVersion} -> semanticVersion) (\s@CreateApplication' {} a -> s {semanticVersion = a} :: CreateApplication)
+
+-- | A link to the S3 object that contains the ZIP archive of the source code
+-- for this version of your application.
+--
+-- Maximum size 50 MB
+createApplication_sourceCodeArchiveUrl :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)
+createApplication_sourceCodeArchiveUrl = Lens.lens (\CreateApplication' {sourceCodeArchiveUrl} -> sourceCodeArchiveUrl) (\s@CreateApplication' {} a -> s {sourceCodeArchiveUrl = a} :: CreateApplication)
+
+-- | A link to a public repository for the source code of your application,
+-- for example the URL of a specific GitHub commit.
+createApplication_sourceCodeUrl :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)
+createApplication_sourceCodeUrl = Lens.lens (\CreateApplication' {sourceCodeUrl} -> sourceCodeUrl) (\s@CreateApplication' {} a -> s {sourceCodeUrl = a} :: CreateApplication)
+
+-- | A valid identifier from <https://spdx.org/licenses/>.
+createApplication_spdxLicenseId :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)
+createApplication_spdxLicenseId = Lens.lens (\CreateApplication' {spdxLicenseId} -> spdxLicenseId) (\s@CreateApplication' {} a -> s {spdxLicenseId = a} :: CreateApplication)
+
+-- | The local raw packaged AWS SAM template file of your application. The
+-- file has the format file:\/\/\<path>\/\<filename>.
+--
+-- You can specify only one of templateBody and templateUrl; otherwise an
+-- error results.
+createApplication_templateBody :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)
+createApplication_templateBody = Lens.lens (\CreateApplication' {templateBody} -> templateBody) (\s@CreateApplication' {} a -> s {templateBody = a} :: CreateApplication)
+
+-- | A link to the S3 object containing the packaged AWS SAM template of your
+-- application.
+--
+-- You can specify only one of templateBody and templateUrl; otherwise an
+-- error results.
+createApplication_templateUrl :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)
+createApplication_templateUrl = Lens.lens (\CreateApplication' {templateUrl} -> templateUrl) (\s@CreateApplication' {} a -> s {templateUrl = a} :: CreateApplication)
+
+-- | The description of the application.
+--
+-- Minimum length=1. Maximum length=256
+createApplication_description :: Lens.Lens' CreateApplication Prelude.Text
+createApplication_description = Lens.lens (\CreateApplication' {description} -> description) (\s@CreateApplication' {} a -> s {description = a} :: CreateApplication)
+
+-- | The name of the application that you want to publish.
+--
+-- Minimum length=1. Maximum length=140
+--
+-- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+createApplication_name :: Lens.Lens' CreateApplication Prelude.Text
+createApplication_name = Lens.lens (\CreateApplication' {name} -> name) (\s@CreateApplication' {} a -> s {name = a} :: CreateApplication)
+
+-- | The name of the author publishing the app.
+--
+-- Minimum length=1. Maximum length=127.
+--
+-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+createApplication_author :: Lens.Lens' CreateApplication Prelude.Text
+createApplication_author = Lens.lens (\CreateApplication' {author} -> author) (\s@CreateApplication' {} a -> s {author = 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.<$> (x Data..?> "applicationId")
+            Prelude.<*> (x Data..?> "author")
+            Prelude.<*> (x Data..?> "creationTime")
+            Prelude.<*> (x Data..?> "description")
+            Prelude.<*> (x Data..?> "homePageUrl")
+            Prelude.<*> (x Data..?> "isVerifiedAuthor")
+            Prelude.<*> (x Data..?> "labels" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "licenseUrl")
+            Prelude.<*> (x Data..?> "name")
+            Prelude.<*> (x Data..?> "readmeUrl")
+            Prelude.<*> (x Data..?> "spdxLicenseId")
+            Prelude.<*> (x Data..?> "verifiedAuthorUrl")
+            Prelude.<*> (x Data..?> "version")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateApplication where
+  hashWithSalt _salt CreateApplication' {..} =
+    _salt
+      `Prelude.hashWithSalt` homePageUrl
+      `Prelude.hashWithSalt` labels
+      `Prelude.hashWithSalt` licenseBody
+      `Prelude.hashWithSalt` licenseUrl
+      `Prelude.hashWithSalt` readmeBody
+      `Prelude.hashWithSalt` readmeUrl
+      `Prelude.hashWithSalt` semanticVersion
+      `Prelude.hashWithSalt` sourceCodeArchiveUrl
+      `Prelude.hashWithSalt` sourceCodeUrl
+      `Prelude.hashWithSalt` spdxLicenseId
+      `Prelude.hashWithSalt` templateBody
+      `Prelude.hashWithSalt` templateUrl
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` author
+
+instance Prelude.NFData CreateApplication where
+  rnf CreateApplication' {..} =
+    Prelude.rnf homePageUrl
+      `Prelude.seq` Prelude.rnf labels
+      `Prelude.seq` Prelude.rnf licenseBody
+      `Prelude.seq` Prelude.rnf licenseUrl
+      `Prelude.seq` Prelude.rnf readmeBody
+      `Prelude.seq` Prelude.rnf readmeUrl
+      `Prelude.seq` Prelude.rnf semanticVersion
+      `Prelude.seq` Prelude.rnf sourceCodeArchiveUrl
+      `Prelude.seq` Prelude.rnf sourceCodeUrl
+      `Prelude.seq` Prelude.rnf spdxLicenseId
+      `Prelude.seq` Prelude.rnf templateBody
+      `Prelude.seq` Prelude.rnf templateUrl
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf author
+
+instance Data.ToHeaders CreateApplication where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateApplication where
+  toJSON CreateApplication' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("homePageUrl" Data..=) Prelude.<$> homePageUrl,
+            ("labels" Data..=) Prelude.<$> labels,
+            ("licenseBody" Data..=) Prelude.<$> licenseBody,
+            ("licenseUrl" Data..=) Prelude.<$> licenseUrl,
+            ("readmeBody" Data..=) Prelude.<$> readmeBody,
+            ("readmeUrl" Data..=) Prelude.<$> readmeUrl,
+            ("semanticVersion" Data..=)
+              Prelude.<$> semanticVersion,
+            ("sourceCodeArchiveUrl" Data..=)
+              Prelude.<$> sourceCodeArchiveUrl,
+            ("sourceCodeUrl" Data..=) Prelude.<$> sourceCodeUrl,
+            ("spdxLicenseId" Data..=) Prelude.<$> spdxLicenseId,
+            ("templateBody" Data..=) Prelude.<$> templateBody,
+            ("templateUrl" Data..=) Prelude.<$> templateUrl,
+            Prelude.Just ("description" Data..= description),
+            Prelude.Just ("name" Data..= name),
+            Prelude.Just ("author" Data..= author)
+          ]
+      )
+
+instance Data.ToPath CreateApplication where
+  toPath = Prelude.const "/applications"
+
+instance Data.ToQuery CreateApplication where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateApplicationResponse' smart constructor.
+data CreateApplicationResponse = CreateApplicationResponse'
+  { -- | The application Amazon Resource Name (ARN).
+    applicationId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the author publishing the app.
+    --
+    -- Minimum length=1. Maximum length=127.
+    --
+    -- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+    author :: Prelude.Maybe Prelude.Text,
+    -- | The date and time this resource was created.
+    creationTime :: Prelude.Maybe Prelude.Text,
+    -- | The description of the application.
+    --
+    -- Minimum length=1. Maximum length=256
+    description :: Prelude.Maybe Prelude.Text,
+    -- | A URL with more information about the application, for example the
+    -- location of your GitHub repository for the application.
+    homePageUrl :: Prelude.Maybe Prelude.Text,
+    -- | Whether the author of this application has been verified. This means
+    -- means that AWS has made a good faith review, as a reasonable and prudent
+    -- service provider, of the information provided by the requester and has
+    -- confirmed that the requester\'s identity is as claimed.
+    isVerifiedAuthor :: Prelude.Maybe Prelude.Bool,
+    -- | Labels to improve discovery of apps in search results.
+    --
+    -- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+    --
+    -- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+    labels :: Prelude.Maybe [Prelude.Text],
+    -- | A link to a license file of the app that matches the spdxLicenseID value
+    -- of your application.
+    --
+    -- Maximum size 5 MB
+    licenseUrl :: Prelude.Maybe Prelude.Text,
+    -- | The name of the application.
+    --
+    -- Minimum length=1. Maximum length=140
+    --
+    -- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+    name :: Prelude.Maybe Prelude.Text,
+    -- | A link to the readme file in Markdown language that contains a more
+    -- detailed description of the application and how it works.
+    --
+    -- Maximum size 5 MB
+    readmeUrl :: Prelude.Maybe Prelude.Text,
+    -- | A valid identifier from https:\/\/spdx.org\/licenses\/.
+    spdxLicenseId :: Prelude.Maybe Prelude.Text,
+    -- | The URL to the public profile of a verified author. This URL is
+    -- submitted by the author.
+    verifiedAuthorUrl :: Prelude.Maybe Prelude.Text,
+    -- | Version information about the application.
+    version :: Prelude.Maybe Version,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  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:
+--
+-- 'applicationId', 'createApplicationResponse_applicationId' - The application Amazon Resource Name (ARN).
+--
+-- 'author', 'createApplicationResponse_author' - The name of the author publishing the app.
+--
+-- Minimum length=1. Maximum length=127.
+--
+-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+--
+-- 'creationTime', 'createApplicationResponse_creationTime' - The date and time this resource was created.
+--
+-- 'description', 'createApplicationResponse_description' - The description of the application.
+--
+-- Minimum length=1. Maximum length=256
+--
+-- 'homePageUrl', 'createApplicationResponse_homePageUrl' - A URL with more information about the application, for example the
+-- location of your GitHub repository for the application.
+--
+-- 'isVerifiedAuthor', 'createApplicationResponse_isVerifiedAuthor' - Whether the author of this application has been verified. This means
+-- means that AWS has made a good faith review, as a reasonable and prudent
+-- service provider, of the information provided by the requester and has
+-- confirmed that the requester\'s identity is as claimed.
+--
+-- 'labels', 'createApplicationResponse_labels' - Labels to improve discovery of apps in search results.
+--
+-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+--
+-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+--
+-- 'licenseUrl', 'createApplicationResponse_licenseUrl' - A link to a license file of the app that matches the spdxLicenseID value
+-- of your application.
+--
+-- Maximum size 5 MB
+--
+-- 'name', 'createApplicationResponse_name' - The name of the application.
+--
+-- Minimum length=1. Maximum length=140
+--
+-- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+--
+-- 'readmeUrl', 'createApplicationResponse_readmeUrl' - A link to the readme file in Markdown language that contains a more
+-- detailed description of the application and how it works.
+--
+-- Maximum size 5 MB
+--
+-- 'spdxLicenseId', 'createApplicationResponse_spdxLicenseId' - A valid identifier from https:\/\/spdx.org\/licenses\/.
+--
+-- 'verifiedAuthorUrl', 'createApplicationResponse_verifiedAuthorUrl' - The URL to the public profile of a verified author. This URL is
+-- submitted by the author.
+--
+-- 'version', 'createApplicationResponse_version' - Version information about the application.
+--
+-- 'httpStatus', 'createApplicationResponse_httpStatus' - The response's http status code.
+newCreateApplicationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateApplicationResponse
+newCreateApplicationResponse pHttpStatus_ =
+  CreateApplicationResponse'
+    { applicationId =
+        Prelude.Nothing,
+      author = Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      description = Prelude.Nothing,
+      homePageUrl = Prelude.Nothing,
+      isVerifiedAuthor = Prelude.Nothing,
+      labels = Prelude.Nothing,
+      licenseUrl = Prelude.Nothing,
+      name = Prelude.Nothing,
+      readmeUrl = Prelude.Nothing,
+      spdxLicenseId = Prelude.Nothing,
+      verifiedAuthorUrl = Prelude.Nothing,
+      version = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The application Amazon Resource Name (ARN).
+createApplicationResponse_applicationId :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Prelude.Text)
+createApplicationResponse_applicationId = Lens.lens (\CreateApplicationResponse' {applicationId} -> applicationId) (\s@CreateApplicationResponse' {} a -> s {applicationId = a} :: CreateApplicationResponse)
+
+-- | The name of the author publishing the app.
+--
+-- Minimum length=1. Maximum length=127.
+--
+-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+createApplicationResponse_author :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Prelude.Text)
+createApplicationResponse_author = Lens.lens (\CreateApplicationResponse' {author} -> author) (\s@CreateApplicationResponse' {} a -> s {author = a} :: CreateApplicationResponse)
+
+-- | The date and time this resource was created.
+createApplicationResponse_creationTime :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Prelude.Text)
+createApplicationResponse_creationTime = Lens.lens (\CreateApplicationResponse' {creationTime} -> creationTime) (\s@CreateApplicationResponse' {} a -> s {creationTime = a} :: CreateApplicationResponse)
+
+-- | The description of the application.
+--
+-- Minimum length=1. Maximum length=256
+createApplicationResponse_description :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Prelude.Text)
+createApplicationResponse_description = Lens.lens (\CreateApplicationResponse' {description} -> description) (\s@CreateApplicationResponse' {} a -> s {description = a} :: CreateApplicationResponse)
+
+-- | A URL with more information about the application, for example the
+-- location of your GitHub repository for the application.
+createApplicationResponse_homePageUrl :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Prelude.Text)
+createApplicationResponse_homePageUrl = Lens.lens (\CreateApplicationResponse' {homePageUrl} -> homePageUrl) (\s@CreateApplicationResponse' {} a -> s {homePageUrl = a} :: CreateApplicationResponse)
+
+-- | Whether the author of this application has been verified. This means
+-- means that AWS has made a good faith review, as a reasonable and prudent
+-- service provider, of the information provided by the requester and has
+-- confirmed that the requester\'s identity is as claimed.
+createApplicationResponse_isVerifiedAuthor :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Prelude.Bool)
+createApplicationResponse_isVerifiedAuthor = Lens.lens (\CreateApplicationResponse' {isVerifiedAuthor} -> isVerifiedAuthor) (\s@CreateApplicationResponse' {} a -> s {isVerifiedAuthor = a} :: CreateApplicationResponse)
+
+-- | Labels to improve discovery of apps in search results.
+--
+-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+--
+-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+createApplicationResponse_labels :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe [Prelude.Text])
+createApplicationResponse_labels = Lens.lens (\CreateApplicationResponse' {labels} -> labels) (\s@CreateApplicationResponse' {} a -> s {labels = a} :: CreateApplicationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | A link to a license file of the app that matches the spdxLicenseID value
+-- of your application.
+--
+-- Maximum size 5 MB
+createApplicationResponse_licenseUrl :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Prelude.Text)
+createApplicationResponse_licenseUrl = Lens.lens (\CreateApplicationResponse' {licenseUrl} -> licenseUrl) (\s@CreateApplicationResponse' {} a -> s {licenseUrl = a} :: CreateApplicationResponse)
+
+-- | The name of the application.
+--
+-- Minimum length=1. Maximum length=140
+--
+-- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+createApplicationResponse_name :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Prelude.Text)
+createApplicationResponse_name = Lens.lens (\CreateApplicationResponse' {name} -> name) (\s@CreateApplicationResponse' {} a -> s {name = a} :: CreateApplicationResponse)
+
+-- | A link to the readme file in Markdown language that contains a more
+-- detailed description of the application and how it works.
+--
+-- Maximum size 5 MB
+createApplicationResponse_readmeUrl :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Prelude.Text)
+createApplicationResponse_readmeUrl = Lens.lens (\CreateApplicationResponse' {readmeUrl} -> readmeUrl) (\s@CreateApplicationResponse' {} a -> s {readmeUrl = a} :: CreateApplicationResponse)
+
+-- | A valid identifier from https:\/\/spdx.org\/licenses\/.
+createApplicationResponse_spdxLicenseId :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Prelude.Text)
+createApplicationResponse_spdxLicenseId = Lens.lens (\CreateApplicationResponse' {spdxLicenseId} -> spdxLicenseId) (\s@CreateApplicationResponse' {} a -> s {spdxLicenseId = a} :: CreateApplicationResponse)
+
+-- | The URL to the public profile of a verified author. This URL is
+-- submitted by the author.
+createApplicationResponse_verifiedAuthorUrl :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Prelude.Text)
+createApplicationResponse_verifiedAuthorUrl = Lens.lens (\CreateApplicationResponse' {verifiedAuthorUrl} -> verifiedAuthorUrl) (\s@CreateApplicationResponse' {} a -> s {verifiedAuthorUrl = a} :: CreateApplicationResponse)
+
+-- | Version information about the application.
+createApplicationResponse_version :: Lens.Lens' CreateApplicationResponse (Prelude.Maybe Version)
+createApplicationResponse_version = Lens.lens (\CreateApplicationResponse' {version} -> version) (\s@CreateApplicationResponse' {} a -> s {version = a} :: CreateApplicationResponse)
+
+-- | 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)
+
+instance Prelude.NFData CreateApplicationResponse where
+  rnf CreateApplicationResponse' {..} =
+    Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf author
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf homePageUrl
+      `Prelude.seq` Prelude.rnf isVerifiedAuthor
+      `Prelude.seq` Prelude.rnf labels
+      `Prelude.seq` Prelude.rnf licenseUrl
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf readmeUrl
+      `Prelude.seq` Prelude.rnf spdxLicenseId
+      `Prelude.seq` Prelude.rnf verifiedAuthorUrl
+      `Prelude.seq` Prelude.rnf version
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/ServerlessApplicationRepository/CreateApplicationVersion.hs b/gen/Amazonka/ServerlessApplicationRepository/CreateApplicationVersion.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/CreateApplicationVersion.hs
@@ -0,0 +1,493 @@
+{-# 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.ServerlessApplicationRepository.CreateApplicationVersion
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an application version.
+module Amazonka.ServerlessApplicationRepository.CreateApplicationVersion
+  ( -- * Creating a Request
+    CreateApplicationVersion (..),
+    newCreateApplicationVersion,
+
+    -- * Request Lenses
+    createApplicationVersion_sourceCodeArchiveUrl,
+    createApplicationVersion_sourceCodeUrl,
+    createApplicationVersion_templateBody,
+    createApplicationVersion_templateUrl,
+    createApplicationVersion_applicationId,
+    createApplicationVersion_semanticVersion,
+
+    -- * Destructuring the Response
+    CreateApplicationVersionResponse (..),
+    newCreateApplicationVersionResponse,
+
+    -- * Response Lenses
+    createApplicationVersionResponse_applicationId,
+    createApplicationVersionResponse_creationTime,
+    createApplicationVersionResponse_parameterDefinitions,
+    createApplicationVersionResponse_requiredCapabilities,
+    createApplicationVersionResponse_resourcesSupported,
+    createApplicationVersionResponse_semanticVersion,
+    createApplicationVersionResponse_sourceCodeArchiveUrl,
+    createApplicationVersionResponse_sourceCodeUrl,
+    createApplicationVersionResponse_templateUrl,
+    createApplicationVersionResponse_httpStatus,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newCreateApplicationVersion' smart constructor.
+data CreateApplicationVersion = CreateApplicationVersion'
+  { -- | A link to the S3 object that contains the ZIP archive of the source code
+    -- for this version of your application.
+    --
+    -- Maximum size 50 MB
+    sourceCodeArchiveUrl :: Prelude.Maybe Prelude.Text,
+    -- | A link to a public repository for the source code of your application,
+    -- for example the URL of a specific GitHub commit.
+    sourceCodeUrl :: Prelude.Maybe Prelude.Text,
+    -- | The raw packaged AWS SAM template of your application.
+    templateBody :: Prelude.Maybe Prelude.Text,
+    -- | A link to the packaged AWS SAM template of your application.
+    templateUrl :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the application.
+    applicationId :: Prelude.Text,
+    -- | The semantic version of the new version.
+    semanticVersion :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateApplicationVersion' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'sourceCodeArchiveUrl', 'createApplicationVersion_sourceCodeArchiveUrl' - A link to the S3 object that contains the ZIP archive of the source code
+-- for this version of your application.
+--
+-- Maximum size 50 MB
+--
+-- 'sourceCodeUrl', 'createApplicationVersion_sourceCodeUrl' - A link to a public repository for the source code of your application,
+-- for example the URL of a specific GitHub commit.
+--
+-- 'templateBody', 'createApplicationVersion_templateBody' - The raw packaged AWS SAM template of your application.
+--
+-- 'templateUrl', 'createApplicationVersion_templateUrl' - A link to the packaged AWS SAM template of your application.
+--
+-- 'applicationId', 'createApplicationVersion_applicationId' - The Amazon Resource Name (ARN) of the application.
+--
+-- 'semanticVersion', 'createApplicationVersion_semanticVersion' - The semantic version of the new version.
+newCreateApplicationVersion ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  -- | 'semanticVersion'
+  Prelude.Text ->
+  CreateApplicationVersion
+newCreateApplicationVersion
+  pApplicationId_
+  pSemanticVersion_ =
+    CreateApplicationVersion'
+      { sourceCodeArchiveUrl =
+          Prelude.Nothing,
+        sourceCodeUrl = Prelude.Nothing,
+        templateBody = Prelude.Nothing,
+        templateUrl = Prelude.Nothing,
+        applicationId = pApplicationId_,
+        semanticVersion = pSemanticVersion_
+      }
+
+-- | A link to the S3 object that contains the ZIP archive of the source code
+-- for this version of your application.
+--
+-- Maximum size 50 MB
+createApplicationVersion_sourceCodeArchiveUrl :: Lens.Lens' CreateApplicationVersion (Prelude.Maybe Prelude.Text)
+createApplicationVersion_sourceCodeArchiveUrl = Lens.lens (\CreateApplicationVersion' {sourceCodeArchiveUrl} -> sourceCodeArchiveUrl) (\s@CreateApplicationVersion' {} a -> s {sourceCodeArchiveUrl = a} :: CreateApplicationVersion)
+
+-- | A link to a public repository for the source code of your application,
+-- for example the URL of a specific GitHub commit.
+createApplicationVersion_sourceCodeUrl :: Lens.Lens' CreateApplicationVersion (Prelude.Maybe Prelude.Text)
+createApplicationVersion_sourceCodeUrl = Lens.lens (\CreateApplicationVersion' {sourceCodeUrl} -> sourceCodeUrl) (\s@CreateApplicationVersion' {} a -> s {sourceCodeUrl = a} :: CreateApplicationVersion)
+
+-- | The raw packaged AWS SAM template of your application.
+createApplicationVersion_templateBody :: Lens.Lens' CreateApplicationVersion (Prelude.Maybe Prelude.Text)
+createApplicationVersion_templateBody = Lens.lens (\CreateApplicationVersion' {templateBody} -> templateBody) (\s@CreateApplicationVersion' {} a -> s {templateBody = a} :: CreateApplicationVersion)
+
+-- | A link to the packaged AWS SAM template of your application.
+createApplicationVersion_templateUrl :: Lens.Lens' CreateApplicationVersion (Prelude.Maybe Prelude.Text)
+createApplicationVersion_templateUrl = Lens.lens (\CreateApplicationVersion' {templateUrl} -> templateUrl) (\s@CreateApplicationVersion' {} a -> s {templateUrl = a} :: CreateApplicationVersion)
+
+-- | The Amazon Resource Name (ARN) of the application.
+createApplicationVersion_applicationId :: Lens.Lens' CreateApplicationVersion Prelude.Text
+createApplicationVersion_applicationId = Lens.lens (\CreateApplicationVersion' {applicationId} -> applicationId) (\s@CreateApplicationVersion' {} a -> s {applicationId = a} :: CreateApplicationVersion)
+
+-- | The semantic version of the new version.
+createApplicationVersion_semanticVersion :: Lens.Lens' CreateApplicationVersion Prelude.Text
+createApplicationVersion_semanticVersion = Lens.lens (\CreateApplicationVersion' {semanticVersion} -> semanticVersion) (\s@CreateApplicationVersion' {} a -> s {semanticVersion = a} :: CreateApplicationVersion)
+
+instance Core.AWSRequest CreateApplicationVersion where
+  type
+    AWSResponse CreateApplicationVersion =
+      CreateApplicationVersionResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateApplicationVersionResponse'
+            Prelude.<$> (x Data..?> "applicationId")
+            Prelude.<*> (x Data..?> "creationTime")
+            Prelude.<*> ( x
+                            Data..?> "parameterDefinitions"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> ( x
+                            Data..?> "requiredCapabilities"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "resourcesSupported")
+            Prelude.<*> (x Data..?> "semanticVersion")
+            Prelude.<*> (x Data..?> "sourceCodeArchiveUrl")
+            Prelude.<*> (x Data..?> "sourceCodeUrl")
+            Prelude.<*> (x Data..?> "templateUrl")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateApplicationVersion where
+  hashWithSalt _salt CreateApplicationVersion' {..} =
+    _salt
+      `Prelude.hashWithSalt` sourceCodeArchiveUrl
+      `Prelude.hashWithSalt` sourceCodeUrl
+      `Prelude.hashWithSalt` templateBody
+      `Prelude.hashWithSalt` templateUrl
+      `Prelude.hashWithSalt` applicationId
+      `Prelude.hashWithSalt` semanticVersion
+
+instance Prelude.NFData CreateApplicationVersion where
+  rnf CreateApplicationVersion' {..} =
+    Prelude.rnf sourceCodeArchiveUrl
+      `Prelude.seq` Prelude.rnf sourceCodeUrl
+      `Prelude.seq` Prelude.rnf templateBody
+      `Prelude.seq` Prelude.rnf templateUrl
+      `Prelude.seq` Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf semanticVersion
+
+instance Data.ToHeaders CreateApplicationVersion where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateApplicationVersion where
+  toJSON CreateApplicationVersion' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("sourceCodeArchiveUrl" Data..=)
+              Prelude.<$> sourceCodeArchiveUrl,
+            ("sourceCodeUrl" Data..=) Prelude.<$> sourceCodeUrl,
+            ("templateBody" Data..=) Prelude.<$> templateBody,
+            ("templateUrl" Data..=) Prelude.<$> templateUrl
+          ]
+      )
+
+instance Data.ToPath CreateApplicationVersion where
+  toPath CreateApplicationVersion' {..} =
+    Prelude.mconcat
+      [ "/applications/",
+        Data.toBS applicationId,
+        "/versions/",
+        Data.toBS semanticVersion
+      ]
+
+instance Data.ToQuery CreateApplicationVersion where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateApplicationVersionResponse' smart constructor.
+data CreateApplicationVersionResponse = CreateApplicationVersionResponse'
+  { -- | The application Amazon Resource Name (ARN).
+    applicationId :: Prelude.Maybe Prelude.Text,
+    -- | The date and time this resource was created.
+    creationTime :: Prelude.Maybe Prelude.Text,
+    -- | An array of parameter types supported by the application.
+    parameterDefinitions :: Prelude.Maybe [ParameterDefinition],
+    -- | A list of values that you must specify before you can deploy certain
+    -- applications. Some applications might include resources that can affect
+    -- permissions in your AWS account, for example, by creating new AWS
+    -- Identity and Access Management (IAM) users. For those applications, you
+    -- must explicitly acknowledge their capabilities by specifying this
+    -- parameter.
+    --
+    -- The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
+    -- CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.
+    --
+    -- The following resources require you to specify CAPABILITY_IAM or
+    -- CAPABILITY_NAMED_IAM:
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html AWS::IAM::Group>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html AWS::IAM::InstanceProfile>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM::Policy>,
+    -- and
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html AWS::IAM::Role>.
+    -- If the application contains IAM resources, you can specify either
+    -- CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM
+    -- resources with custom names, you must specify CAPABILITY_NAMED_IAM.
+    --
+    -- The following resources require you to specify
+    -- CAPABILITY_RESOURCE_POLICY:
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html AWS::Lambda::Permission>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM:Policy>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html AWS::ApplicationAutoScaling::ScalingPolicy>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html AWS::S3::BucketPolicy>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html AWS::SQS::QueuePolicy>,
+    -- and
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html AWS::SNS::TopicPolicy>.
+    --
+    -- Applications that contain one or more nested applications require you to
+    -- specify CAPABILITY_AUTO_EXPAND.
+    --
+    -- If your application template contains any of the above resources, we
+    -- recommend that you review all permissions associated with the
+    -- application before deploying. If you don\'t specify this parameter for
+    -- an application that requires capabilities, the call will fail.
+    requiredCapabilities :: Prelude.Maybe [Capability],
+    -- | Whether all of the AWS resources contained in this application are
+    -- supported in the region in which it is being retrieved.
+    resourcesSupported :: Prelude.Maybe Prelude.Bool,
+    -- | The semantic version of the application:
+    --
+    -- <https://semver.org/>
+    semanticVersion :: Prelude.Maybe Prelude.Text,
+    -- | A link to the S3 object that contains the ZIP archive of the source code
+    -- for this version of your application.
+    --
+    -- Maximum size 50 MB
+    sourceCodeArchiveUrl :: Prelude.Maybe Prelude.Text,
+    -- | A link to a public repository for the source code of your application,
+    -- for example the URL of a specific GitHub commit.
+    sourceCodeUrl :: Prelude.Maybe Prelude.Text,
+    -- | A link to the packaged AWS SAM template of your application.
+    templateUrl :: 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 'CreateApplicationVersionResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationId', 'createApplicationVersionResponse_applicationId' - The application Amazon Resource Name (ARN).
+--
+-- 'creationTime', 'createApplicationVersionResponse_creationTime' - The date and time this resource was created.
+--
+-- 'parameterDefinitions', 'createApplicationVersionResponse_parameterDefinitions' - An array of parameter types supported by the application.
+--
+-- 'requiredCapabilities', 'createApplicationVersionResponse_requiredCapabilities' - A list of values that you must specify before you can deploy certain
+-- applications. Some applications might include resources that can affect
+-- permissions in your AWS account, for example, by creating new AWS
+-- Identity and Access Management (IAM) users. For those applications, you
+-- must explicitly acknowledge their capabilities by specifying this
+-- parameter.
+--
+-- The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
+-- CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.
+--
+-- The following resources require you to specify CAPABILITY_IAM or
+-- CAPABILITY_NAMED_IAM:
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html AWS::IAM::Group>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html AWS::IAM::InstanceProfile>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM::Policy>,
+-- and
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html AWS::IAM::Role>.
+-- If the application contains IAM resources, you can specify either
+-- CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM
+-- resources with custom names, you must specify CAPABILITY_NAMED_IAM.
+--
+-- The following resources require you to specify
+-- CAPABILITY_RESOURCE_POLICY:
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html AWS::Lambda::Permission>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM:Policy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html AWS::ApplicationAutoScaling::ScalingPolicy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html AWS::S3::BucketPolicy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html AWS::SQS::QueuePolicy>,
+-- and
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html AWS::SNS::TopicPolicy>.
+--
+-- Applications that contain one or more nested applications require you to
+-- specify CAPABILITY_AUTO_EXPAND.
+--
+-- If your application template contains any of the above resources, we
+-- recommend that you review all permissions associated with the
+-- application before deploying. If you don\'t specify this parameter for
+-- an application that requires capabilities, the call will fail.
+--
+-- 'resourcesSupported', 'createApplicationVersionResponse_resourcesSupported' - Whether all of the AWS resources contained in this application are
+-- supported in the region in which it is being retrieved.
+--
+-- 'semanticVersion', 'createApplicationVersionResponse_semanticVersion' - The semantic version of the application:
+--
+-- <https://semver.org/>
+--
+-- 'sourceCodeArchiveUrl', 'createApplicationVersionResponse_sourceCodeArchiveUrl' - A link to the S3 object that contains the ZIP archive of the source code
+-- for this version of your application.
+--
+-- Maximum size 50 MB
+--
+-- 'sourceCodeUrl', 'createApplicationVersionResponse_sourceCodeUrl' - A link to a public repository for the source code of your application,
+-- for example the URL of a specific GitHub commit.
+--
+-- 'templateUrl', 'createApplicationVersionResponse_templateUrl' - A link to the packaged AWS SAM template of your application.
+--
+-- 'httpStatus', 'createApplicationVersionResponse_httpStatus' - The response's http status code.
+newCreateApplicationVersionResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateApplicationVersionResponse
+newCreateApplicationVersionResponse pHttpStatus_ =
+  CreateApplicationVersionResponse'
+    { applicationId =
+        Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      parameterDefinitions = Prelude.Nothing,
+      requiredCapabilities = Prelude.Nothing,
+      resourcesSupported = Prelude.Nothing,
+      semanticVersion = Prelude.Nothing,
+      sourceCodeArchiveUrl = Prelude.Nothing,
+      sourceCodeUrl = Prelude.Nothing,
+      templateUrl = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The application Amazon Resource Name (ARN).
+createApplicationVersionResponse_applicationId :: Lens.Lens' CreateApplicationVersionResponse (Prelude.Maybe Prelude.Text)
+createApplicationVersionResponse_applicationId = Lens.lens (\CreateApplicationVersionResponse' {applicationId} -> applicationId) (\s@CreateApplicationVersionResponse' {} a -> s {applicationId = a} :: CreateApplicationVersionResponse)
+
+-- | The date and time this resource was created.
+createApplicationVersionResponse_creationTime :: Lens.Lens' CreateApplicationVersionResponse (Prelude.Maybe Prelude.Text)
+createApplicationVersionResponse_creationTime = Lens.lens (\CreateApplicationVersionResponse' {creationTime} -> creationTime) (\s@CreateApplicationVersionResponse' {} a -> s {creationTime = a} :: CreateApplicationVersionResponse)
+
+-- | An array of parameter types supported by the application.
+createApplicationVersionResponse_parameterDefinitions :: Lens.Lens' CreateApplicationVersionResponse (Prelude.Maybe [ParameterDefinition])
+createApplicationVersionResponse_parameterDefinitions = Lens.lens (\CreateApplicationVersionResponse' {parameterDefinitions} -> parameterDefinitions) (\s@CreateApplicationVersionResponse' {} a -> s {parameterDefinitions = a} :: CreateApplicationVersionResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | A list of values that you must specify before you can deploy certain
+-- applications. Some applications might include resources that can affect
+-- permissions in your AWS account, for example, by creating new AWS
+-- Identity and Access Management (IAM) users. For those applications, you
+-- must explicitly acknowledge their capabilities by specifying this
+-- parameter.
+--
+-- The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
+-- CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.
+--
+-- The following resources require you to specify CAPABILITY_IAM or
+-- CAPABILITY_NAMED_IAM:
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html AWS::IAM::Group>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html AWS::IAM::InstanceProfile>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM::Policy>,
+-- and
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html AWS::IAM::Role>.
+-- If the application contains IAM resources, you can specify either
+-- CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM
+-- resources with custom names, you must specify CAPABILITY_NAMED_IAM.
+--
+-- The following resources require you to specify
+-- CAPABILITY_RESOURCE_POLICY:
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html AWS::Lambda::Permission>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM:Policy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html AWS::ApplicationAutoScaling::ScalingPolicy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html AWS::S3::BucketPolicy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html AWS::SQS::QueuePolicy>,
+-- and
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html AWS::SNS::TopicPolicy>.
+--
+-- Applications that contain one or more nested applications require you to
+-- specify CAPABILITY_AUTO_EXPAND.
+--
+-- If your application template contains any of the above resources, we
+-- recommend that you review all permissions associated with the
+-- application before deploying. If you don\'t specify this parameter for
+-- an application that requires capabilities, the call will fail.
+createApplicationVersionResponse_requiredCapabilities :: Lens.Lens' CreateApplicationVersionResponse (Prelude.Maybe [Capability])
+createApplicationVersionResponse_requiredCapabilities = Lens.lens (\CreateApplicationVersionResponse' {requiredCapabilities} -> requiredCapabilities) (\s@CreateApplicationVersionResponse' {} a -> s {requiredCapabilities = a} :: CreateApplicationVersionResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Whether all of the AWS resources contained in this application are
+-- supported in the region in which it is being retrieved.
+createApplicationVersionResponse_resourcesSupported :: Lens.Lens' CreateApplicationVersionResponse (Prelude.Maybe Prelude.Bool)
+createApplicationVersionResponse_resourcesSupported = Lens.lens (\CreateApplicationVersionResponse' {resourcesSupported} -> resourcesSupported) (\s@CreateApplicationVersionResponse' {} a -> s {resourcesSupported = a} :: CreateApplicationVersionResponse)
+
+-- | The semantic version of the application:
+--
+-- <https://semver.org/>
+createApplicationVersionResponse_semanticVersion :: Lens.Lens' CreateApplicationVersionResponse (Prelude.Maybe Prelude.Text)
+createApplicationVersionResponse_semanticVersion = Lens.lens (\CreateApplicationVersionResponse' {semanticVersion} -> semanticVersion) (\s@CreateApplicationVersionResponse' {} a -> s {semanticVersion = a} :: CreateApplicationVersionResponse)
+
+-- | A link to the S3 object that contains the ZIP archive of the source code
+-- for this version of your application.
+--
+-- Maximum size 50 MB
+createApplicationVersionResponse_sourceCodeArchiveUrl :: Lens.Lens' CreateApplicationVersionResponse (Prelude.Maybe Prelude.Text)
+createApplicationVersionResponse_sourceCodeArchiveUrl = Lens.lens (\CreateApplicationVersionResponse' {sourceCodeArchiveUrl} -> sourceCodeArchiveUrl) (\s@CreateApplicationVersionResponse' {} a -> s {sourceCodeArchiveUrl = a} :: CreateApplicationVersionResponse)
+
+-- | A link to a public repository for the source code of your application,
+-- for example the URL of a specific GitHub commit.
+createApplicationVersionResponse_sourceCodeUrl :: Lens.Lens' CreateApplicationVersionResponse (Prelude.Maybe Prelude.Text)
+createApplicationVersionResponse_sourceCodeUrl = Lens.lens (\CreateApplicationVersionResponse' {sourceCodeUrl} -> sourceCodeUrl) (\s@CreateApplicationVersionResponse' {} a -> s {sourceCodeUrl = a} :: CreateApplicationVersionResponse)
+
+-- | A link to the packaged AWS SAM template of your application.
+createApplicationVersionResponse_templateUrl :: Lens.Lens' CreateApplicationVersionResponse (Prelude.Maybe Prelude.Text)
+createApplicationVersionResponse_templateUrl = Lens.lens (\CreateApplicationVersionResponse' {templateUrl} -> templateUrl) (\s@CreateApplicationVersionResponse' {} a -> s {templateUrl = a} :: CreateApplicationVersionResponse)
+
+-- | The response's http status code.
+createApplicationVersionResponse_httpStatus :: Lens.Lens' CreateApplicationVersionResponse Prelude.Int
+createApplicationVersionResponse_httpStatus = Lens.lens (\CreateApplicationVersionResponse' {httpStatus} -> httpStatus) (\s@CreateApplicationVersionResponse' {} a -> s {httpStatus = a} :: CreateApplicationVersionResponse)
+
+instance
+  Prelude.NFData
+    CreateApplicationVersionResponse
+  where
+  rnf CreateApplicationVersionResponse' {..} =
+    Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf parameterDefinitions
+      `Prelude.seq` Prelude.rnf requiredCapabilities
+      `Prelude.seq` Prelude.rnf resourcesSupported
+      `Prelude.seq` Prelude.rnf semanticVersion
+      `Prelude.seq` Prelude.rnf sourceCodeArchiveUrl
+      `Prelude.seq` Prelude.rnf sourceCodeUrl
+      `Prelude.seq` Prelude.rnf templateUrl
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/ServerlessApplicationRepository/CreateCloudFormationChangeSet.hs b/gen/Amazonka/ServerlessApplicationRepository/CreateCloudFormationChangeSet.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/CreateCloudFormationChangeSet.hs
@@ -0,0 +1,599 @@
+{-# 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.ServerlessApplicationRepository.CreateCloudFormationChangeSet
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an AWS CloudFormation change set for the given application.
+module Amazonka.ServerlessApplicationRepository.CreateCloudFormationChangeSet
+  ( -- * Creating a Request
+    CreateCloudFormationChangeSet (..),
+    newCreateCloudFormationChangeSet,
+
+    -- * Request Lenses
+    createCloudFormationChangeSet_capabilities,
+    createCloudFormationChangeSet_changeSetName,
+    createCloudFormationChangeSet_clientToken,
+    createCloudFormationChangeSet_description,
+    createCloudFormationChangeSet_notificationArns,
+    createCloudFormationChangeSet_parameterOverrides,
+    createCloudFormationChangeSet_resourceTypes,
+    createCloudFormationChangeSet_rollbackConfiguration,
+    createCloudFormationChangeSet_semanticVersion,
+    createCloudFormationChangeSet_tags,
+    createCloudFormationChangeSet_templateId,
+    createCloudFormationChangeSet_applicationId,
+    createCloudFormationChangeSet_stackName,
+
+    -- * Destructuring the Response
+    CreateCloudFormationChangeSetResponse (..),
+    newCreateCloudFormationChangeSetResponse,
+
+    -- * Response Lenses
+    createCloudFormationChangeSetResponse_applicationId,
+    createCloudFormationChangeSetResponse_changeSetId,
+    createCloudFormationChangeSetResponse_semanticVersion,
+    createCloudFormationChangeSetResponse_stackId,
+    createCloudFormationChangeSetResponse_httpStatus,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newCreateCloudFormationChangeSet' smart constructor.
+data CreateCloudFormationChangeSet = CreateCloudFormationChangeSet'
+  { -- | A list of values that you must specify before you can deploy certain
+    -- applications. Some applications might include resources that can affect
+    -- permissions in your AWS account, for example, by creating new AWS
+    -- Identity and Access Management (IAM) users. For those applications, you
+    -- must explicitly acknowledge their capabilities by specifying this
+    -- parameter.
+    --
+    -- The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
+    -- CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.
+    --
+    -- The following resources require you to specify CAPABILITY_IAM or
+    -- CAPABILITY_NAMED_IAM:
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html AWS::IAM::Group>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html AWS::IAM::InstanceProfile>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM::Policy>,
+    -- and
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html AWS::IAM::Role>.
+    -- If the application contains IAM resources, you can specify either
+    -- CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM
+    -- resources with custom names, you must specify CAPABILITY_NAMED_IAM.
+    --
+    -- The following resources require you to specify
+    -- CAPABILITY_RESOURCE_POLICY:
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html AWS::Lambda::Permission>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM:Policy>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html AWS::ApplicationAutoScaling::ScalingPolicy>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html AWS::S3::BucketPolicy>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html AWS::SQS::QueuePolicy>,
+    -- and
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html AWS::SNS:TopicPolicy>.
+    --
+    -- Applications that contain one or more nested applications require you to
+    -- specify CAPABILITY_AUTO_EXPAND.
+    --
+    -- If your application template contains any of the above resources, we
+    -- recommend that you review all permissions associated with the
+    -- application before deploying. If you don\'t specify this parameter for
+    -- an application that requires capabilities, the call will fail.
+    capabilities :: Prelude.Maybe [Prelude.Text],
+    -- | This property corresponds to the parameter of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+    -- API.
+    changeSetName :: Prelude.Maybe Prelude.Text,
+    -- | This property corresponds to the parameter of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+    -- API.
+    clientToken :: Prelude.Maybe Prelude.Text,
+    -- | This property corresponds to the parameter of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+    -- API.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | This property corresponds to the parameter of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+    -- API.
+    notificationArns :: Prelude.Maybe [Prelude.Text],
+    -- | A list of parameter values for the parameters of the application.
+    parameterOverrides :: Prelude.Maybe [ParameterValue],
+    -- | This property corresponds to the parameter of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+    -- API.
+    resourceTypes :: Prelude.Maybe [Prelude.Text],
+    -- | This property corresponds to the parameter of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+    -- API.
+    rollbackConfiguration :: Prelude.Maybe RollbackConfiguration,
+    -- | The semantic version of the application:
+    --
+    -- <https://semver.org/>
+    semanticVersion :: Prelude.Maybe Prelude.Text,
+    -- | This property corresponds to the parameter of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+    -- API.
+    tags :: Prelude.Maybe [Tag],
+    -- | The UUID returned by CreateCloudFormationTemplate.
+    --
+    -- Pattern:
+    -- [0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}
+    templateId :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the application.
+    applicationId :: Prelude.Text,
+    -- | This property corresponds to the parameter of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+    -- API.
+    stackName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateCloudFormationChangeSet' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'capabilities', 'createCloudFormationChangeSet_capabilities' - A list of values that you must specify before you can deploy certain
+-- applications. Some applications might include resources that can affect
+-- permissions in your AWS account, for example, by creating new AWS
+-- Identity and Access Management (IAM) users. For those applications, you
+-- must explicitly acknowledge their capabilities by specifying this
+-- parameter.
+--
+-- The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
+-- CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.
+--
+-- The following resources require you to specify CAPABILITY_IAM or
+-- CAPABILITY_NAMED_IAM:
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html AWS::IAM::Group>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html AWS::IAM::InstanceProfile>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM::Policy>,
+-- and
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html AWS::IAM::Role>.
+-- If the application contains IAM resources, you can specify either
+-- CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM
+-- resources with custom names, you must specify CAPABILITY_NAMED_IAM.
+--
+-- The following resources require you to specify
+-- CAPABILITY_RESOURCE_POLICY:
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html AWS::Lambda::Permission>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM:Policy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html AWS::ApplicationAutoScaling::ScalingPolicy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html AWS::S3::BucketPolicy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html AWS::SQS::QueuePolicy>,
+-- and
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html AWS::SNS:TopicPolicy>.
+--
+-- Applications that contain one or more nested applications require you to
+-- specify CAPABILITY_AUTO_EXPAND.
+--
+-- If your application template contains any of the above resources, we
+-- recommend that you review all permissions associated with the
+-- application before deploying. If you don\'t specify this parameter for
+-- an application that requires capabilities, the call will fail.
+--
+-- 'changeSetName', 'createCloudFormationChangeSet_changeSetName' - This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+--
+-- 'clientToken', 'createCloudFormationChangeSet_clientToken' - This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+--
+-- 'description', 'createCloudFormationChangeSet_description' - This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+--
+-- 'notificationArns', 'createCloudFormationChangeSet_notificationArns' - This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+--
+-- 'parameterOverrides', 'createCloudFormationChangeSet_parameterOverrides' - A list of parameter values for the parameters of the application.
+--
+-- 'resourceTypes', 'createCloudFormationChangeSet_resourceTypes' - This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+--
+-- 'rollbackConfiguration', 'createCloudFormationChangeSet_rollbackConfiguration' - This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+--
+-- 'semanticVersion', 'createCloudFormationChangeSet_semanticVersion' - The semantic version of the application:
+--
+-- <https://semver.org/>
+--
+-- 'tags', 'createCloudFormationChangeSet_tags' - This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+--
+-- 'templateId', 'createCloudFormationChangeSet_templateId' - The UUID returned by CreateCloudFormationTemplate.
+--
+-- Pattern:
+-- [0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}
+--
+-- 'applicationId', 'createCloudFormationChangeSet_applicationId' - The Amazon Resource Name (ARN) of the application.
+--
+-- 'stackName', 'createCloudFormationChangeSet_stackName' - This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+newCreateCloudFormationChangeSet ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  -- | 'stackName'
+  Prelude.Text ->
+  CreateCloudFormationChangeSet
+newCreateCloudFormationChangeSet
+  pApplicationId_
+  pStackName_ =
+    CreateCloudFormationChangeSet'
+      { capabilities =
+          Prelude.Nothing,
+        changeSetName = Prelude.Nothing,
+        clientToken = Prelude.Nothing,
+        description = Prelude.Nothing,
+        notificationArns = Prelude.Nothing,
+        parameterOverrides = Prelude.Nothing,
+        resourceTypes = Prelude.Nothing,
+        rollbackConfiguration = Prelude.Nothing,
+        semanticVersion = Prelude.Nothing,
+        tags = Prelude.Nothing,
+        templateId = Prelude.Nothing,
+        applicationId = pApplicationId_,
+        stackName = pStackName_
+      }
+
+-- | A list of values that you must specify before you can deploy certain
+-- applications. Some applications might include resources that can affect
+-- permissions in your AWS account, for example, by creating new AWS
+-- Identity and Access Management (IAM) users. For those applications, you
+-- must explicitly acknowledge their capabilities by specifying this
+-- parameter.
+--
+-- The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
+-- CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.
+--
+-- The following resources require you to specify CAPABILITY_IAM or
+-- CAPABILITY_NAMED_IAM:
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html AWS::IAM::Group>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html AWS::IAM::InstanceProfile>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM::Policy>,
+-- and
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html AWS::IAM::Role>.
+-- If the application contains IAM resources, you can specify either
+-- CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM
+-- resources with custom names, you must specify CAPABILITY_NAMED_IAM.
+--
+-- The following resources require you to specify
+-- CAPABILITY_RESOURCE_POLICY:
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html AWS::Lambda::Permission>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM:Policy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html AWS::ApplicationAutoScaling::ScalingPolicy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html AWS::S3::BucketPolicy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html AWS::SQS::QueuePolicy>,
+-- and
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html AWS::SNS:TopicPolicy>.
+--
+-- Applications that contain one or more nested applications require you to
+-- specify CAPABILITY_AUTO_EXPAND.
+--
+-- If your application template contains any of the above resources, we
+-- recommend that you review all permissions associated with the
+-- application before deploying. If you don\'t specify this parameter for
+-- an application that requires capabilities, the call will fail.
+createCloudFormationChangeSet_capabilities :: Lens.Lens' CreateCloudFormationChangeSet (Prelude.Maybe [Prelude.Text])
+createCloudFormationChangeSet_capabilities = Lens.lens (\CreateCloudFormationChangeSet' {capabilities} -> capabilities) (\s@CreateCloudFormationChangeSet' {} a -> s {capabilities = a} :: CreateCloudFormationChangeSet) Prelude.. Lens.mapping Lens.coerced
+
+-- | This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+createCloudFormationChangeSet_changeSetName :: Lens.Lens' CreateCloudFormationChangeSet (Prelude.Maybe Prelude.Text)
+createCloudFormationChangeSet_changeSetName = Lens.lens (\CreateCloudFormationChangeSet' {changeSetName} -> changeSetName) (\s@CreateCloudFormationChangeSet' {} a -> s {changeSetName = a} :: CreateCloudFormationChangeSet)
+
+-- | This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+createCloudFormationChangeSet_clientToken :: Lens.Lens' CreateCloudFormationChangeSet (Prelude.Maybe Prelude.Text)
+createCloudFormationChangeSet_clientToken = Lens.lens (\CreateCloudFormationChangeSet' {clientToken} -> clientToken) (\s@CreateCloudFormationChangeSet' {} a -> s {clientToken = a} :: CreateCloudFormationChangeSet)
+
+-- | This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+createCloudFormationChangeSet_description :: Lens.Lens' CreateCloudFormationChangeSet (Prelude.Maybe Prelude.Text)
+createCloudFormationChangeSet_description = Lens.lens (\CreateCloudFormationChangeSet' {description} -> description) (\s@CreateCloudFormationChangeSet' {} a -> s {description = a} :: CreateCloudFormationChangeSet)
+
+-- | This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+createCloudFormationChangeSet_notificationArns :: Lens.Lens' CreateCloudFormationChangeSet (Prelude.Maybe [Prelude.Text])
+createCloudFormationChangeSet_notificationArns = Lens.lens (\CreateCloudFormationChangeSet' {notificationArns} -> notificationArns) (\s@CreateCloudFormationChangeSet' {} a -> s {notificationArns = a} :: CreateCloudFormationChangeSet) Prelude.. Lens.mapping Lens.coerced
+
+-- | A list of parameter values for the parameters of the application.
+createCloudFormationChangeSet_parameterOverrides :: Lens.Lens' CreateCloudFormationChangeSet (Prelude.Maybe [ParameterValue])
+createCloudFormationChangeSet_parameterOverrides = Lens.lens (\CreateCloudFormationChangeSet' {parameterOverrides} -> parameterOverrides) (\s@CreateCloudFormationChangeSet' {} a -> s {parameterOverrides = a} :: CreateCloudFormationChangeSet) Prelude.. Lens.mapping Lens.coerced
+
+-- | This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+createCloudFormationChangeSet_resourceTypes :: Lens.Lens' CreateCloudFormationChangeSet (Prelude.Maybe [Prelude.Text])
+createCloudFormationChangeSet_resourceTypes = Lens.lens (\CreateCloudFormationChangeSet' {resourceTypes} -> resourceTypes) (\s@CreateCloudFormationChangeSet' {} a -> s {resourceTypes = a} :: CreateCloudFormationChangeSet) Prelude.. Lens.mapping Lens.coerced
+
+-- | This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+createCloudFormationChangeSet_rollbackConfiguration :: Lens.Lens' CreateCloudFormationChangeSet (Prelude.Maybe RollbackConfiguration)
+createCloudFormationChangeSet_rollbackConfiguration = Lens.lens (\CreateCloudFormationChangeSet' {rollbackConfiguration} -> rollbackConfiguration) (\s@CreateCloudFormationChangeSet' {} a -> s {rollbackConfiguration = a} :: CreateCloudFormationChangeSet)
+
+-- | The semantic version of the application:
+--
+-- <https://semver.org/>
+createCloudFormationChangeSet_semanticVersion :: Lens.Lens' CreateCloudFormationChangeSet (Prelude.Maybe Prelude.Text)
+createCloudFormationChangeSet_semanticVersion = Lens.lens (\CreateCloudFormationChangeSet' {semanticVersion} -> semanticVersion) (\s@CreateCloudFormationChangeSet' {} a -> s {semanticVersion = a} :: CreateCloudFormationChangeSet)
+
+-- | This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+createCloudFormationChangeSet_tags :: Lens.Lens' CreateCloudFormationChangeSet (Prelude.Maybe [Tag])
+createCloudFormationChangeSet_tags = Lens.lens (\CreateCloudFormationChangeSet' {tags} -> tags) (\s@CreateCloudFormationChangeSet' {} a -> s {tags = a} :: CreateCloudFormationChangeSet) Prelude.. Lens.mapping Lens.coerced
+
+-- | The UUID returned by CreateCloudFormationTemplate.
+--
+-- Pattern:
+-- [0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}
+createCloudFormationChangeSet_templateId :: Lens.Lens' CreateCloudFormationChangeSet (Prelude.Maybe Prelude.Text)
+createCloudFormationChangeSet_templateId = Lens.lens (\CreateCloudFormationChangeSet' {templateId} -> templateId) (\s@CreateCloudFormationChangeSet' {} a -> s {templateId = a} :: CreateCloudFormationChangeSet)
+
+-- | The Amazon Resource Name (ARN) of the application.
+createCloudFormationChangeSet_applicationId :: Lens.Lens' CreateCloudFormationChangeSet Prelude.Text
+createCloudFormationChangeSet_applicationId = Lens.lens (\CreateCloudFormationChangeSet' {applicationId} -> applicationId) (\s@CreateCloudFormationChangeSet' {} a -> s {applicationId = a} :: CreateCloudFormationChangeSet)
+
+-- | This property corresponds to the parameter of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet CreateChangeSet>/
+-- API.
+createCloudFormationChangeSet_stackName :: Lens.Lens' CreateCloudFormationChangeSet Prelude.Text
+createCloudFormationChangeSet_stackName = Lens.lens (\CreateCloudFormationChangeSet' {stackName} -> stackName) (\s@CreateCloudFormationChangeSet' {} a -> s {stackName = a} :: CreateCloudFormationChangeSet)
+
+instance
+  Core.AWSRequest
+    CreateCloudFormationChangeSet
+  where
+  type
+    AWSResponse CreateCloudFormationChangeSet =
+      CreateCloudFormationChangeSetResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateCloudFormationChangeSetResponse'
+            Prelude.<$> (x Data..?> "applicationId")
+            Prelude.<*> (x Data..?> "changeSetId")
+            Prelude.<*> (x Data..?> "semanticVersion")
+            Prelude.<*> (x Data..?> "stackId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    CreateCloudFormationChangeSet
+  where
+  hashWithSalt _salt CreateCloudFormationChangeSet' {..} =
+    _salt
+      `Prelude.hashWithSalt` capabilities
+      `Prelude.hashWithSalt` changeSetName
+      `Prelude.hashWithSalt` clientToken
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` notificationArns
+      `Prelude.hashWithSalt` parameterOverrides
+      `Prelude.hashWithSalt` resourceTypes
+      `Prelude.hashWithSalt` rollbackConfiguration
+      `Prelude.hashWithSalt` semanticVersion
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` templateId
+      `Prelude.hashWithSalt` applicationId
+      `Prelude.hashWithSalt` stackName
+
+instance Prelude.NFData CreateCloudFormationChangeSet where
+  rnf CreateCloudFormationChangeSet' {..} =
+    Prelude.rnf capabilities
+      `Prelude.seq` Prelude.rnf changeSetName
+      `Prelude.seq` Prelude.rnf clientToken
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf notificationArns
+      `Prelude.seq` Prelude.rnf parameterOverrides
+      `Prelude.seq` Prelude.rnf resourceTypes
+      `Prelude.seq` Prelude.rnf rollbackConfiguration
+      `Prelude.seq` Prelude.rnf semanticVersion
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf templateId
+      `Prelude.seq` Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf stackName
+
+instance Data.ToHeaders CreateCloudFormationChangeSet where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateCloudFormationChangeSet where
+  toJSON CreateCloudFormationChangeSet' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("capabilities" Data..=) Prelude.<$> capabilities,
+            ("changeSetName" Data..=) Prelude.<$> changeSetName,
+            ("clientToken" Data..=) Prelude.<$> clientToken,
+            ("description" Data..=) Prelude.<$> description,
+            ("notificationArns" Data..=)
+              Prelude.<$> notificationArns,
+            ("parameterOverrides" Data..=)
+              Prelude.<$> parameterOverrides,
+            ("resourceTypes" Data..=) Prelude.<$> resourceTypes,
+            ("rollbackConfiguration" Data..=)
+              Prelude.<$> rollbackConfiguration,
+            ("semanticVersion" Data..=)
+              Prelude.<$> semanticVersion,
+            ("tags" Data..=) Prelude.<$> tags,
+            ("templateId" Data..=) Prelude.<$> templateId,
+            Prelude.Just ("stackName" Data..= stackName)
+          ]
+      )
+
+instance Data.ToPath CreateCloudFormationChangeSet where
+  toPath CreateCloudFormationChangeSet' {..} =
+    Prelude.mconcat
+      [ "/applications/",
+        Data.toBS applicationId,
+        "/changesets"
+      ]
+
+instance Data.ToQuery CreateCloudFormationChangeSet where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateCloudFormationChangeSetResponse' smart constructor.
+data CreateCloudFormationChangeSetResponse = CreateCloudFormationChangeSetResponse'
+  { -- | The application Amazon Resource Name (ARN).
+    applicationId :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the change set.
+    --
+    -- Length constraints: Minimum length of 1.
+    --
+    -- Pattern: ARN:[-a-zA-Z0-9:\/]*
+    changeSetId :: Prelude.Maybe Prelude.Text,
+    -- | The semantic version of the application:
+    --
+    -- <https://semver.org/>
+    semanticVersion :: Prelude.Maybe Prelude.Text,
+    -- | The unique ID of the stack.
+    stackId :: 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 'CreateCloudFormationChangeSetResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationId', 'createCloudFormationChangeSetResponse_applicationId' - The application Amazon Resource Name (ARN).
+--
+-- 'changeSetId', 'createCloudFormationChangeSetResponse_changeSetId' - The Amazon Resource Name (ARN) of the change set.
+--
+-- Length constraints: Minimum length of 1.
+--
+-- Pattern: ARN:[-a-zA-Z0-9:\/]*
+--
+-- 'semanticVersion', 'createCloudFormationChangeSetResponse_semanticVersion' - The semantic version of the application:
+--
+-- <https://semver.org/>
+--
+-- 'stackId', 'createCloudFormationChangeSetResponse_stackId' - The unique ID of the stack.
+--
+-- 'httpStatus', 'createCloudFormationChangeSetResponse_httpStatus' - The response's http status code.
+newCreateCloudFormationChangeSetResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateCloudFormationChangeSetResponse
+newCreateCloudFormationChangeSetResponse pHttpStatus_ =
+  CreateCloudFormationChangeSetResponse'
+    { applicationId =
+        Prelude.Nothing,
+      changeSetId = Prelude.Nothing,
+      semanticVersion = Prelude.Nothing,
+      stackId = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The application Amazon Resource Name (ARN).
+createCloudFormationChangeSetResponse_applicationId :: Lens.Lens' CreateCloudFormationChangeSetResponse (Prelude.Maybe Prelude.Text)
+createCloudFormationChangeSetResponse_applicationId = Lens.lens (\CreateCloudFormationChangeSetResponse' {applicationId} -> applicationId) (\s@CreateCloudFormationChangeSetResponse' {} a -> s {applicationId = a} :: CreateCloudFormationChangeSetResponse)
+
+-- | The Amazon Resource Name (ARN) of the change set.
+--
+-- Length constraints: Minimum length of 1.
+--
+-- Pattern: ARN:[-a-zA-Z0-9:\/]*
+createCloudFormationChangeSetResponse_changeSetId :: Lens.Lens' CreateCloudFormationChangeSetResponse (Prelude.Maybe Prelude.Text)
+createCloudFormationChangeSetResponse_changeSetId = Lens.lens (\CreateCloudFormationChangeSetResponse' {changeSetId} -> changeSetId) (\s@CreateCloudFormationChangeSetResponse' {} a -> s {changeSetId = a} :: CreateCloudFormationChangeSetResponse)
+
+-- | The semantic version of the application:
+--
+-- <https://semver.org/>
+createCloudFormationChangeSetResponse_semanticVersion :: Lens.Lens' CreateCloudFormationChangeSetResponse (Prelude.Maybe Prelude.Text)
+createCloudFormationChangeSetResponse_semanticVersion = Lens.lens (\CreateCloudFormationChangeSetResponse' {semanticVersion} -> semanticVersion) (\s@CreateCloudFormationChangeSetResponse' {} a -> s {semanticVersion = a} :: CreateCloudFormationChangeSetResponse)
+
+-- | The unique ID of the stack.
+createCloudFormationChangeSetResponse_stackId :: Lens.Lens' CreateCloudFormationChangeSetResponse (Prelude.Maybe Prelude.Text)
+createCloudFormationChangeSetResponse_stackId = Lens.lens (\CreateCloudFormationChangeSetResponse' {stackId} -> stackId) (\s@CreateCloudFormationChangeSetResponse' {} a -> s {stackId = a} :: CreateCloudFormationChangeSetResponse)
+
+-- | The response's http status code.
+createCloudFormationChangeSetResponse_httpStatus :: Lens.Lens' CreateCloudFormationChangeSetResponse Prelude.Int
+createCloudFormationChangeSetResponse_httpStatus = Lens.lens (\CreateCloudFormationChangeSetResponse' {httpStatus} -> httpStatus) (\s@CreateCloudFormationChangeSetResponse' {} a -> s {httpStatus = a} :: CreateCloudFormationChangeSetResponse)
+
+instance
+  Prelude.NFData
+    CreateCloudFormationChangeSetResponse
+  where
+  rnf CreateCloudFormationChangeSetResponse' {..} =
+    Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf changeSetId
+      `Prelude.seq` Prelude.rnf semanticVersion
+      `Prelude.seq` Prelude.rnf stackId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/ServerlessApplicationRepository/CreateCloudFormationTemplate.hs b/gen/Amazonka/ServerlessApplicationRepository/CreateCloudFormationTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/CreateCloudFormationTemplate.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.ServerlessApplicationRepository.CreateCloudFormationTemplate
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an AWS CloudFormation template.
+module Amazonka.ServerlessApplicationRepository.CreateCloudFormationTemplate
+  ( -- * Creating a Request
+    CreateCloudFormationTemplate (..),
+    newCreateCloudFormationTemplate,
+
+    -- * Request Lenses
+    createCloudFormationTemplate_semanticVersion,
+    createCloudFormationTemplate_applicationId,
+
+    -- * Destructuring the Response
+    CreateCloudFormationTemplateResponse (..),
+    newCreateCloudFormationTemplateResponse,
+
+    -- * Response Lenses
+    createCloudFormationTemplateResponse_applicationId,
+    createCloudFormationTemplateResponse_creationTime,
+    createCloudFormationTemplateResponse_expirationTime,
+    createCloudFormationTemplateResponse_semanticVersion,
+    createCloudFormationTemplateResponse_status,
+    createCloudFormationTemplateResponse_templateId,
+    createCloudFormationTemplateResponse_templateUrl,
+    createCloudFormationTemplateResponse_httpStatus,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newCreateCloudFormationTemplate' smart constructor.
+data CreateCloudFormationTemplate = CreateCloudFormationTemplate'
+  { -- | The semantic version of the application:
+    --
+    -- <https://semver.org/>
+    semanticVersion :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the application.
+    applicationId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateCloudFormationTemplate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'semanticVersion', 'createCloudFormationTemplate_semanticVersion' - The semantic version of the application:
+--
+-- <https://semver.org/>
+--
+-- 'applicationId', 'createCloudFormationTemplate_applicationId' - The Amazon Resource Name (ARN) of the application.
+newCreateCloudFormationTemplate ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  CreateCloudFormationTemplate
+newCreateCloudFormationTemplate pApplicationId_ =
+  CreateCloudFormationTemplate'
+    { semanticVersion =
+        Prelude.Nothing,
+      applicationId = pApplicationId_
+    }
+
+-- | The semantic version of the application:
+--
+-- <https://semver.org/>
+createCloudFormationTemplate_semanticVersion :: Lens.Lens' CreateCloudFormationTemplate (Prelude.Maybe Prelude.Text)
+createCloudFormationTemplate_semanticVersion = Lens.lens (\CreateCloudFormationTemplate' {semanticVersion} -> semanticVersion) (\s@CreateCloudFormationTemplate' {} a -> s {semanticVersion = a} :: CreateCloudFormationTemplate)
+
+-- | The Amazon Resource Name (ARN) of the application.
+createCloudFormationTemplate_applicationId :: Lens.Lens' CreateCloudFormationTemplate Prelude.Text
+createCloudFormationTemplate_applicationId = Lens.lens (\CreateCloudFormationTemplate' {applicationId} -> applicationId) (\s@CreateCloudFormationTemplate' {} a -> s {applicationId = a} :: CreateCloudFormationTemplate)
+
+instance Core.AWSRequest CreateCloudFormationTemplate where
+  type
+    AWSResponse CreateCloudFormationTemplate =
+      CreateCloudFormationTemplateResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateCloudFormationTemplateResponse'
+            Prelude.<$> (x Data..?> "applicationId")
+            Prelude.<*> (x Data..?> "creationTime")
+            Prelude.<*> (x Data..?> "expirationTime")
+            Prelude.<*> (x Data..?> "semanticVersion")
+            Prelude.<*> (x Data..?> "status")
+            Prelude.<*> (x Data..?> "templateId")
+            Prelude.<*> (x Data..?> "templateUrl")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    CreateCloudFormationTemplate
+  where
+  hashWithSalt _salt CreateCloudFormationTemplate' {..} =
+    _salt
+      `Prelude.hashWithSalt` semanticVersion
+      `Prelude.hashWithSalt` applicationId
+
+instance Prelude.NFData CreateCloudFormationTemplate where
+  rnf CreateCloudFormationTemplate' {..} =
+    Prelude.rnf semanticVersion
+      `Prelude.seq` Prelude.rnf applicationId
+
+instance Data.ToHeaders CreateCloudFormationTemplate where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateCloudFormationTemplate where
+  toJSON CreateCloudFormationTemplate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("semanticVersion" Data..=)
+              Prelude.<$> semanticVersion
+          ]
+      )
+
+instance Data.ToPath CreateCloudFormationTemplate where
+  toPath CreateCloudFormationTemplate' {..} =
+    Prelude.mconcat
+      [ "/applications/",
+        Data.toBS applicationId,
+        "/templates"
+      ]
+
+instance Data.ToQuery CreateCloudFormationTemplate where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateCloudFormationTemplateResponse' smart constructor.
+data CreateCloudFormationTemplateResponse = CreateCloudFormationTemplateResponse'
+  { -- | The application Amazon Resource Name (ARN).
+    applicationId :: Prelude.Maybe Prelude.Text,
+    -- | The date and time this resource was created.
+    creationTime :: Prelude.Maybe Prelude.Text,
+    -- | The date and time this template expires. Templates expire 1 hour after
+    -- creation.
+    expirationTime :: Prelude.Maybe Prelude.Text,
+    -- | The semantic version of the application:
+    --
+    -- <https://semver.org/>
+    semanticVersion :: Prelude.Maybe Prelude.Text,
+    -- | Status of the template creation workflow.
+    --
+    -- Possible values: PREPARING | ACTIVE | EXPIRED
+    status :: Prelude.Maybe Status,
+    -- | The UUID returned by CreateCloudFormationTemplate.
+    --
+    -- Pattern:
+    -- [0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}
+    templateId :: Prelude.Maybe Prelude.Text,
+    -- | A link to the template that can be used to deploy the application using
+    -- AWS CloudFormation.
+    templateUrl :: 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 'CreateCloudFormationTemplateResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationId', 'createCloudFormationTemplateResponse_applicationId' - The application Amazon Resource Name (ARN).
+--
+-- 'creationTime', 'createCloudFormationTemplateResponse_creationTime' - The date and time this resource was created.
+--
+-- 'expirationTime', 'createCloudFormationTemplateResponse_expirationTime' - The date and time this template expires. Templates expire 1 hour after
+-- creation.
+--
+-- 'semanticVersion', 'createCloudFormationTemplateResponse_semanticVersion' - The semantic version of the application:
+--
+-- <https://semver.org/>
+--
+-- 'status', 'createCloudFormationTemplateResponse_status' - Status of the template creation workflow.
+--
+-- Possible values: PREPARING | ACTIVE | EXPIRED
+--
+-- 'templateId', 'createCloudFormationTemplateResponse_templateId' - The UUID returned by CreateCloudFormationTemplate.
+--
+-- Pattern:
+-- [0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}
+--
+-- 'templateUrl', 'createCloudFormationTemplateResponse_templateUrl' - A link to the template that can be used to deploy the application using
+-- AWS CloudFormation.
+--
+-- 'httpStatus', 'createCloudFormationTemplateResponse_httpStatus' - The response's http status code.
+newCreateCloudFormationTemplateResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateCloudFormationTemplateResponse
+newCreateCloudFormationTemplateResponse pHttpStatus_ =
+  CreateCloudFormationTemplateResponse'
+    { applicationId =
+        Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      expirationTime = Prelude.Nothing,
+      semanticVersion = Prelude.Nothing,
+      status = Prelude.Nothing,
+      templateId = Prelude.Nothing,
+      templateUrl = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The application Amazon Resource Name (ARN).
+createCloudFormationTemplateResponse_applicationId :: Lens.Lens' CreateCloudFormationTemplateResponse (Prelude.Maybe Prelude.Text)
+createCloudFormationTemplateResponse_applicationId = Lens.lens (\CreateCloudFormationTemplateResponse' {applicationId} -> applicationId) (\s@CreateCloudFormationTemplateResponse' {} a -> s {applicationId = a} :: CreateCloudFormationTemplateResponse)
+
+-- | The date and time this resource was created.
+createCloudFormationTemplateResponse_creationTime :: Lens.Lens' CreateCloudFormationTemplateResponse (Prelude.Maybe Prelude.Text)
+createCloudFormationTemplateResponse_creationTime = Lens.lens (\CreateCloudFormationTemplateResponse' {creationTime} -> creationTime) (\s@CreateCloudFormationTemplateResponse' {} a -> s {creationTime = a} :: CreateCloudFormationTemplateResponse)
+
+-- | The date and time this template expires. Templates expire 1 hour after
+-- creation.
+createCloudFormationTemplateResponse_expirationTime :: Lens.Lens' CreateCloudFormationTemplateResponse (Prelude.Maybe Prelude.Text)
+createCloudFormationTemplateResponse_expirationTime = Lens.lens (\CreateCloudFormationTemplateResponse' {expirationTime} -> expirationTime) (\s@CreateCloudFormationTemplateResponse' {} a -> s {expirationTime = a} :: CreateCloudFormationTemplateResponse)
+
+-- | The semantic version of the application:
+--
+-- <https://semver.org/>
+createCloudFormationTemplateResponse_semanticVersion :: Lens.Lens' CreateCloudFormationTemplateResponse (Prelude.Maybe Prelude.Text)
+createCloudFormationTemplateResponse_semanticVersion = Lens.lens (\CreateCloudFormationTemplateResponse' {semanticVersion} -> semanticVersion) (\s@CreateCloudFormationTemplateResponse' {} a -> s {semanticVersion = a} :: CreateCloudFormationTemplateResponse)
+
+-- | Status of the template creation workflow.
+--
+-- Possible values: PREPARING | ACTIVE | EXPIRED
+createCloudFormationTemplateResponse_status :: Lens.Lens' CreateCloudFormationTemplateResponse (Prelude.Maybe Status)
+createCloudFormationTemplateResponse_status = Lens.lens (\CreateCloudFormationTemplateResponse' {status} -> status) (\s@CreateCloudFormationTemplateResponse' {} a -> s {status = a} :: CreateCloudFormationTemplateResponse)
+
+-- | The UUID returned by CreateCloudFormationTemplate.
+--
+-- Pattern:
+-- [0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}
+createCloudFormationTemplateResponse_templateId :: Lens.Lens' CreateCloudFormationTemplateResponse (Prelude.Maybe Prelude.Text)
+createCloudFormationTemplateResponse_templateId = Lens.lens (\CreateCloudFormationTemplateResponse' {templateId} -> templateId) (\s@CreateCloudFormationTemplateResponse' {} a -> s {templateId = a} :: CreateCloudFormationTemplateResponse)
+
+-- | A link to the template that can be used to deploy the application using
+-- AWS CloudFormation.
+createCloudFormationTemplateResponse_templateUrl :: Lens.Lens' CreateCloudFormationTemplateResponse (Prelude.Maybe Prelude.Text)
+createCloudFormationTemplateResponse_templateUrl = Lens.lens (\CreateCloudFormationTemplateResponse' {templateUrl} -> templateUrl) (\s@CreateCloudFormationTemplateResponse' {} a -> s {templateUrl = a} :: CreateCloudFormationTemplateResponse)
+
+-- | The response's http status code.
+createCloudFormationTemplateResponse_httpStatus :: Lens.Lens' CreateCloudFormationTemplateResponse Prelude.Int
+createCloudFormationTemplateResponse_httpStatus = Lens.lens (\CreateCloudFormationTemplateResponse' {httpStatus} -> httpStatus) (\s@CreateCloudFormationTemplateResponse' {} a -> s {httpStatus = a} :: CreateCloudFormationTemplateResponse)
+
+instance
+  Prelude.NFData
+    CreateCloudFormationTemplateResponse
+  where
+  rnf CreateCloudFormationTemplateResponse' {..} =
+    Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf expirationTime
+      `Prelude.seq` Prelude.rnf semanticVersion
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf templateId
+      `Prelude.seq` Prelude.rnf templateUrl
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/ServerlessApplicationRepository/DeleteApplication.hs b/gen/Amazonka/ServerlessApplicationRepository/DeleteApplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/DeleteApplication.hs
@@ -0,0 +1,125 @@
+{-# 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.ServerlessApplicationRepository.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.
+module Amazonka.ServerlessApplicationRepository.DeleteApplication
+  ( -- * Creating a Request
+    DeleteApplication (..),
+    newDeleteApplication,
+
+    -- * Request Lenses
+    deleteApplication_applicationId,
+
+    -- * Destructuring the Response
+    DeleteApplicationResponse (..),
+    newDeleteApplicationResponse,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newDeleteApplication' smart constructor.
+data DeleteApplication = DeleteApplication'
+  { -- | The Amazon Resource Name (ARN) of the application.
+    applicationId :: Prelude.Text
+  }
+  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:
+--
+-- 'applicationId', 'deleteApplication_applicationId' - The Amazon Resource Name (ARN) of the application.
+newDeleteApplication ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  DeleteApplication
+newDeleteApplication pApplicationId_ =
+  DeleteApplication' {applicationId = pApplicationId_}
+
+-- | The Amazon Resource Name (ARN) of the application.
+deleteApplication_applicationId :: Lens.Lens' DeleteApplication Prelude.Text
+deleteApplication_applicationId = Lens.lens (\DeleteApplication' {applicationId} -> applicationId) (\s@DeleteApplication' {} a -> s {applicationId = a} :: DeleteApplication)
+
+instance Core.AWSRequest DeleteApplication where
+  type
+    AWSResponse DeleteApplication =
+      DeleteApplicationResponse
+  request overrides =
+    Request.delete (overrides defaultService)
+  response =
+    Response.receiveNull DeleteApplicationResponse'
+
+instance Prelude.Hashable DeleteApplication where
+  hashWithSalt _salt DeleteApplication' {..} =
+    _salt `Prelude.hashWithSalt` applicationId
+
+instance Prelude.NFData DeleteApplication where
+  rnf DeleteApplication' {..} =
+    Prelude.rnf applicationId
+
+instance Data.ToHeaders DeleteApplication where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DeleteApplication where
+  toPath DeleteApplication' {..} =
+    Prelude.mconcat
+      ["/applications/", Data.toBS applicationId]
+
+instance Data.ToQuery DeleteApplication where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteApplicationResponse' smart constructor.
+data DeleteApplicationResponse = DeleteApplicationResponse'
+  {
+  }
+  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.
+newDeleteApplicationResponse ::
+  DeleteApplicationResponse
+newDeleteApplicationResponse =
+  DeleteApplicationResponse'
+
+instance Prelude.NFData DeleteApplicationResponse where
+  rnf _ = ()
diff --git a/gen/Amazonka/ServerlessApplicationRepository/GetApplication.hs b/gen/Amazonka/ServerlessApplicationRepository/GetApplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/GetApplication.hs
@@ -0,0 +1,396 @@
+{-# 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.ServerlessApplicationRepository.GetApplication
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the specified application.
+module Amazonka.ServerlessApplicationRepository.GetApplication
+  ( -- * Creating a Request
+    GetApplication (..),
+    newGetApplication,
+
+    -- * Request Lenses
+    getApplication_semanticVersion,
+    getApplication_applicationId,
+
+    -- * Destructuring the Response
+    GetApplicationResponse (..),
+    newGetApplicationResponse,
+
+    -- * Response Lenses
+    getApplicationResponse_applicationId,
+    getApplicationResponse_author,
+    getApplicationResponse_creationTime,
+    getApplicationResponse_description,
+    getApplicationResponse_homePageUrl,
+    getApplicationResponse_isVerifiedAuthor,
+    getApplicationResponse_labels,
+    getApplicationResponse_licenseUrl,
+    getApplicationResponse_name,
+    getApplicationResponse_readmeUrl,
+    getApplicationResponse_spdxLicenseId,
+    getApplicationResponse_verifiedAuthorUrl,
+    getApplicationResponse_version,
+    getApplicationResponse_httpStatus,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newGetApplication' smart constructor.
+data GetApplication = GetApplication'
+  { -- | The semantic version of the application to get.
+    semanticVersion :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the application.
+    applicationId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetApplication' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'semanticVersion', 'getApplication_semanticVersion' - The semantic version of the application to get.
+--
+-- 'applicationId', 'getApplication_applicationId' - The Amazon Resource Name (ARN) of the application.
+newGetApplication ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  GetApplication
+newGetApplication pApplicationId_ =
+  GetApplication'
+    { semanticVersion = Prelude.Nothing,
+      applicationId = pApplicationId_
+    }
+
+-- | The semantic version of the application to get.
+getApplication_semanticVersion :: Lens.Lens' GetApplication (Prelude.Maybe Prelude.Text)
+getApplication_semanticVersion = Lens.lens (\GetApplication' {semanticVersion} -> semanticVersion) (\s@GetApplication' {} a -> s {semanticVersion = a} :: GetApplication)
+
+-- | The Amazon Resource Name (ARN) of the application.
+getApplication_applicationId :: Lens.Lens' GetApplication Prelude.Text
+getApplication_applicationId = Lens.lens (\GetApplication' {applicationId} -> applicationId) (\s@GetApplication' {} a -> s {applicationId = a} :: GetApplication)
+
+instance Core.AWSRequest GetApplication where
+  type
+    AWSResponse GetApplication =
+      GetApplicationResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetApplicationResponse'
+            Prelude.<$> (x Data..?> "applicationId")
+            Prelude.<*> (x Data..?> "author")
+            Prelude.<*> (x Data..?> "creationTime")
+            Prelude.<*> (x Data..?> "description")
+            Prelude.<*> (x Data..?> "homePageUrl")
+            Prelude.<*> (x Data..?> "isVerifiedAuthor")
+            Prelude.<*> (x Data..?> "labels" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "licenseUrl")
+            Prelude.<*> (x Data..?> "name")
+            Prelude.<*> (x Data..?> "readmeUrl")
+            Prelude.<*> (x Data..?> "spdxLicenseId")
+            Prelude.<*> (x Data..?> "verifiedAuthorUrl")
+            Prelude.<*> (x Data..?> "version")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetApplication where
+  hashWithSalt _salt GetApplication' {..} =
+    _salt
+      `Prelude.hashWithSalt` semanticVersion
+      `Prelude.hashWithSalt` applicationId
+
+instance Prelude.NFData GetApplication where
+  rnf GetApplication' {..} =
+    Prelude.rnf semanticVersion
+      `Prelude.seq` Prelude.rnf applicationId
+
+instance Data.ToHeaders GetApplication where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetApplication where
+  toPath GetApplication' {..} =
+    Prelude.mconcat
+      ["/applications/", Data.toBS applicationId]
+
+instance Data.ToQuery GetApplication where
+  toQuery GetApplication' {..} =
+    Prelude.mconcat
+      ["semanticVersion" Data.=: semanticVersion]
+
+-- | /See:/ 'newGetApplicationResponse' smart constructor.
+data GetApplicationResponse = GetApplicationResponse'
+  { -- | The application Amazon Resource Name (ARN).
+    applicationId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the author publishing the app.
+    --
+    -- Minimum length=1. Maximum length=127.
+    --
+    -- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+    author :: Prelude.Maybe Prelude.Text,
+    -- | The date and time this resource was created.
+    creationTime :: Prelude.Maybe Prelude.Text,
+    -- | The description of the application.
+    --
+    -- Minimum length=1. Maximum length=256
+    description :: Prelude.Maybe Prelude.Text,
+    -- | A URL with more information about the application, for example the
+    -- location of your GitHub repository for the application.
+    homePageUrl :: Prelude.Maybe Prelude.Text,
+    -- | Whether the author of this application has been verified. This means
+    -- means that AWS has made a good faith review, as a reasonable and prudent
+    -- service provider, of the information provided by the requester and has
+    -- confirmed that the requester\'s identity is as claimed.
+    isVerifiedAuthor :: Prelude.Maybe Prelude.Bool,
+    -- | Labels to improve discovery of apps in search results.
+    --
+    -- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+    --
+    -- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+    labels :: Prelude.Maybe [Prelude.Text],
+    -- | A link to a license file of the app that matches the spdxLicenseID value
+    -- of your application.
+    --
+    -- Maximum size 5 MB
+    licenseUrl :: Prelude.Maybe Prelude.Text,
+    -- | The name of the application.
+    --
+    -- Minimum length=1. Maximum length=140
+    --
+    -- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+    name :: Prelude.Maybe Prelude.Text,
+    -- | A link to the readme file in Markdown language that contains a more
+    -- detailed description of the application and how it works.
+    --
+    -- Maximum size 5 MB
+    readmeUrl :: Prelude.Maybe Prelude.Text,
+    -- | A valid identifier from https:\/\/spdx.org\/licenses\/.
+    spdxLicenseId :: Prelude.Maybe Prelude.Text,
+    -- | The URL to the public profile of a verified author. This URL is
+    -- submitted by the author.
+    verifiedAuthorUrl :: Prelude.Maybe Prelude.Text,
+    -- | Version information about the application.
+    version :: Prelude.Maybe Version,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetApplicationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationId', 'getApplicationResponse_applicationId' - The application Amazon Resource Name (ARN).
+--
+-- 'author', 'getApplicationResponse_author' - The name of the author publishing the app.
+--
+-- Minimum length=1. Maximum length=127.
+--
+-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+--
+-- 'creationTime', 'getApplicationResponse_creationTime' - The date and time this resource was created.
+--
+-- 'description', 'getApplicationResponse_description' - The description of the application.
+--
+-- Minimum length=1. Maximum length=256
+--
+-- 'homePageUrl', 'getApplicationResponse_homePageUrl' - A URL with more information about the application, for example the
+-- location of your GitHub repository for the application.
+--
+-- 'isVerifiedAuthor', 'getApplicationResponse_isVerifiedAuthor' - Whether the author of this application has been verified. This means
+-- means that AWS has made a good faith review, as a reasonable and prudent
+-- service provider, of the information provided by the requester and has
+-- confirmed that the requester\'s identity is as claimed.
+--
+-- 'labels', 'getApplicationResponse_labels' - Labels to improve discovery of apps in search results.
+--
+-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+--
+-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+--
+-- 'licenseUrl', 'getApplicationResponse_licenseUrl' - A link to a license file of the app that matches the spdxLicenseID value
+-- of your application.
+--
+-- Maximum size 5 MB
+--
+-- 'name', 'getApplicationResponse_name' - The name of the application.
+--
+-- Minimum length=1. Maximum length=140
+--
+-- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+--
+-- 'readmeUrl', 'getApplicationResponse_readmeUrl' - A link to the readme file in Markdown language that contains a more
+-- detailed description of the application and how it works.
+--
+-- Maximum size 5 MB
+--
+-- 'spdxLicenseId', 'getApplicationResponse_spdxLicenseId' - A valid identifier from https:\/\/spdx.org\/licenses\/.
+--
+-- 'verifiedAuthorUrl', 'getApplicationResponse_verifiedAuthorUrl' - The URL to the public profile of a verified author. This URL is
+-- submitted by the author.
+--
+-- 'version', 'getApplicationResponse_version' - Version information about the application.
+--
+-- 'httpStatus', 'getApplicationResponse_httpStatus' - The response's http status code.
+newGetApplicationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetApplicationResponse
+newGetApplicationResponse pHttpStatus_ =
+  GetApplicationResponse'
+    { applicationId =
+        Prelude.Nothing,
+      author = Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      description = Prelude.Nothing,
+      homePageUrl = Prelude.Nothing,
+      isVerifiedAuthor = Prelude.Nothing,
+      labels = Prelude.Nothing,
+      licenseUrl = Prelude.Nothing,
+      name = Prelude.Nothing,
+      readmeUrl = Prelude.Nothing,
+      spdxLicenseId = Prelude.Nothing,
+      verifiedAuthorUrl = Prelude.Nothing,
+      version = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The application Amazon Resource Name (ARN).
+getApplicationResponse_applicationId :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Prelude.Text)
+getApplicationResponse_applicationId = Lens.lens (\GetApplicationResponse' {applicationId} -> applicationId) (\s@GetApplicationResponse' {} a -> s {applicationId = a} :: GetApplicationResponse)
+
+-- | The name of the author publishing the app.
+--
+-- Minimum length=1. Maximum length=127.
+--
+-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+getApplicationResponse_author :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Prelude.Text)
+getApplicationResponse_author = Lens.lens (\GetApplicationResponse' {author} -> author) (\s@GetApplicationResponse' {} a -> s {author = a} :: GetApplicationResponse)
+
+-- | The date and time this resource was created.
+getApplicationResponse_creationTime :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Prelude.Text)
+getApplicationResponse_creationTime = Lens.lens (\GetApplicationResponse' {creationTime} -> creationTime) (\s@GetApplicationResponse' {} a -> s {creationTime = a} :: GetApplicationResponse)
+
+-- | The description of the application.
+--
+-- Minimum length=1. Maximum length=256
+getApplicationResponse_description :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Prelude.Text)
+getApplicationResponse_description = Lens.lens (\GetApplicationResponse' {description} -> description) (\s@GetApplicationResponse' {} a -> s {description = a} :: GetApplicationResponse)
+
+-- | A URL with more information about the application, for example the
+-- location of your GitHub repository for the application.
+getApplicationResponse_homePageUrl :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Prelude.Text)
+getApplicationResponse_homePageUrl = Lens.lens (\GetApplicationResponse' {homePageUrl} -> homePageUrl) (\s@GetApplicationResponse' {} a -> s {homePageUrl = a} :: GetApplicationResponse)
+
+-- | Whether the author of this application has been verified. This means
+-- means that AWS has made a good faith review, as a reasonable and prudent
+-- service provider, of the information provided by the requester and has
+-- confirmed that the requester\'s identity is as claimed.
+getApplicationResponse_isVerifiedAuthor :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Prelude.Bool)
+getApplicationResponse_isVerifiedAuthor = Lens.lens (\GetApplicationResponse' {isVerifiedAuthor} -> isVerifiedAuthor) (\s@GetApplicationResponse' {} a -> s {isVerifiedAuthor = a} :: GetApplicationResponse)
+
+-- | Labels to improve discovery of apps in search results.
+--
+-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+--
+-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+getApplicationResponse_labels :: Lens.Lens' GetApplicationResponse (Prelude.Maybe [Prelude.Text])
+getApplicationResponse_labels = Lens.lens (\GetApplicationResponse' {labels} -> labels) (\s@GetApplicationResponse' {} a -> s {labels = a} :: GetApplicationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | A link to a license file of the app that matches the spdxLicenseID value
+-- of your application.
+--
+-- Maximum size 5 MB
+getApplicationResponse_licenseUrl :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Prelude.Text)
+getApplicationResponse_licenseUrl = Lens.lens (\GetApplicationResponse' {licenseUrl} -> licenseUrl) (\s@GetApplicationResponse' {} a -> s {licenseUrl = a} :: GetApplicationResponse)
+
+-- | The name of the application.
+--
+-- Minimum length=1. Maximum length=140
+--
+-- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+getApplicationResponse_name :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Prelude.Text)
+getApplicationResponse_name = Lens.lens (\GetApplicationResponse' {name} -> name) (\s@GetApplicationResponse' {} a -> s {name = a} :: GetApplicationResponse)
+
+-- | A link to the readme file in Markdown language that contains a more
+-- detailed description of the application and how it works.
+--
+-- Maximum size 5 MB
+getApplicationResponse_readmeUrl :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Prelude.Text)
+getApplicationResponse_readmeUrl = Lens.lens (\GetApplicationResponse' {readmeUrl} -> readmeUrl) (\s@GetApplicationResponse' {} a -> s {readmeUrl = a} :: GetApplicationResponse)
+
+-- | A valid identifier from https:\/\/spdx.org\/licenses\/.
+getApplicationResponse_spdxLicenseId :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Prelude.Text)
+getApplicationResponse_spdxLicenseId = Lens.lens (\GetApplicationResponse' {spdxLicenseId} -> spdxLicenseId) (\s@GetApplicationResponse' {} a -> s {spdxLicenseId = a} :: GetApplicationResponse)
+
+-- | The URL to the public profile of a verified author. This URL is
+-- submitted by the author.
+getApplicationResponse_verifiedAuthorUrl :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Prelude.Text)
+getApplicationResponse_verifiedAuthorUrl = Lens.lens (\GetApplicationResponse' {verifiedAuthorUrl} -> verifiedAuthorUrl) (\s@GetApplicationResponse' {} a -> s {verifiedAuthorUrl = a} :: GetApplicationResponse)
+
+-- | Version information about the application.
+getApplicationResponse_version :: Lens.Lens' GetApplicationResponse (Prelude.Maybe Version)
+getApplicationResponse_version = Lens.lens (\GetApplicationResponse' {version} -> version) (\s@GetApplicationResponse' {} a -> s {version = a} :: GetApplicationResponse)
+
+-- | The response's http status code.
+getApplicationResponse_httpStatus :: Lens.Lens' GetApplicationResponse Prelude.Int
+getApplicationResponse_httpStatus = Lens.lens (\GetApplicationResponse' {httpStatus} -> httpStatus) (\s@GetApplicationResponse' {} a -> s {httpStatus = a} :: GetApplicationResponse)
+
+instance Prelude.NFData GetApplicationResponse where
+  rnf GetApplicationResponse' {..} =
+    Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf author
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf homePageUrl
+      `Prelude.seq` Prelude.rnf isVerifiedAuthor
+      `Prelude.seq` Prelude.rnf labels
+      `Prelude.seq` Prelude.rnf licenseUrl
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf readmeUrl
+      `Prelude.seq` Prelude.rnf spdxLicenseId
+      `Prelude.seq` Prelude.rnf verifiedAuthorUrl
+      `Prelude.seq` Prelude.rnf version
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/ServerlessApplicationRepository/GetApplicationPolicy.hs b/gen/Amazonka/ServerlessApplicationRepository/GetApplicationPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/GetApplicationPolicy.hs
@@ -0,0 +1,166 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.ServerlessApplicationRepository.GetApplicationPolicy
+-- 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 policy for the application.
+module Amazonka.ServerlessApplicationRepository.GetApplicationPolicy
+  ( -- * Creating a Request
+    GetApplicationPolicy (..),
+    newGetApplicationPolicy,
+
+    -- * Request Lenses
+    getApplicationPolicy_applicationId,
+
+    -- * Destructuring the Response
+    GetApplicationPolicyResponse (..),
+    newGetApplicationPolicyResponse,
+
+    -- * Response Lenses
+    getApplicationPolicyResponse_statements,
+    getApplicationPolicyResponse_httpStatus,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newGetApplicationPolicy' smart constructor.
+data GetApplicationPolicy = GetApplicationPolicy'
+  { -- | The Amazon Resource Name (ARN) of the application.
+    applicationId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetApplicationPolicy' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationId', 'getApplicationPolicy_applicationId' - The Amazon Resource Name (ARN) of the application.
+newGetApplicationPolicy ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  GetApplicationPolicy
+newGetApplicationPolicy pApplicationId_ =
+  GetApplicationPolicy'
+    { applicationId =
+        pApplicationId_
+    }
+
+-- | The Amazon Resource Name (ARN) of the application.
+getApplicationPolicy_applicationId :: Lens.Lens' GetApplicationPolicy Prelude.Text
+getApplicationPolicy_applicationId = Lens.lens (\GetApplicationPolicy' {applicationId} -> applicationId) (\s@GetApplicationPolicy' {} a -> s {applicationId = a} :: GetApplicationPolicy)
+
+instance Core.AWSRequest GetApplicationPolicy where
+  type
+    AWSResponse GetApplicationPolicy =
+      GetApplicationPolicyResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetApplicationPolicyResponse'
+            Prelude.<$> (x Data..?> "statements" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetApplicationPolicy where
+  hashWithSalt _salt GetApplicationPolicy' {..} =
+    _salt `Prelude.hashWithSalt` applicationId
+
+instance Prelude.NFData GetApplicationPolicy where
+  rnf GetApplicationPolicy' {..} =
+    Prelude.rnf applicationId
+
+instance Data.ToHeaders GetApplicationPolicy where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetApplicationPolicy where
+  toPath GetApplicationPolicy' {..} =
+    Prelude.mconcat
+      [ "/applications/",
+        Data.toBS applicationId,
+        "/policy"
+      ]
+
+instance Data.ToQuery GetApplicationPolicy where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetApplicationPolicyResponse' smart constructor.
+data GetApplicationPolicyResponse = GetApplicationPolicyResponse'
+  { -- | An array of policy statements applied to the application.
+    statements :: Prelude.Maybe [ApplicationPolicyStatement],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetApplicationPolicyResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'statements', 'getApplicationPolicyResponse_statements' - An array of policy statements applied to the application.
+--
+-- 'httpStatus', 'getApplicationPolicyResponse_httpStatus' - The response's http status code.
+newGetApplicationPolicyResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetApplicationPolicyResponse
+newGetApplicationPolicyResponse pHttpStatus_ =
+  GetApplicationPolicyResponse'
+    { statements =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | An array of policy statements applied to the application.
+getApplicationPolicyResponse_statements :: Lens.Lens' GetApplicationPolicyResponse (Prelude.Maybe [ApplicationPolicyStatement])
+getApplicationPolicyResponse_statements = Lens.lens (\GetApplicationPolicyResponse' {statements} -> statements) (\s@GetApplicationPolicyResponse' {} a -> s {statements = a} :: GetApplicationPolicyResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+getApplicationPolicyResponse_httpStatus :: Lens.Lens' GetApplicationPolicyResponse Prelude.Int
+getApplicationPolicyResponse_httpStatus = Lens.lens (\GetApplicationPolicyResponse' {httpStatus} -> httpStatus) (\s@GetApplicationPolicyResponse' {} a -> s {httpStatus = a} :: GetApplicationPolicyResponse)
+
+instance Prelude.NFData GetApplicationPolicyResponse where
+  rnf GetApplicationPolicyResponse' {..} =
+    Prelude.rnf statements
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/ServerlessApplicationRepository/GetCloudFormationTemplate.hs b/gen/Amazonka/ServerlessApplicationRepository/GetCloudFormationTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/GetCloudFormationTemplate.hs
@@ -0,0 +1,295 @@
+{-# 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.ServerlessApplicationRepository.GetCloudFormationTemplate
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the specified AWS CloudFormation template.
+module Amazonka.ServerlessApplicationRepository.GetCloudFormationTemplate
+  ( -- * Creating a Request
+    GetCloudFormationTemplate (..),
+    newGetCloudFormationTemplate,
+
+    -- * Request Lenses
+    getCloudFormationTemplate_applicationId,
+    getCloudFormationTemplate_templateId,
+
+    -- * Destructuring the Response
+    GetCloudFormationTemplateResponse (..),
+    newGetCloudFormationTemplateResponse,
+
+    -- * Response Lenses
+    getCloudFormationTemplateResponse_applicationId,
+    getCloudFormationTemplateResponse_creationTime,
+    getCloudFormationTemplateResponse_expirationTime,
+    getCloudFormationTemplateResponse_semanticVersion,
+    getCloudFormationTemplateResponse_status,
+    getCloudFormationTemplateResponse_templateId,
+    getCloudFormationTemplateResponse_templateUrl,
+    getCloudFormationTemplateResponse_httpStatus,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newGetCloudFormationTemplate' smart constructor.
+data GetCloudFormationTemplate = GetCloudFormationTemplate'
+  { -- | The Amazon Resource Name (ARN) of the application.
+    applicationId :: Prelude.Text,
+    -- | The UUID returned by CreateCloudFormationTemplate.
+    --
+    -- Pattern:
+    -- [0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}
+    templateId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetCloudFormationTemplate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationId', 'getCloudFormationTemplate_applicationId' - The Amazon Resource Name (ARN) of the application.
+--
+-- 'templateId', 'getCloudFormationTemplate_templateId' - The UUID returned by CreateCloudFormationTemplate.
+--
+-- Pattern:
+-- [0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}
+newGetCloudFormationTemplate ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  -- | 'templateId'
+  Prelude.Text ->
+  GetCloudFormationTemplate
+newGetCloudFormationTemplate
+  pApplicationId_
+  pTemplateId_ =
+    GetCloudFormationTemplate'
+      { applicationId =
+          pApplicationId_,
+        templateId = pTemplateId_
+      }
+
+-- | The Amazon Resource Name (ARN) of the application.
+getCloudFormationTemplate_applicationId :: Lens.Lens' GetCloudFormationTemplate Prelude.Text
+getCloudFormationTemplate_applicationId = Lens.lens (\GetCloudFormationTemplate' {applicationId} -> applicationId) (\s@GetCloudFormationTemplate' {} a -> s {applicationId = a} :: GetCloudFormationTemplate)
+
+-- | The UUID returned by CreateCloudFormationTemplate.
+--
+-- Pattern:
+-- [0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}
+getCloudFormationTemplate_templateId :: Lens.Lens' GetCloudFormationTemplate Prelude.Text
+getCloudFormationTemplate_templateId = Lens.lens (\GetCloudFormationTemplate' {templateId} -> templateId) (\s@GetCloudFormationTemplate' {} a -> s {templateId = a} :: GetCloudFormationTemplate)
+
+instance Core.AWSRequest GetCloudFormationTemplate where
+  type
+    AWSResponse GetCloudFormationTemplate =
+      GetCloudFormationTemplateResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetCloudFormationTemplateResponse'
+            Prelude.<$> (x Data..?> "applicationId")
+            Prelude.<*> (x Data..?> "creationTime")
+            Prelude.<*> (x Data..?> "expirationTime")
+            Prelude.<*> (x Data..?> "semanticVersion")
+            Prelude.<*> (x Data..?> "status")
+            Prelude.<*> (x Data..?> "templateId")
+            Prelude.<*> (x Data..?> "templateUrl")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetCloudFormationTemplate where
+  hashWithSalt _salt GetCloudFormationTemplate' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationId
+      `Prelude.hashWithSalt` templateId
+
+instance Prelude.NFData GetCloudFormationTemplate where
+  rnf GetCloudFormationTemplate' {..} =
+    Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf templateId
+
+instance Data.ToHeaders GetCloudFormationTemplate where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetCloudFormationTemplate where
+  toPath GetCloudFormationTemplate' {..} =
+    Prelude.mconcat
+      [ "/applications/",
+        Data.toBS applicationId,
+        "/templates/",
+        Data.toBS templateId
+      ]
+
+instance Data.ToQuery GetCloudFormationTemplate where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetCloudFormationTemplateResponse' smart constructor.
+data GetCloudFormationTemplateResponse = GetCloudFormationTemplateResponse'
+  { -- | The application Amazon Resource Name (ARN).
+    applicationId :: Prelude.Maybe Prelude.Text,
+    -- | The date and time this resource was created.
+    creationTime :: Prelude.Maybe Prelude.Text,
+    -- | The date and time this template expires. Templates expire 1 hour after
+    -- creation.
+    expirationTime :: Prelude.Maybe Prelude.Text,
+    -- | The semantic version of the application:
+    --
+    -- <https://semver.org/>
+    semanticVersion :: Prelude.Maybe Prelude.Text,
+    -- | Status of the template creation workflow.
+    --
+    -- Possible values: PREPARING | ACTIVE | EXPIRED
+    status :: Prelude.Maybe Status,
+    -- | The UUID returned by CreateCloudFormationTemplate.
+    --
+    -- Pattern:
+    -- [0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}
+    templateId :: Prelude.Maybe Prelude.Text,
+    -- | A link to the template that can be used to deploy the application using
+    -- AWS CloudFormation.
+    templateUrl :: 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 'GetCloudFormationTemplateResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationId', 'getCloudFormationTemplateResponse_applicationId' - The application Amazon Resource Name (ARN).
+--
+-- 'creationTime', 'getCloudFormationTemplateResponse_creationTime' - The date and time this resource was created.
+--
+-- 'expirationTime', 'getCloudFormationTemplateResponse_expirationTime' - The date and time this template expires. Templates expire 1 hour after
+-- creation.
+--
+-- 'semanticVersion', 'getCloudFormationTemplateResponse_semanticVersion' - The semantic version of the application:
+--
+-- <https://semver.org/>
+--
+-- 'status', 'getCloudFormationTemplateResponse_status' - Status of the template creation workflow.
+--
+-- Possible values: PREPARING | ACTIVE | EXPIRED
+--
+-- 'templateId', 'getCloudFormationTemplateResponse_templateId' - The UUID returned by CreateCloudFormationTemplate.
+--
+-- Pattern:
+-- [0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}
+--
+-- 'templateUrl', 'getCloudFormationTemplateResponse_templateUrl' - A link to the template that can be used to deploy the application using
+-- AWS CloudFormation.
+--
+-- 'httpStatus', 'getCloudFormationTemplateResponse_httpStatus' - The response's http status code.
+newGetCloudFormationTemplateResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetCloudFormationTemplateResponse
+newGetCloudFormationTemplateResponse pHttpStatus_ =
+  GetCloudFormationTemplateResponse'
+    { applicationId =
+        Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      expirationTime = Prelude.Nothing,
+      semanticVersion = Prelude.Nothing,
+      status = Prelude.Nothing,
+      templateId = Prelude.Nothing,
+      templateUrl = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The application Amazon Resource Name (ARN).
+getCloudFormationTemplateResponse_applicationId :: Lens.Lens' GetCloudFormationTemplateResponse (Prelude.Maybe Prelude.Text)
+getCloudFormationTemplateResponse_applicationId = Lens.lens (\GetCloudFormationTemplateResponse' {applicationId} -> applicationId) (\s@GetCloudFormationTemplateResponse' {} a -> s {applicationId = a} :: GetCloudFormationTemplateResponse)
+
+-- | The date and time this resource was created.
+getCloudFormationTemplateResponse_creationTime :: Lens.Lens' GetCloudFormationTemplateResponse (Prelude.Maybe Prelude.Text)
+getCloudFormationTemplateResponse_creationTime = Lens.lens (\GetCloudFormationTemplateResponse' {creationTime} -> creationTime) (\s@GetCloudFormationTemplateResponse' {} a -> s {creationTime = a} :: GetCloudFormationTemplateResponse)
+
+-- | The date and time this template expires. Templates expire 1 hour after
+-- creation.
+getCloudFormationTemplateResponse_expirationTime :: Lens.Lens' GetCloudFormationTemplateResponse (Prelude.Maybe Prelude.Text)
+getCloudFormationTemplateResponse_expirationTime = Lens.lens (\GetCloudFormationTemplateResponse' {expirationTime} -> expirationTime) (\s@GetCloudFormationTemplateResponse' {} a -> s {expirationTime = a} :: GetCloudFormationTemplateResponse)
+
+-- | The semantic version of the application:
+--
+-- <https://semver.org/>
+getCloudFormationTemplateResponse_semanticVersion :: Lens.Lens' GetCloudFormationTemplateResponse (Prelude.Maybe Prelude.Text)
+getCloudFormationTemplateResponse_semanticVersion = Lens.lens (\GetCloudFormationTemplateResponse' {semanticVersion} -> semanticVersion) (\s@GetCloudFormationTemplateResponse' {} a -> s {semanticVersion = a} :: GetCloudFormationTemplateResponse)
+
+-- | Status of the template creation workflow.
+--
+-- Possible values: PREPARING | ACTIVE | EXPIRED
+getCloudFormationTemplateResponse_status :: Lens.Lens' GetCloudFormationTemplateResponse (Prelude.Maybe Status)
+getCloudFormationTemplateResponse_status = Lens.lens (\GetCloudFormationTemplateResponse' {status} -> status) (\s@GetCloudFormationTemplateResponse' {} a -> s {status = a} :: GetCloudFormationTemplateResponse)
+
+-- | The UUID returned by CreateCloudFormationTemplate.
+--
+-- Pattern:
+-- [0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}
+getCloudFormationTemplateResponse_templateId :: Lens.Lens' GetCloudFormationTemplateResponse (Prelude.Maybe Prelude.Text)
+getCloudFormationTemplateResponse_templateId = Lens.lens (\GetCloudFormationTemplateResponse' {templateId} -> templateId) (\s@GetCloudFormationTemplateResponse' {} a -> s {templateId = a} :: GetCloudFormationTemplateResponse)
+
+-- | A link to the template that can be used to deploy the application using
+-- AWS CloudFormation.
+getCloudFormationTemplateResponse_templateUrl :: Lens.Lens' GetCloudFormationTemplateResponse (Prelude.Maybe Prelude.Text)
+getCloudFormationTemplateResponse_templateUrl = Lens.lens (\GetCloudFormationTemplateResponse' {templateUrl} -> templateUrl) (\s@GetCloudFormationTemplateResponse' {} a -> s {templateUrl = a} :: GetCloudFormationTemplateResponse)
+
+-- | The response's http status code.
+getCloudFormationTemplateResponse_httpStatus :: Lens.Lens' GetCloudFormationTemplateResponse Prelude.Int
+getCloudFormationTemplateResponse_httpStatus = Lens.lens (\GetCloudFormationTemplateResponse' {httpStatus} -> httpStatus) (\s@GetCloudFormationTemplateResponse' {} a -> s {httpStatus = a} :: GetCloudFormationTemplateResponse)
+
+instance
+  Prelude.NFData
+    GetCloudFormationTemplateResponse
+  where
+  rnf GetCloudFormationTemplateResponse' {..} =
+    Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf expirationTime
+      `Prelude.seq` Prelude.rnf semanticVersion
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf templateId
+      `Prelude.seq` Prelude.rnf templateUrl
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Lens.hs b/gen/Amazonka/ServerlessApplicationRepository/Lens.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Lens.hs
@@ -0,0 +1,288 @@
+{-# 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.ServerlessApplicationRepository.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.ServerlessApplicationRepository.Lens
+  ( -- * Operations
+
+    -- ** CreateApplication
+    createApplication_homePageUrl,
+    createApplication_labels,
+    createApplication_licenseBody,
+    createApplication_licenseUrl,
+    createApplication_readmeBody,
+    createApplication_readmeUrl,
+    createApplication_semanticVersion,
+    createApplication_sourceCodeArchiveUrl,
+    createApplication_sourceCodeUrl,
+    createApplication_spdxLicenseId,
+    createApplication_templateBody,
+    createApplication_templateUrl,
+    createApplication_description,
+    createApplication_name,
+    createApplication_author,
+    createApplicationResponse_applicationId,
+    createApplicationResponse_author,
+    createApplicationResponse_creationTime,
+    createApplicationResponse_description,
+    createApplicationResponse_homePageUrl,
+    createApplicationResponse_isVerifiedAuthor,
+    createApplicationResponse_labels,
+    createApplicationResponse_licenseUrl,
+    createApplicationResponse_name,
+    createApplicationResponse_readmeUrl,
+    createApplicationResponse_spdxLicenseId,
+    createApplicationResponse_verifiedAuthorUrl,
+    createApplicationResponse_version,
+    createApplicationResponse_httpStatus,
+
+    -- ** CreateApplicationVersion
+    createApplicationVersion_sourceCodeArchiveUrl,
+    createApplicationVersion_sourceCodeUrl,
+    createApplicationVersion_templateBody,
+    createApplicationVersion_templateUrl,
+    createApplicationVersion_applicationId,
+    createApplicationVersion_semanticVersion,
+    createApplicationVersionResponse_applicationId,
+    createApplicationVersionResponse_creationTime,
+    createApplicationVersionResponse_parameterDefinitions,
+    createApplicationVersionResponse_requiredCapabilities,
+    createApplicationVersionResponse_resourcesSupported,
+    createApplicationVersionResponse_semanticVersion,
+    createApplicationVersionResponse_sourceCodeArchiveUrl,
+    createApplicationVersionResponse_sourceCodeUrl,
+    createApplicationVersionResponse_templateUrl,
+    createApplicationVersionResponse_httpStatus,
+
+    -- ** CreateCloudFormationChangeSet
+    createCloudFormationChangeSet_capabilities,
+    createCloudFormationChangeSet_changeSetName,
+    createCloudFormationChangeSet_clientToken,
+    createCloudFormationChangeSet_description,
+    createCloudFormationChangeSet_notificationArns,
+    createCloudFormationChangeSet_parameterOverrides,
+    createCloudFormationChangeSet_resourceTypes,
+    createCloudFormationChangeSet_rollbackConfiguration,
+    createCloudFormationChangeSet_semanticVersion,
+    createCloudFormationChangeSet_tags,
+    createCloudFormationChangeSet_templateId,
+    createCloudFormationChangeSet_applicationId,
+    createCloudFormationChangeSet_stackName,
+    createCloudFormationChangeSetResponse_applicationId,
+    createCloudFormationChangeSetResponse_changeSetId,
+    createCloudFormationChangeSetResponse_semanticVersion,
+    createCloudFormationChangeSetResponse_stackId,
+    createCloudFormationChangeSetResponse_httpStatus,
+
+    -- ** CreateCloudFormationTemplate
+    createCloudFormationTemplate_semanticVersion,
+    createCloudFormationTemplate_applicationId,
+    createCloudFormationTemplateResponse_applicationId,
+    createCloudFormationTemplateResponse_creationTime,
+    createCloudFormationTemplateResponse_expirationTime,
+    createCloudFormationTemplateResponse_semanticVersion,
+    createCloudFormationTemplateResponse_status,
+    createCloudFormationTemplateResponse_templateId,
+    createCloudFormationTemplateResponse_templateUrl,
+    createCloudFormationTemplateResponse_httpStatus,
+
+    -- ** DeleteApplication
+    deleteApplication_applicationId,
+
+    -- ** GetApplication
+    getApplication_semanticVersion,
+    getApplication_applicationId,
+    getApplicationResponse_applicationId,
+    getApplicationResponse_author,
+    getApplicationResponse_creationTime,
+    getApplicationResponse_description,
+    getApplicationResponse_homePageUrl,
+    getApplicationResponse_isVerifiedAuthor,
+    getApplicationResponse_labels,
+    getApplicationResponse_licenseUrl,
+    getApplicationResponse_name,
+    getApplicationResponse_readmeUrl,
+    getApplicationResponse_spdxLicenseId,
+    getApplicationResponse_verifiedAuthorUrl,
+    getApplicationResponse_version,
+    getApplicationResponse_httpStatus,
+
+    -- ** GetApplicationPolicy
+    getApplicationPolicy_applicationId,
+    getApplicationPolicyResponse_statements,
+    getApplicationPolicyResponse_httpStatus,
+
+    -- ** GetCloudFormationTemplate
+    getCloudFormationTemplate_applicationId,
+    getCloudFormationTemplate_templateId,
+    getCloudFormationTemplateResponse_applicationId,
+    getCloudFormationTemplateResponse_creationTime,
+    getCloudFormationTemplateResponse_expirationTime,
+    getCloudFormationTemplateResponse_semanticVersion,
+    getCloudFormationTemplateResponse_status,
+    getCloudFormationTemplateResponse_templateId,
+    getCloudFormationTemplateResponse_templateUrl,
+    getCloudFormationTemplateResponse_httpStatus,
+
+    -- ** ListApplicationDependencies
+    listApplicationDependencies_maxItems,
+    listApplicationDependencies_nextToken,
+    listApplicationDependencies_semanticVersion,
+    listApplicationDependencies_applicationId,
+    listApplicationDependenciesResponse_dependencies,
+    listApplicationDependenciesResponse_nextToken,
+    listApplicationDependenciesResponse_httpStatus,
+
+    -- ** ListApplicationVersions
+    listApplicationVersions_maxItems,
+    listApplicationVersions_nextToken,
+    listApplicationVersions_applicationId,
+    listApplicationVersionsResponse_nextToken,
+    listApplicationVersionsResponse_versions,
+    listApplicationVersionsResponse_httpStatus,
+
+    -- ** ListApplications
+    listApplications_maxItems,
+    listApplications_nextToken,
+    listApplicationsResponse_applications,
+    listApplicationsResponse_nextToken,
+    listApplicationsResponse_httpStatus,
+
+    -- ** PutApplicationPolicy
+    putApplicationPolicy_applicationId,
+    putApplicationPolicy_statements,
+    putApplicationPolicyResponse_statements,
+    putApplicationPolicyResponse_httpStatus,
+
+    -- ** UnshareApplication
+    unshareApplication_applicationId,
+    unshareApplication_organizationId,
+
+    -- ** UpdateApplication
+    updateApplication_author,
+    updateApplication_description,
+    updateApplication_homePageUrl,
+    updateApplication_labels,
+    updateApplication_readmeBody,
+    updateApplication_readmeUrl,
+    updateApplication_applicationId,
+    updateApplicationResponse_applicationId,
+    updateApplicationResponse_author,
+    updateApplicationResponse_creationTime,
+    updateApplicationResponse_description,
+    updateApplicationResponse_homePageUrl,
+    updateApplicationResponse_isVerifiedAuthor,
+    updateApplicationResponse_labels,
+    updateApplicationResponse_licenseUrl,
+    updateApplicationResponse_name,
+    updateApplicationResponse_readmeUrl,
+    updateApplicationResponse_spdxLicenseId,
+    updateApplicationResponse_verifiedAuthorUrl,
+    updateApplicationResponse_version,
+    updateApplicationResponse_httpStatus,
+
+    -- * Types
+
+    -- ** ApplicationDependencySummary
+    applicationDependencySummary_applicationId,
+    applicationDependencySummary_semanticVersion,
+
+    -- ** ApplicationPolicyStatement
+    applicationPolicyStatement_principalOrgIDs,
+    applicationPolicyStatement_statementId,
+    applicationPolicyStatement_principals,
+    applicationPolicyStatement_actions,
+
+    -- ** ApplicationSummary
+    applicationSummary_creationTime,
+    applicationSummary_homePageUrl,
+    applicationSummary_labels,
+    applicationSummary_spdxLicenseId,
+    applicationSummary_description,
+    applicationSummary_author,
+    applicationSummary_applicationId,
+    applicationSummary_name,
+
+    -- ** ParameterDefinition
+    parameterDefinition_allowedPattern,
+    parameterDefinition_allowedValues,
+    parameterDefinition_constraintDescription,
+    parameterDefinition_defaultValue,
+    parameterDefinition_description,
+    parameterDefinition_maxLength,
+    parameterDefinition_maxValue,
+    parameterDefinition_minLength,
+    parameterDefinition_minValue,
+    parameterDefinition_noEcho,
+    parameterDefinition_type,
+    parameterDefinition_referencedByResources,
+    parameterDefinition_name,
+
+    -- ** ParameterValue
+    parameterValue_value,
+    parameterValue_name,
+
+    -- ** RollbackConfiguration
+    rollbackConfiguration_monitoringTimeInMinutes,
+    rollbackConfiguration_rollbackTriggers,
+
+    -- ** RollbackTrigger
+    rollbackTrigger_type,
+    rollbackTrigger_arn,
+
+    -- ** Tag
+    tag_value,
+    tag_key,
+
+    -- ** Version
+    version_sourceCodeArchiveUrl,
+    version_sourceCodeUrl,
+    version_templateUrl,
+    version_parameterDefinitions,
+    version_resourcesSupported,
+    version_creationTime,
+    version_requiredCapabilities,
+    version_applicationId,
+    version_semanticVersion,
+
+    -- ** VersionSummary
+    versionSummary_sourceCodeUrl,
+    versionSummary_creationTime,
+    versionSummary_applicationId,
+    versionSummary_semanticVersion,
+  )
+where
+
+import Amazonka.ServerlessApplicationRepository.CreateApplication
+import Amazonka.ServerlessApplicationRepository.CreateApplicationVersion
+import Amazonka.ServerlessApplicationRepository.CreateCloudFormationChangeSet
+import Amazonka.ServerlessApplicationRepository.CreateCloudFormationTemplate
+import Amazonka.ServerlessApplicationRepository.DeleteApplication
+import Amazonka.ServerlessApplicationRepository.GetApplication
+import Amazonka.ServerlessApplicationRepository.GetApplicationPolicy
+import Amazonka.ServerlessApplicationRepository.GetCloudFormationTemplate
+import Amazonka.ServerlessApplicationRepository.ListApplicationDependencies
+import Amazonka.ServerlessApplicationRepository.ListApplicationVersions
+import Amazonka.ServerlessApplicationRepository.ListApplications
+import Amazonka.ServerlessApplicationRepository.PutApplicationPolicy
+import Amazonka.ServerlessApplicationRepository.Types.ApplicationDependencySummary
+import Amazonka.ServerlessApplicationRepository.Types.ApplicationPolicyStatement
+import Amazonka.ServerlessApplicationRepository.Types.ApplicationSummary
+import Amazonka.ServerlessApplicationRepository.Types.ParameterDefinition
+import Amazonka.ServerlessApplicationRepository.Types.ParameterValue
+import Amazonka.ServerlessApplicationRepository.Types.RollbackConfiguration
+import Amazonka.ServerlessApplicationRepository.Types.RollbackTrigger
+import Amazonka.ServerlessApplicationRepository.Types.Tag
+import Amazonka.ServerlessApplicationRepository.Types.Version
+import Amazonka.ServerlessApplicationRepository.Types.VersionSummary
+import Amazonka.ServerlessApplicationRepository.UnshareApplication
+import Amazonka.ServerlessApplicationRepository.UpdateApplication
diff --git a/gen/Amazonka/ServerlessApplicationRepository/ListApplicationDependencies.hs b/gen/Amazonka/ServerlessApplicationRepository/ListApplicationDependencies.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/ListApplicationDependencies.hs
@@ -0,0 +1,247 @@
+{-# 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.ServerlessApplicationRepository.ListApplicationDependencies
+-- 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 applications nested in the containing application.
+--
+-- This operation returns paginated results.
+module Amazonka.ServerlessApplicationRepository.ListApplicationDependencies
+  ( -- * Creating a Request
+    ListApplicationDependencies (..),
+    newListApplicationDependencies,
+
+    -- * Request Lenses
+    listApplicationDependencies_maxItems,
+    listApplicationDependencies_nextToken,
+    listApplicationDependencies_semanticVersion,
+    listApplicationDependencies_applicationId,
+
+    -- * Destructuring the Response
+    ListApplicationDependenciesResponse (..),
+    newListApplicationDependenciesResponse,
+
+    -- * Response Lenses
+    listApplicationDependenciesResponse_dependencies,
+    listApplicationDependenciesResponse_nextToken,
+    listApplicationDependenciesResponse_httpStatus,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newListApplicationDependencies' smart constructor.
+data ListApplicationDependencies = ListApplicationDependencies'
+  { -- | The total number of items to return.
+    maxItems :: Prelude.Maybe Prelude.Natural,
+    -- | A token to specify where to start paginating.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The semantic version of the application to get.
+    semanticVersion :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the application.
+    applicationId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListApplicationDependencies' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'maxItems', 'listApplicationDependencies_maxItems' - The total number of items to return.
+--
+-- 'nextToken', 'listApplicationDependencies_nextToken' - A token to specify where to start paginating.
+--
+-- 'semanticVersion', 'listApplicationDependencies_semanticVersion' - The semantic version of the application to get.
+--
+-- 'applicationId', 'listApplicationDependencies_applicationId' - The Amazon Resource Name (ARN) of the application.
+newListApplicationDependencies ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  ListApplicationDependencies
+newListApplicationDependencies pApplicationId_ =
+  ListApplicationDependencies'
+    { maxItems =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      semanticVersion = Prelude.Nothing,
+      applicationId = pApplicationId_
+    }
+
+-- | The total number of items to return.
+listApplicationDependencies_maxItems :: Lens.Lens' ListApplicationDependencies (Prelude.Maybe Prelude.Natural)
+listApplicationDependencies_maxItems = Lens.lens (\ListApplicationDependencies' {maxItems} -> maxItems) (\s@ListApplicationDependencies' {} a -> s {maxItems = a} :: ListApplicationDependencies)
+
+-- | A token to specify where to start paginating.
+listApplicationDependencies_nextToken :: Lens.Lens' ListApplicationDependencies (Prelude.Maybe Prelude.Text)
+listApplicationDependencies_nextToken = Lens.lens (\ListApplicationDependencies' {nextToken} -> nextToken) (\s@ListApplicationDependencies' {} a -> s {nextToken = a} :: ListApplicationDependencies)
+
+-- | The semantic version of the application to get.
+listApplicationDependencies_semanticVersion :: Lens.Lens' ListApplicationDependencies (Prelude.Maybe Prelude.Text)
+listApplicationDependencies_semanticVersion = Lens.lens (\ListApplicationDependencies' {semanticVersion} -> semanticVersion) (\s@ListApplicationDependencies' {} a -> s {semanticVersion = a} :: ListApplicationDependencies)
+
+-- | The Amazon Resource Name (ARN) of the application.
+listApplicationDependencies_applicationId :: Lens.Lens' ListApplicationDependencies Prelude.Text
+listApplicationDependencies_applicationId = Lens.lens (\ListApplicationDependencies' {applicationId} -> applicationId) (\s@ListApplicationDependencies' {} a -> s {applicationId = a} :: ListApplicationDependencies)
+
+instance Core.AWSPager ListApplicationDependencies where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listApplicationDependenciesResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? listApplicationDependenciesResponse_dependencies
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listApplicationDependencies_nextToken
+          Lens..~ rs
+          Lens.^? listApplicationDependenciesResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest ListApplicationDependencies where
+  type
+    AWSResponse ListApplicationDependencies =
+      ListApplicationDependenciesResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListApplicationDependenciesResponse'
+            Prelude.<$> (x Data..?> "dependencies" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListApplicationDependencies where
+  hashWithSalt _salt ListApplicationDependencies' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxItems
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` semanticVersion
+      `Prelude.hashWithSalt` applicationId
+
+instance Prelude.NFData ListApplicationDependencies where
+  rnf ListApplicationDependencies' {..} =
+    Prelude.rnf maxItems
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf semanticVersion
+      `Prelude.seq` Prelude.rnf applicationId
+
+instance Data.ToHeaders ListApplicationDependencies where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListApplicationDependencies where
+  toPath ListApplicationDependencies' {..} =
+    Prelude.mconcat
+      [ "/applications/",
+        Data.toBS applicationId,
+        "/dependencies"
+      ]
+
+instance Data.ToQuery ListApplicationDependencies where
+  toQuery ListApplicationDependencies' {..} =
+    Prelude.mconcat
+      [ "maxItems" Data.=: maxItems,
+        "nextToken" Data.=: nextToken,
+        "semanticVersion" Data.=: semanticVersion
+      ]
+
+-- | /See:/ 'newListApplicationDependenciesResponse' smart constructor.
+data ListApplicationDependenciesResponse = ListApplicationDependenciesResponse'
+  { -- | An array of application summaries nested in the application.
+    dependencies :: Prelude.Maybe [ApplicationDependencySummary],
+    -- | The token to request the next page of results.
+    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 'ListApplicationDependenciesResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'dependencies', 'listApplicationDependenciesResponse_dependencies' - An array of application summaries nested in the application.
+--
+-- 'nextToken', 'listApplicationDependenciesResponse_nextToken' - The token to request the next page of results.
+--
+-- 'httpStatus', 'listApplicationDependenciesResponse_httpStatus' - The response's http status code.
+newListApplicationDependenciesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListApplicationDependenciesResponse
+newListApplicationDependenciesResponse pHttpStatus_ =
+  ListApplicationDependenciesResponse'
+    { dependencies =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | An array of application summaries nested in the application.
+listApplicationDependenciesResponse_dependencies :: Lens.Lens' ListApplicationDependenciesResponse (Prelude.Maybe [ApplicationDependencySummary])
+listApplicationDependenciesResponse_dependencies = Lens.lens (\ListApplicationDependenciesResponse' {dependencies} -> dependencies) (\s@ListApplicationDependenciesResponse' {} a -> s {dependencies = a} :: ListApplicationDependenciesResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The token to request the next page of results.
+listApplicationDependenciesResponse_nextToken :: Lens.Lens' ListApplicationDependenciesResponse (Prelude.Maybe Prelude.Text)
+listApplicationDependenciesResponse_nextToken = Lens.lens (\ListApplicationDependenciesResponse' {nextToken} -> nextToken) (\s@ListApplicationDependenciesResponse' {} a -> s {nextToken = a} :: ListApplicationDependenciesResponse)
+
+-- | The response's http status code.
+listApplicationDependenciesResponse_httpStatus :: Lens.Lens' ListApplicationDependenciesResponse Prelude.Int
+listApplicationDependenciesResponse_httpStatus = Lens.lens (\ListApplicationDependenciesResponse' {httpStatus} -> httpStatus) (\s@ListApplicationDependenciesResponse' {} a -> s {httpStatus = a} :: ListApplicationDependenciesResponse)
+
+instance
+  Prelude.NFData
+    ListApplicationDependenciesResponse
+  where
+  rnf ListApplicationDependenciesResponse' {..} =
+    Prelude.rnf dependencies
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/ServerlessApplicationRepository/ListApplicationVersions.hs b/gen/Amazonka/ServerlessApplicationRepository/ListApplicationVersions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/ListApplicationVersions.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.ServerlessApplicationRepository.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 versions for the specified application.
+--
+-- This operation returns paginated results.
+module Amazonka.ServerlessApplicationRepository.ListApplicationVersions
+  ( -- * Creating a Request
+    ListApplicationVersions (..),
+    newListApplicationVersions,
+
+    -- * Request Lenses
+    listApplicationVersions_maxItems,
+    listApplicationVersions_nextToken,
+    listApplicationVersions_applicationId,
+
+    -- * Destructuring the Response
+    ListApplicationVersionsResponse (..),
+    newListApplicationVersionsResponse,
+
+    -- * Response Lenses
+    listApplicationVersionsResponse_nextToken,
+    listApplicationVersionsResponse_versions,
+    listApplicationVersionsResponse_httpStatus,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newListApplicationVersions' smart constructor.
+data ListApplicationVersions = ListApplicationVersions'
+  { -- | The total number of items to return.
+    maxItems :: Prelude.Maybe Prelude.Natural,
+    -- | A token to specify where to start paginating.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the application.
+    applicationId :: 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:
+--
+-- 'maxItems', 'listApplicationVersions_maxItems' - The total number of items to return.
+--
+-- 'nextToken', 'listApplicationVersions_nextToken' - A token to specify where to start paginating.
+--
+-- 'applicationId', 'listApplicationVersions_applicationId' - The Amazon Resource Name (ARN) of the application.
+newListApplicationVersions ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  ListApplicationVersions
+newListApplicationVersions pApplicationId_ =
+  ListApplicationVersions'
+    { maxItems =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      applicationId = pApplicationId_
+    }
+
+-- | The total number of items to return.
+listApplicationVersions_maxItems :: Lens.Lens' ListApplicationVersions (Prelude.Maybe Prelude.Natural)
+listApplicationVersions_maxItems = Lens.lens (\ListApplicationVersions' {maxItems} -> maxItems) (\s@ListApplicationVersions' {} a -> s {maxItems = a} :: ListApplicationVersions)
+
+-- | A token to specify where to start paginating.
+listApplicationVersions_nextToken :: Lens.Lens' ListApplicationVersions (Prelude.Maybe Prelude.Text)
+listApplicationVersions_nextToken = Lens.lens (\ListApplicationVersions' {nextToken} -> nextToken) (\s@ListApplicationVersions' {} a -> s {nextToken = a} :: ListApplicationVersions)
+
+-- | The Amazon Resource Name (ARN) of the application.
+listApplicationVersions_applicationId :: Lens.Lens' ListApplicationVersions Prelude.Text
+listApplicationVersions_applicationId = Lens.lens (\ListApplicationVersions' {applicationId} -> applicationId) (\s@ListApplicationVersions' {} a -> s {applicationId = a} :: ListApplicationVersions)
+
+instance Core.AWSPager ListApplicationVersions where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listApplicationVersionsResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? listApplicationVersionsResponse_versions
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listApplicationVersions_nextToken
+          Lens..~ rs
+          Lens.^? listApplicationVersionsResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest ListApplicationVersions where
+  type
+    AWSResponse ListApplicationVersions =
+      ListApplicationVersionsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListApplicationVersionsResponse'
+            Prelude.<$> (x Data..?> "nextToken")
+            Prelude.<*> (x Data..?> "versions" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListApplicationVersions where
+  hashWithSalt _salt ListApplicationVersions' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxItems
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` applicationId
+
+instance Prelude.NFData ListApplicationVersions where
+  rnf ListApplicationVersions' {..} =
+    Prelude.rnf maxItems
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf applicationId
+
+instance Data.ToHeaders ListApplicationVersions where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListApplicationVersions where
+  toPath ListApplicationVersions' {..} =
+    Prelude.mconcat
+      [ "/applications/",
+        Data.toBS applicationId,
+        "/versions"
+      ]
+
+instance Data.ToQuery ListApplicationVersions where
+  toQuery ListApplicationVersions' {..} =
+    Prelude.mconcat
+      [ "maxItems" Data.=: maxItems,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newListApplicationVersionsResponse' smart constructor.
+data ListApplicationVersionsResponse = ListApplicationVersionsResponse'
+  { -- | The token to request the next page of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | An array of version summaries for the application.
+    versions :: Prelude.Maybe [VersionSummary],
+    -- | 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:
+--
+-- 'nextToken', 'listApplicationVersionsResponse_nextToken' - The token to request the next page of results.
+--
+-- 'versions', 'listApplicationVersionsResponse_versions' - An array of version summaries for the application.
+--
+-- 'httpStatus', 'listApplicationVersionsResponse_httpStatus' - The response's http status code.
+newListApplicationVersionsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListApplicationVersionsResponse
+newListApplicationVersionsResponse pHttpStatus_ =
+  ListApplicationVersionsResponse'
+    { nextToken =
+        Prelude.Nothing,
+      versions = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The token to request the next page of results.
+listApplicationVersionsResponse_nextToken :: Lens.Lens' ListApplicationVersionsResponse (Prelude.Maybe Prelude.Text)
+listApplicationVersionsResponse_nextToken = Lens.lens (\ListApplicationVersionsResponse' {nextToken} -> nextToken) (\s@ListApplicationVersionsResponse' {} a -> s {nextToken = a} :: ListApplicationVersionsResponse)
+
+-- | An array of version summaries for the application.
+listApplicationVersionsResponse_versions :: Lens.Lens' ListApplicationVersionsResponse (Prelude.Maybe [VersionSummary])
+listApplicationVersionsResponse_versions = Lens.lens (\ListApplicationVersionsResponse' {versions} -> versions) (\s@ListApplicationVersionsResponse' {} a -> s {versions = a} :: ListApplicationVersionsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | 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 nextToken
+      `Prelude.seq` Prelude.rnf versions
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/ServerlessApplicationRepository/ListApplications.hs b/gen/Amazonka/ServerlessApplicationRepository/ListApplications.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/ListApplications.hs
@@ -0,0 +1,211 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.ServerlessApplicationRepository.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)
+--
+-- Lists applications owned by the requester.
+--
+-- This operation returns paginated results.
+module Amazonka.ServerlessApplicationRepository.ListApplications
+  ( -- * Creating a Request
+    ListApplications (..),
+    newListApplications,
+
+    -- * Request Lenses
+    listApplications_maxItems,
+    listApplications_nextToken,
+
+    -- * Destructuring the Response
+    ListApplicationsResponse (..),
+    newListApplicationsResponse,
+
+    -- * Response Lenses
+    listApplicationsResponse_applications,
+    listApplicationsResponse_nextToken,
+    listApplicationsResponse_httpStatus,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newListApplications' smart constructor.
+data ListApplications = ListApplications'
+  { -- | The total number of items to return.
+    maxItems :: Prelude.Maybe Prelude.Natural,
+    -- | A token to specify where to start paginating.
+    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:
+--
+-- 'maxItems', 'listApplications_maxItems' - The total number of items to return.
+--
+-- 'nextToken', 'listApplications_nextToken' - A token to specify where to start paginating.
+newListApplications ::
+  ListApplications
+newListApplications =
+  ListApplications'
+    { maxItems = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | The total number of items to return.
+listApplications_maxItems :: Lens.Lens' ListApplications (Prelude.Maybe Prelude.Natural)
+listApplications_maxItems = Lens.lens (\ListApplications' {maxItems} -> maxItems) (\s@ListApplications' {} a -> s {maxItems = a} :: ListApplications)
+
+-- | A token to specify where to start paginating.
+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_applications
+            Prelude.. Lens._Just
+        ) =
+        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.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListApplicationsResponse'
+            Prelude.<$> (x Data..?> "applications" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListApplications where
+  hashWithSalt _salt ListApplications' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxItems
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListApplications where
+  rnf ListApplications' {..} =
+    Prelude.rnf maxItems
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListApplications where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListApplications where
+  toPath = Prelude.const "/applications"
+
+instance Data.ToQuery ListApplications where
+  toQuery ListApplications' {..} =
+    Prelude.mconcat
+      [ "maxItems" Data.=: maxItems,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newListApplicationsResponse' smart constructor.
+data ListApplicationsResponse = ListApplicationsResponse'
+  { -- | An array of application summaries.
+    applications :: Prelude.Maybe [ApplicationSummary],
+    -- | The token to request the next page of results.
+    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 '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:
+--
+-- 'applications', 'listApplicationsResponse_applications' - An array of application summaries.
+--
+-- 'nextToken', 'listApplicationsResponse_nextToken' - The token to request the next page of results.
+--
+-- 'httpStatus', 'listApplicationsResponse_httpStatus' - The response's http status code.
+newListApplicationsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListApplicationsResponse
+newListApplicationsResponse pHttpStatus_ =
+  ListApplicationsResponse'
+    { applications =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | An array of application summaries.
+listApplicationsResponse_applications :: Lens.Lens' ListApplicationsResponse (Prelude.Maybe [ApplicationSummary])
+listApplicationsResponse_applications = Lens.lens (\ListApplicationsResponse' {applications} -> applications) (\s@ListApplicationsResponse' {} a -> s {applications = a} :: ListApplicationsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The token to request the next page of results.
+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)
+
+instance Prelude.NFData ListApplicationsResponse where
+  rnf ListApplicationsResponse' {..} =
+    Prelude.rnf applications
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/ServerlessApplicationRepository/PutApplicationPolicy.hs b/gen/Amazonka/ServerlessApplicationRepository/PutApplicationPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/PutApplicationPolicy.hs
@@ -0,0 +1,189 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.ServerlessApplicationRepository.PutApplicationPolicy
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the permission policy for an application. For the list of actions
+-- supported for this operation, see
+-- <https://docs.aws.amazon.com/serverlessrepo/latest/devguide/access-control-resource-based.html#application-permissions Application Permissions>
+-- .
+module Amazonka.ServerlessApplicationRepository.PutApplicationPolicy
+  ( -- * Creating a Request
+    PutApplicationPolicy (..),
+    newPutApplicationPolicy,
+
+    -- * Request Lenses
+    putApplicationPolicy_applicationId,
+    putApplicationPolicy_statements,
+
+    -- * Destructuring the Response
+    PutApplicationPolicyResponse (..),
+    newPutApplicationPolicyResponse,
+
+    -- * Response Lenses
+    putApplicationPolicyResponse_statements,
+    putApplicationPolicyResponse_httpStatus,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newPutApplicationPolicy' smart constructor.
+data PutApplicationPolicy = PutApplicationPolicy'
+  { -- | The Amazon Resource Name (ARN) of the application.
+    applicationId :: Prelude.Text,
+    -- | An array of policy statements applied to the application.
+    statements :: [ApplicationPolicyStatement]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PutApplicationPolicy' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationId', 'putApplicationPolicy_applicationId' - The Amazon Resource Name (ARN) of the application.
+--
+-- 'statements', 'putApplicationPolicy_statements' - An array of policy statements applied to the application.
+newPutApplicationPolicy ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  PutApplicationPolicy
+newPutApplicationPolicy pApplicationId_ =
+  PutApplicationPolicy'
+    { applicationId =
+        pApplicationId_,
+      statements = Prelude.mempty
+    }
+
+-- | The Amazon Resource Name (ARN) of the application.
+putApplicationPolicy_applicationId :: Lens.Lens' PutApplicationPolicy Prelude.Text
+putApplicationPolicy_applicationId = Lens.lens (\PutApplicationPolicy' {applicationId} -> applicationId) (\s@PutApplicationPolicy' {} a -> s {applicationId = a} :: PutApplicationPolicy)
+
+-- | An array of policy statements applied to the application.
+putApplicationPolicy_statements :: Lens.Lens' PutApplicationPolicy [ApplicationPolicyStatement]
+putApplicationPolicy_statements = Lens.lens (\PutApplicationPolicy' {statements} -> statements) (\s@PutApplicationPolicy' {} a -> s {statements = a} :: PutApplicationPolicy) Prelude.. Lens.coerced
+
+instance Core.AWSRequest PutApplicationPolicy where
+  type
+    AWSResponse PutApplicationPolicy =
+      PutApplicationPolicyResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          PutApplicationPolicyResponse'
+            Prelude.<$> (x Data..?> "statements" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable PutApplicationPolicy where
+  hashWithSalt _salt PutApplicationPolicy' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationId
+      `Prelude.hashWithSalt` statements
+
+instance Prelude.NFData PutApplicationPolicy where
+  rnf PutApplicationPolicy' {..} =
+    Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf statements
+
+instance Data.ToHeaders PutApplicationPolicy where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON PutApplicationPolicy where
+  toJSON PutApplicationPolicy' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("statements" Data..= statements)]
+      )
+
+instance Data.ToPath PutApplicationPolicy where
+  toPath PutApplicationPolicy' {..} =
+    Prelude.mconcat
+      [ "/applications/",
+        Data.toBS applicationId,
+        "/policy"
+      ]
+
+instance Data.ToQuery PutApplicationPolicy where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newPutApplicationPolicyResponse' smart constructor.
+data PutApplicationPolicyResponse = PutApplicationPolicyResponse'
+  { -- | An array of policy statements applied to the application.
+    statements :: Prelude.Maybe [ApplicationPolicyStatement],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PutApplicationPolicyResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'statements', 'putApplicationPolicyResponse_statements' - An array of policy statements applied to the application.
+--
+-- 'httpStatus', 'putApplicationPolicyResponse_httpStatus' - The response's http status code.
+newPutApplicationPolicyResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  PutApplicationPolicyResponse
+newPutApplicationPolicyResponse pHttpStatus_ =
+  PutApplicationPolicyResponse'
+    { statements =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | An array of policy statements applied to the application.
+putApplicationPolicyResponse_statements :: Lens.Lens' PutApplicationPolicyResponse (Prelude.Maybe [ApplicationPolicyStatement])
+putApplicationPolicyResponse_statements = Lens.lens (\PutApplicationPolicyResponse' {statements} -> statements) (\s@PutApplicationPolicyResponse' {} a -> s {statements = a} :: PutApplicationPolicyResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+putApplicationPolicyResponse_httpStatus :: Lens.Lens' PutApplicationPolicyResponse Prelude.Int
+putApplicationPolicyResponse_httpStatus = Lens.lens (\PutApplicationPolicyResponse' {httpStatus} -> httpStatus) (\s@PutApplicationPolicyResponse' {} a -> s {httpStatus = a} :: PutApplicationPolicyResponse)
+
+instance Prelude.NFData PutApplicationPolicyResponse where
+  rnf PutApplicationPolicyResponse' {..} =
+    Prelude.rnf statements
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types.hs b/gen/Amazonka/ServerlessApplicationRepository/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types.hs
@@ -0,0 +1,263 @@
+{-# 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.ServerlessApplicationRepository.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.ServerlessApplicationRepository.Types
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    _BadRequestException,
+    _ConflictException,
+    _ForbiddenException,
+    _InternalServerErrorException,
+    _NotFoundException,
+    _TooManyRequestsException,
+
+    -- * Capability
+    Capability (..),
+
+    -- * Status
+    Status (..),
+
+    -- * ApplicationDependencySummary
+    ApplicationDependencySummary (..),
+    newApplicationDependencySummary,
+    applicationDependencySummary_applicationId,
+    applicationDependencySummary_semanticVersion,
+
+    -- * ApplicationPolicyStatement
+    ApplicationPolicyStatement (..),
+    newApplicationPolicyStatement,
+    applicationPolicyStatement_principalOrgIDs,
+    applicationPolicyStatement_statementId,
+    applicationPolicyStatement_principals,
+    applicationPolicyStatement_actions,
+
+    -- * ApplicationSummary
+    ApplicationSummary (..),
+    newApplicationSummary,
+    applicationSummary_creationTime,
+    applicationSummary_homePageUrl,
+    applicationSummary_labels,
+    applicationSummary_spdxLicenseId,
+    applicationSummary_description,
+    applicationSummary_author,
+    applicationSummary_applicationId,
+    applicationSummary_name,
+
+    -- * ParameterDefinition
+    ParameterDefinition (..),
+    newParameterDefinition,
+    parameterDefinition_allowedPattern,
+    parameterDefinition_allowedValues,
+    parameterDefinition_constraintDescription,
+    parameterDefinition_defaultValue,
+    parameterDefinition_description,
+    parameterDefinition_maxLength,
+    parameterDefinition_maxValue,
+    parameterDefinition_minLength,
+    parameterDefinition_minValue,
+    parameterDefinition_noEcho,
+    parameterDefinition_type,
+    parameterDefinition_referencedByResources,
+    parameterDefinition_name,
+
+    -- * ParameterValue
+    ParameterValue (..),
+    newParameterValue,
+    parameterValue_value,
+    parameterValue_name,
+
+    -- * RollbackConfiguration
+    RollbackConfiguration (..),
+    newRollbackConfiguration,
+    rollbackConfiguration_monitoringTimeInMinutes,
+    rollbackConfiguration_rollbackTriggers,
+
+    -- * RollbackTrigger
+    RollbackTrigger (..),
+    newRollbackTrigger,
+    rollbackTrigger_type,
+    rollbackTrigger_arn,
+
+    -- * Tag
+    Tag (..),
+    newTag,
+    tag_value,
+    tag_key,
+
+    -- * Version
+    Version (..),
+    newVersion,
+    version_sourceCodeArchiveUrl,
+    version_sourceCodeUrl,
+    version_templateUrl,
+    version_parameterDefinitions,
+    version_resourcesSupported,
+    version_creationTime,
+    version_requiredCapabilities,
+    version_applicationId,
+    version_semanticVersion,
+
+    -- * VersionSummary
+    VersionSummary (..),
+    newVersionSummary,
+    versionSummary_sourceCodeUrl,
+    versionSummary_creationTime,
+    versionSummary_applicationId,
+    versionSummary_semanticVersion,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Prelude as Prelude
+import Amazonka.ServerlessApplicationRepository.Types.ApplicationDependencySummary
+import Amazonka.ServerlessApplicationRepository.Types.ApplicationPolicyStatement
+import Amazonka.ServerlessApplicationRepository.Types.ApplicationSummary
+import Amazonka.ServerlessApplicationRepository.Types.Capability
+import Amazonka.ServerlessApplicationRepository.Types.ParameterDefinition
+import Amazonka.ServerlessApplicationRepository.Types.ParameterValue
+import Amazonka.ServerlessApplicationRepository.Types.RollbackConfiguration
+import Amazonka.ServerlessApplicationRepository.Types.RollbackTrigger
+import Amazonka.ServerlessApplicationRepository.Types.Status
+import Amazonka.ServerlessApplicationRepository.Types.Tag
+import Amazonka.ServerlessApplicationRepository.Types.Version
+import Amazonka.ServerlessApplicationRepository.Types.VersionSummary
+import qualified Amazonka.Sign.V4 as Sign
+
+-- | API version @2017-09-08@ of the Amazon ServerlessApplicationRepository SDK configuration.
+defaultService :: Core.Service
+defaultService =
+  Core.Service
+    { Core.abbrev =
+        "ServerlessApplicationRepository",
+      Core.signer = Sign.v4,
+      Core.endpointPrefix = "serverlessrepo",
+      Core.signingName = "serverlessrepo",
+      Core.version = "2017-09-08",
+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,
+      Core.endpoint = Core.defaultEndpoint defaultService,
+      Core.timeout = Prelude.Just 70,
+      Core.check = Core.statusSuccess,
+      Core.error =
+        Core.parseJSONError
+          "ServerlessApplicationRepository",
+      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
+
+-- | One of the parameters in the request is invalid.
+_BadRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_BadRequestException =
+  Core._MatchServiceError
+    defaultService
+    "BadRequestException"
+    Prelude.. Core.hasStatus 400
+
+-- | The resource already exists.
+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ConflictException =
+  Core._MatchServiceError
+    defaultService
+    "ConflictException"
+    Prelude.. Core.hasStatus 409
+
+-- | The client is not authenticated.
+_ForbiddenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ForbiddenException =
+  Core._MatchServiceError
+    defaultService
+    "ForbiddenException"
+    Prelude.. Core.hasStatus 403
+
+-- | The AWS Serverless Application Repository service encountered an
+-- internal error.
+_InternalServerErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InternalServerErrorException =
+  Core._MatchServiceError
+    defaultService
+    "InternalServerErrorException"
+    Prelude.. Core.hasStatus 500
+
+-- | The resource (for example, an access policy statement) specified in the
+-- request doesn\'t exist.
+_NotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_NotFoundException =
+  Core._MatchServiceError
+    defaultService
+    "NotFoundException"
+    Prelude.. Core.hasStatus 404
+
+-- | The client is sending more than the allowed number of requests per unit
+-- of time.
+_TooManyRequestsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_TooManyRequestsException =
+  Core._MatchServiceError
+    defaultService
+    "TooManyRequestsException"
+    Prelude.. Core.hasStatus 429
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types/ApplicationDependencySummary.hs b/gen/Amazonka/ServerlessApplicationRepository/Types/ApplicationDependencySummary.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types/ApplicationDependencySummary.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.ServerlessApplicationRepository.Types.ApplicationDependencySummary
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.ServerlessApplicationRepository.Types.ApplicationDependencySummary 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 nested application summary.
+--
+-- /See:/ 'newApplicationDependencySummary' smart constructor.
+data ApplicationDependencySummary = ApplicationDependencySummary'
+  { -- | The Amazon Resource Name (ARN) of the nested application.
+    applicationId :: Prelude.Text,
+    -- | The semantic version of the nested application.
+    semanticVersion :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationDependencySummary' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationId', 'applicationDependencySummary_applicationId' - The Amazon Resource Name (ARN) of the nested application.
+--
+-- 'semanticVersion', 'applicationDependencySummary_semanticVersion' - The semantic version of the nested application.
+newApplicationDependencySummary ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  -- | 'semanticVersion'
+  Prelude.Text ->
+  ApplicationDependencySummary
+newApplicationDependencySummary
+  pApplicationId_
+  pSemanticVersion_ =
+    ApplicationDependencySummary'
+      { applicationId =
+          pApplicationId_,
+        semanticVersion = pSemanticVersion_
+      }
+
+-- | The Amazon Resource Name (ARN) of the nested application.
+applicationDependencySummary_applicationId :: Lens.Lens' ApplicationDependencySummary Prelude.Text
+applicationDependencySummary_applicationId = Lens.lens (\ApplicationDependencySummary' {applicationId} -> applicationId) (\s@ApplicationDependencySummary' {} a -> s {applicationId = a} :: ApplicationDependencySummary)
+
+-- | The semantic version of the nested application.
+applicationDependencySummary_semanticVersion :: Lens.Lens' ApplicationDependencySummary Prelude.Text
+applicationDependencySummary_semanticVersion = Lens.lens (\ApplicationDependencySummary' {semanticVersion} -> semanticVersion) (\s@ApplicationDependencySummary' {} a -> s {semanticVersion = a} :: ApplicationDependencySummary)
+
+instance Data.FromJSON ApplicationDependencySummary where
+  parseJSON =
+    Data.withObject
+      "ApplicationDependencySummary"
+      ( \x ->
+          ApplicationDependencySummary'
+            Prelude.<$> (x Data..: "applicationId")
+            Prelude.<*> (x Data..: "semanticVersion")
+      )
+
+instance
+  Prelude.Hashable
+    ApplicationDependencySummary
+  where
+  hashWithSalt _salt ApplicationDependencySummary' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationId
+      `Prelude.hashWithSalt` semanticVersion
+
+instance Prelude.NFData ApplicationDependencySummary where
+  rnf ApplicationDependencySummary' {..} =
+    Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf semanticVersion
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types/ApplicationPolicyStatement.hs b/gen/Amazonka/ServerlessApplicationRepository/Types/ApplicationPolicyStatement.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types/ApplicationPolicyStatement.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.ServerlessApplicationRepository.Types.ApplicationPolicyStatement
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.ServerlessApplicationRepository.Types.ApplicationPolicyStatement 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
+
+-- | Policy statement applied to the application.
+--
+-- /See:/ 'newApplicationPolicyStatement' smart constructor.
+data ApplicationPolicyStatement = ApplicationPolicyStatement'
+  { -- | An array of PrinciplalOrgIDs, which corresponds to AWS IAM
+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#principal-org-id aws:PrincipalOrgID>
+    -- global condition key.
+    principalOrgIDs :: Prelude.Maybe [Prelude.Text],
+    -- | A unique ID for the statement.
+    statementId :: Prelude.Maybe Prelude.Text,
+    -- | An array of AWS account IDs, or * to make the application public.
+    principals :: [Prelude.Text],
+    -- | For the list of actions supported for this operation, see
+    -- <https://docs.aws.amazon.com/serverlessrepo/latest/devguide/access-control-resource-based.html#application-permissions Application Permissions>.
+    actions :: [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApplicationPolicyStatement' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'principalOrgIDs', 'applicationPolicyStatement_principalOrgIDs' - An array of PrinciplalOrgIDs, which corresponds to AWS IAM
+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#principal-org-id aws:PrincipalOrgID>
+-- global condition key.
+--
+-- 'statementId', 'applicationPolicyStatement_statementId' - A unique ID for the statement.
+--
+-- 'principals', 'applicationPolicyStatement_principals' - An array of AWS account IDs, or * to make the application public.
+--
+-- 'actions', 'applicationPolicyStatement_actions' - For the list of actions supported for this operation, see
+-- <https://docs.aws.amazon.com/serverlessrepo/latest/devguide/access-control-resource-based.html#application-permissions Application Permissions>.
+newApplicationPolicyStatement ::
+  ApplicationPolicyStatement
+newApplicationPolicyStatement =
+  ApplicationPolicyStatement'
+    { principalOrgIDs =
+        Prelude.Nothing,
+      statementId = Prelude.Nothing,
+      principals = Prelude.mempty,
+      actions = Prelude.mempty
+    }
+
+-- | An array of PrinciplalOrgIDs, which corresponds to AWS IAM
+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#principal-org-id aws:PrincipalOrgID>
+-- global condition key.
+applicationPolicyStatement_principalOrgIDs :: Lens.Lens' ApplicationPolicyStatement (Prelude.Maybe [Prelude.Text])
+applicationPolicyStatement_principalOrgIDs = Lens.lens (\ApplicationPolicyStatement' {principalOrgIDs} -> principalOrgIDs) (\s@ApplicationPolicyStatement' {} a -> s {principalOrgIDs = a} :: ApplicationPolicyStatement) Prelude.. Lens.mapping Lens.coerced
+
+-- | A unique ID for the statement.
+applicationPolicyStatement_statementId :: Lens.Lens' ApplicationPolicyStatement (Prelude.Maybe Prelude.Text)
+applicationPolicyStatement_statementId = Lens.lens (\ApplicationPolicyStatement' {statementId} -> statementId) (\s@ApplicationPolicyStatement' {} a -> s {statementId = a} :: ApplicationPolicyStatement)
+
+-- | An array of AWS account IDs, or * to make the application public.
+applicationPolicyStatement_principals :: Lens.Lens' ApplicationPolicyStatement [Prelude.Text]
+applicationPolicyStatement_principals = Lens.lens (\ApplicationPolicyStatement' {principals} -> principals) (\s@ApplicationPolicyStatement' {} a -> s {principals = a} :: ApplicationPolicyStatement) Prelude.. Lens.coerced
+
+-- | For the list of actions supported for this operation, see
+-- <https://docs.aws.amazon.com/serverlessrepo/latest/devguide/access-control-resource-based.html#application-permissions Application Permissions>.
+applicationPolicyStatement_actions :: Lens.Lens' ApplicationPolicyStatement [Prelude.Text]
+applicationPolicyStatement_actions = Lens.lens (\ApplicationPolicyStatement' {actions} -> actions) (\s@ApplicationPolicyStatement' {} a -> s {actions = a} :: ApplicationPolicyStatement) Prelude.. Lens.coerced
+
+instance Data.FromJSON ApplicationPolicyStatement where
+  parseJSON =
+    Data.withObject
+      "ApplicationPolicyStatement"
+      ( \x ->
+          ApplicationPolicyStatement'
+            Prelude.<$> ( x
+                            Data..:? "principalOrgIDs"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "statementId")
+            Prelude.<*> (x Data..:? "principals" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "actions" Data..!= Prelude.mempty)
+      )
+
+instance Prelude.Hashable ApplicationPolicyStatement where
+  hashWithSalt _salt ApplicationPolicyStatement' {..} =
+    _salt
+      `Prelude.hashWithSalt` principalOrgIDs
+      `Prelude.hashWithSalt` statementId
+      `Prelude.hashWithSalt` principals
+      `Prelude.hashWithSalt` actions
+
+instance Prelude.NFData ApplicationPolicyStatement where
+  rnf ApplicationPolicyStatement' {..} =
+    Prelude.rnf principalOrgIDs
+      `Prelude.seq` Prelude.rnf statementId
+      `Prelude.seq` Prelude.rnf principals
+      `Prelude.seq` Prelude.rnf actions
+
+instance Data.ToJSON ApplicationPolicyStatement where
+  toJSON ApplicationPolicyStatement' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("principalOrgIDs" Data..=)
+              Prelude.<$> principalOrgIDs,
+            ("statementId" Data..=) Prelude.<$> statementId,
+            Prelude.Just ("principals" Data..= principals),
+            Prelude.Just ("actions" Data..= actions)
+          ]
+      )
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types/ApplicationSummary.hs b/gen/Amazonka/ServerlessApplicationRepository/Types/ApplicationSummary.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types/ApplicationSummary.hs
@@ -0,0 +1,213 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.ServerlessApplicationRepository.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.ServerlessApplicationRepository.Types.ApplicationSummary 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
+
+-- | Summary of details about the application.
+--
+-- /See:/ 'newApplicationSummary' smart constructor.
+data ApplicationSummary = ApplicationSummary'
+  { -- | The date and time this resource was created.
+    creationTime :: Prelude.Maybe Prelude.Text,
+    -- | A URL with more information about the application, for example the
+    -- location of your GitHub repository for the application.
+    homePageUrl :: Prelude.Maybe Prelude.Text,
+    -- | Labels to improve discovery of apps in search results.
+    --
+    -- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+    --
+    -- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+    labels :: Prelude.Maybe [Prelude.Text],
+    -- | A valid identifier from <https://spdx.org/licenses/>.
+    spdxLicenseId :: Prelude.Maybe Prelude.Text,
+    -- | The description of the application.
+    --
+    -- Minimum length=1. Maximum length=256
+    description :: Prelude.Text,
+    -- | The name of the author publishing the app.
+    --
+    -- Minimum length=1. Maximum length=127.
+    --
+    -- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+    author :: Prelude.Text,
+    -- | The application Amazon Resource Name (ARN).
+    applicationId :: Prelude.Text,
+    -- | The name of the application.
+    --
+    -- Minimum length=1. Maximum length=140
+    --
+    -- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+    name :: Prelude.Text
+  }
+  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:
+--
+-- 'creationTime', 'applicationSummary_creationTime' - The date and time this resource was created.
+--
+-- 'homePageUrl', 'applicationSummary_homePageUrl' - A URL with more information about the application, for example the
+-- location of your GitHub repository for the application.
+--
+-- 'labels', 'applicationSummary_labels' - Labels to improve discovery of apps in search results.
+--
+-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+--
+-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+--
+-- 'spdxLicenseId', 'applicationSummary_spdxLicenseId' - A valid identifier from <https://spdx.org/licenses/>.
+--
+-- 'description', 'applicationSummary_description' - The description of the application.
+--
+-- Minimum length=1. Maximum length=256
+--
+-- 'author', 'applicationSummary_author' - The name of the author publishing the app.
+--
+-- Minimum length=1. Maximum length=127.
+--
+-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+--
+-- 'applicationId', 'applicationSummary_applicationId' - The application Amazon Resource Name (ARN).
+--
+-- 'name', 'applicationSummary_name' - The name of the application.
+--
+-- Minimum length=1. Maximum length=140
+--
+-- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+newApplicationSummary ::
+  -- | 'description'
+  Prelude.Text ->
+  -- | 'author'
+  Prelude.Text ->
+  -- | 'applicationId'
+  Prelude.Text ->
+  -- | 'name'
+  Prelude.Text ->
+  ApplicationSummary
+newApplicationSummary
+  pDescription_
+  pAuthor_
+  pApplicationId_
+  pName_ =
+    ApplicationSummary'
+      { creationTime = Prelude.Nothing,
+        homePageUrl = Prelude.Nothing,
+        labels = Prelude.Nothing,
+        spdxLicenseId = Prelude.Nothing,
+        description = pDescription_,
+        author = pAuthor_,
+        applicationId = pApplicationId_,
+        name = pName_
+      }
+
+-- | The date and time this resource was created.
+applicationSummary_creationTime :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)
+applicationSummary_creationTime = Lens.lens (\ApplicationSummary' {creationTime} -> creationTime) (\s@ApplicationSummary' {} a -> s {creationTime = a} :: ApplicationSummary)
+
+-- | A URL with more information about the application, for example the
+-- location of your GitHub repository for the application.
+applicationSummary_homePageUrl :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)
+applicationSummary_homePageUrl = Lens.lens (\ApplicationSummary' {homePageUrl} -> homePageUrl) (\s@ApplicationSummary' {} a -> s {homePageUrl = a} :: ApplicationSummary)
+
+-- | Labels to improve discovery of apps in search results.
+--
+-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+--
+-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+applicationSummary_labels :: Lens.Lens' ApplicationSummary (Prelude.Maybe [Prelude.Text])
+applicationSummary_labels = Lens.lens (\ApplicationSummary' {labels} -> labels) (\s@ApplicationSummary' {} a -> s {labels = a} :: ApplicationSummary) Prelude.. Lens.mapping Lens.coerced
+
+-- | A valid identifier from <https://spdx.org/licenses/>.
+applicationSummary_spdxLicenseId :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)
+applicationSummary_spdxLicenseId = Lens.lens (\ApplicationSummary' {spdxLicenseId} -> spdxLicenseId) (\s@ApplicationSummary' {} a -> s {spdxLicenseId = a} :: ApplicationSummary)
+
+-- | The description of the application.
+--
+-- Minimum length=1. Maximum length=256
+applicationSummary_description :: Lens.Lens' ApplicationSummary Prelude.Text
+applicationSummary_description = Lens.lens (\ApplicationSummary' {description} -> description) (\s@ApplicationSummary' {} a -> s {description = a} :: ApplicationSummary)
+
+-- | The name of the author publishing the app.
+--
+-- Minimum length=1. Maximum length=127.
+--
+-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+applicationSummary_author :: Lens.Lens' ApplicationSummary Prelude.Text
+applicationSummary_author = Lens.lens (\ApplicationSummary' {author} -> author) (\s@ApplicationSummary' {} a -> s {author = a} :: ApplicationSummary)
+
+-- | The application Amazon Resource Name (ARN).
+applicationSummary_applicationId :: Lens.Lens' ApplicationSummary Prelude.Text
+applicationSummary_applicationId = Lens.lens (\ApplicationSummary' {applicationId} -> applicationId) (\s@ApplicationSummary' {} a -> s {applicationId = a} :: ApplicationSummary)
+
+-- | The name of the application.
+--
+-- Minimum length=1. Maximum length=140
+--
+-- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+applicationSummary_name :: Lens.Lens' ApplicationSummary Prelude.Text
+applicationSummary_name = Lens.lens (\ApplicationSummary' {name} -> name) (\s@ApplicationSummary' {} a -> s {name = a} :: ApplicationSummary)
+
+instance Data.FromJSON ApplicationSummary where
+  parseJSON =
+    Data.withObject
+      "ApplicationSummary"
+      ( \x ->
+          ApplicationSummary'
+            Prelude.<$> (x Data..:? "creationTime")
+            Prelude.<*> (x Data..:? "homePageUrl")
+            Prelude.<*> (x Data..:? "labels" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "spdxLicenseId")
+            Prelude.<*> (x Data..: "description")
+            Prelude.<*> (x Data..: "author")
+            Prelude.<*> (x Data..: "applicationId")
+            Prelude.<*> (x Data..: "name")
+      )
+
+instance Prelude.Hashable ApplicationSummary where
+  hashWithSalt _salt ApplicationSummary' {..} =
+    _salt
+      `Prelude.hashWithSalt` creationTime
+      `Prelude.hashWithSalt` homePageUrl
+      `Prelude.hashWithSalt` labels
+      `Prelude.hashWithSalt` spdxLicenseId
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` author
+      `Prelude.hashWithSalt` applicationId
+      `Prelude.hashWithSalt` name
+
+instance Prelude.NFData ApplicationSummary where
+  rnf ApplicationSummary' {..} =
+    Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf homePageUrl
+      `Prelude.seq` Prelude.rnf labels
+      `Prelude.seq` Prelude.rnf spdxLicenseId
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf author
+      `Prelude.seq` Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf name
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types/Capability.hs b/gen/Amazonka/ServerlessApplicationRepository/Types/Capability.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types/Capability.hs
@@ -0,0 +1,82 @@
+{-# 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.ServerlessApplicationRepository.Types.Capability
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.ServerlessApplicationRepository.Types.Capability
+  ( Capability
+      ( ..,
+        Capability_CAPABILITY_AUTO_EXPAND,
+        Capability_CAPABILITY_IAM,
+        Capability_CAPABILITY_NAMED_IAM,
+        Capability_CAPABILITY_RESOURCE_POLICY
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Values that must be specified in order to deploy some applications.
+newtype Capability = Capability'
+  { fromCapability ::
+      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 Capability_CAPABILITY_AUTO_EXPAND :: Capability
+pattern Capability_CAPABILITY_AUTO_EXPAND = Capability' "CAPABILITY_AUTO_EXPAND"
+
+pattern Capability_CAPABILITY_IAM :: Capability
+pattern Capability_CAPABILITY_IAM = Capability' "CAPABILITY_IAM"
+
+pattern Capability_CAPABILITY_NAMED_IAM :: Capability
+pattern Capability_CAPABILITY_NAMED_IAM = Capability' "CAPABILITY_NAMED_IAM"
+
+pattern Capability_CAPABILITY_RESOURCE_POLICY :: Capability
+pattern Capability_CAPABILITY_RESOURCE_POLICY = Capability' "CAPABILITY_RESOURCE_POLICY"
+
+{-# COMPLETE
+  Capability_CAPABILITY_AUTO_EXPAND,
+  Capability_CAPABILITY_IAM,
+  Capability_CAPABILITY_NAMED_IAM,
+  Capability_CAPABILITY_RESOURCE_POLICY,
+  Capability'
+  #-}
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types/ParameterDefinition.hs b/gen/Amazonka/ServerlessApplicationRepository/Types/ParameterDefinition.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types/ParameterDefinition.hs
@@ -0,0 +1,372 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.ServerlessApplicationRepository.Types.ParameterDefinition
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.ServerlessApplicationRepository.Types.ParameterDefinition 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
+
+-- | Parameters supported by the application.
+--
+-- /See:/ 'newParameterDefinition' smart constructor.
+data ParameterDefinition = ParameterDefinition'
+  { -- | A regular expression that represents the patterns to allow for String
+    -- types.
+    allowedPattern :: Prelude.Maybe Prelude.Text,
+    -- | An array containing the list of values allowed for the parameter.
+    allowedValues :: Prelude.Maybe [Prelude.Text],
+    -- | A string that explains a constraint when the constraint is violated. For
+    -- example, without a constraint description, a parameter that has an
+    -- allowed pattern of [A-Za-z0-9]+ displays the following error message
+    -- when the user specifies an invalid value:
+    --
+    -- Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+
+    --
+    -- By adding a constraint description, such as \"must contain only
+    -- uppercase and lowercase letters and numbers,\" you can display the
+    -- following customized error message:
+    --
+    -- Malformed input-Parameter MyParameter must contain only uppercase and
+    -- lowercase letters and numbers.
+    constraintDescription :: Prelude.Maybe Prelude.Text,
+    -- | A value of the appropriate type for the template to use if no value is
+    -- specified when a stack is created. If you define constraints for the
+    -- parameter, you must specify a value that adheres to those constraints.
+    defaultValue :: Prelude.Maybe Prelude.Text,
+    -- | A string of up to 4,000 characters that describes the parameter.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | An integer value that determines the largest number of characters that
+    -- you want to allow for String types.
+    maxLength :: Prelude.Maybe Prelude.Int,
+    -- | A numeric value that determines the largest numeric value that you want
+    -- to allow for Number types.
+    maxValue :: Prelude.Maybe Prelude.Int,
+    -- | An integer value that determines the smallest number of characters that
+    -- you want to allow for String types.
+    minLength :: Prelude.Maybe Prelude.Int,
+    -- | A numeric value that determines the smallest numeric value that you want
+    -- to allow for Number types.
+    minValue :: Prelude.Maybe Prelude.Int,
+    -- | Whether to mask the parameter value whenever anyone makes a call that
+    -- describes the stack. If you set the value to true, the parameter value
+    -- is masked with asterisks (*****).
+    noEcho :: Prelude.Maybe Prelude.Bool,
+    -- | The type of the parameter.
+    --
+    -- Valid values: String | Number | List\<Number> | CommaDelimitedList
+    --
+    -- String: A literal string.
+    --
+    -- For example, users can specify \"MyUserName\".
+    --
+    -- Number: An integer or float. AWS CloudFormation validates the parameter
+    -- value as a number. However, when you use the parameter elsewhere in your
+    -- template (for example, by using the Ref intrinsic function), the
+    -- parameter value becomes a string.
+    --
+    -- For example, users might specify \"8888\".
+    --
+    -- List\<Number>: An array of integers or floats that are separated by
+    -- commas. AWS CloudFormation validates the parameter value as numbers.
+    -- However, when you use the parameter elsewhere in your template (for
+    -- example, by using the Ref intrinsic function), the parameter value
+    -- becomes a list of strings.
+    --
+    -- For example, users might specify \"80,20\", and then Ref results in
+    -- [\"80\",\"20\"].
+    --
+    -- CommaDelimitedList: An array of literal strings that are separated by
+    -- commas. The total number of strings should be one more than the total
+    -- number of commas. Also, each member string is space-trimmed.
+    --
+    -- For example, users might specify \"test,dev,prod\", and then Ref results
+    -- in [\"test\",\"dev\",\"prod\"].
+    type' :: Prelude.Maybe Prelude.Text,
+    -- | A list of AWS SAM resources that use this parameter.
+    referencedByResources :: [Prelude.Text],
+    -- | The name of the parameter.
+    name :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ParameterDefinition' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'allowedPattern', 'parameterDefinition_allowedPattern' - A regular expression that represents the patterns to allow for String
+-- types.
+--
+-- 'allowedValues', 'parameterDefinition_allowedValues' - An array containing the list of values allowed for the parameter.
+--
+-- 'constraintDescription', 'parameterDefinition_constraintDescription' - A string that explains a constraint when the constraint is violated. For
+-- example, without a constraint description, a parameter that has an
+-- allowed pattern of [A-Za-z0-9]+ displays the following error message
+-- when the user specifies an invalid value:
+--
+-- Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+
+--
+-- By adding a constraint description, such as \"must contain only
+-- uppercase and lowercase letters and numbers,\" you can display the
+-- following customized error message:
+--
+-- Malformed input-Parameter MyParameter must contain only uppercase and
+-- lowercase letters and numbers.
+--
+-- 'defaultValue', 'parameterDefinition_defaultValue' - A value of the appropriate type for the template to use if no value is
+-- specified when a stack is created. If you define constraints for the
+-- parameter, you must specify a value that adheres to those constraints.
+--
+-- 'description', 'parameterDefinition_description' - A string of up to 4,000 characters that describes the parameter.
+--
+-- 'maxLength', 'parameterDefinition_maxLength' - An integer value that determines the largest number of characters that
+-- you want to allow for String types.
+--
+-- 'maxValue', 'parameterDefinition_maxValue' - A numeric value that determines the largest numeric value that you want
+-- to allow for Number types.
+--
+-- 'minLength', 'parameterDefinition_minLength' - An integer value that determines the smallest number of characters that
+-- you want to allow for String types.
+--
+-- 'minValue', 'parameterDefinition_minValue' - A numeric value that determines the smallest numeric value that you want
+-- to allow for Number types.
+--
+-- 'noEcho', 'parameterDefinition_noEcho' - Whether to mask the parameter value whenever anyone makes a call that
+-- describes the stack. If you set the value to true, the parameter value
+-- is masked with asterisks (*****).
+--
+-- 'type'', 'parameterDefinition_type' - The type of the parameter.
+--
+-- Valid values: String | Number | List\<Number> | CommaDelimitedList
+--
+-- String: A literal string.
+--
+-- For example, users can specify \"MyUserName\".
+--
+-- Number: An integer or float. AWS CloudFormation validates the parameter
+-- value as a number. However, when you use the parameter elsewhere in your
+-- template (for example, by using the Ref intrinsic function), the
+-- parameter value becomes a string.
+--
+-- For example, users might specify \"8888\".
+--
+-- List\<Number>: An array of integers or floats that are separated by
+-- commas. AWS CloudFormation validates the parameter value as numbers.
+-- However, when you use the parameter elsewhere in your template (for
+-- example, by using the Ref intrinsic function), the parameter value
+-- becomes a list of strings.
+--
+-- For example, users might specify \"80,20\", and then Ref results in
+-- [\"80\",\"20\"].
+--
+-- CommaDelimitedList: An array of literal strings that are separated by
+-- commas. The total number of strings should be one more than the total
+-- number of commas. Also, each member string is space-trimmed.
+--
+-- For example, users might specify \"test,dev,prod\", and then Ref results
+-- in [\"test\",\"dev\",\"prod\"].
+--
+-- 'referencedByResources', 'parameterDefinition_referencedByResources' - A list of AWS SAM resources that use this parameter.
+--
+-- 'name', 'parameterDefinition_name' - The name of the parameter.
+newParameterDefinition ::
+  -- | 'name'
+  Prelude.Text ->
+  ParameterDefinition
+newParameterDefinition pName_ =
+  ParameterDefinition'
+    { allowedPattern =
+        Prelude.Nothing,
+      allowedValues = Prelude.Nothing,
+      constraintDescription = Prelude.Nothing,
+      defaultValue = Prelude.Nothing,
+      description = Prelude.Nothing,
+      maxLength = Prelude.Nothing,
+      maxValue = Prelude.Nothing,
+      minLength = Prelude.Nothing,
+      minValue = Prelude.Nothing,
+      noEcho = Prelude.Nothing,
+      type' = Prelude.Nothing,
+      referencedByResources = Prelude.mempty,
+      name = pName_
+    }
+
+-- | A regular expression that represents the patterns to allow for String
+-- types.
+parameterDefinition_allowedPattern :: Lens.Lens' ParameterDefinition (Prelude.Maybe Prelude.Text)
+parameterDefinition_allowedPattern = Lens.lens (\ParameterDefinition' {allowedPattern} -> allowedPattern) (\s@ParameterDefinition' {} a -> s {allowedPattern = a} :: ParameterDefinition)
+
+-- | An array containing the list of values allowed for the parameter.
+parameterDefinition_allowedValues :: Lens.Lens' ParameterDefinition (Prelude.Maybe [Prelude.Text])
+parameterDefinition_allowedValues = Lens.lens (\ParameterDefinition' {allowedValues} -> allowedValues) (\s@ParameterDefinition' {} a -> s {allowedValues = a} :: ParameterDefinition) Prelude.. Lens.mapping Lens.coerced
+
+-- | A string that explains a constraint when the constraint is violated. For
+-- example, without a constraint description, a parameter that has an
+-- allowed pattern of [A-Za-z0-9]+ displays the following error message
+-- when the user specifies an invalid value:
+--
+-- Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+
+--
+-- By adding a constraint description, such as \"must contain only
+-- uppercase and lowercase letters and numbers,\" you can display the
+-- following customized error message:
+--
+-- Malformed input-Parameter MyParameter must contain only uppercase and
+-- lowercase letters and numbers.
+parameterDefinition_constraintDescription :: Lens.Lens' ParameterDefinition (Prelude.Maybe Prelude.Text)
+parameterDefinition_constraintDescription = Lens.lens (\ParameterDefinition' {constraintDescription} -> constraintDescription) (\s@ParameterDefinition' {} a -> s {constraintDescription = a} :: ParameterDefinition)
+
+-- | A value of the appropriate type for the template to use if no value is
+-- specified when a stack is created. If you define constraints for the
+-- parameter, you must specify a value that adheres to those constraints.
+parameterDefinition_defaultValue :: Lens.Lens' ParameterDefinition (Prelude.Maybe Prelude.Text)
+parameterDefinition_defaultValue = Lens.lens (\ParameterDefinition' {defaultValue} -> defaultValue) (\s@ParameterDefinition' {} a -> s {defaultValue = a} :: ParameterDefinition)
+
+-- | A string of up to 4,000 characters that describes the parameter.
+parameterDefinition_description :: Lens.Lens' ParameterDefinition (Prelude.Maybe Prelude.Text)
+parameterDefinition_description = Lens.lens (\ParameterDefinition' {description} -> description) (\s@ParameterDefinition' {} a -> s {description = a} :: ParameterDefinition)
+
+-- | An integer value that determines the largest number of characters that
+-- you want to allow for String types.
+parameterDefinition_maxLength :: Lens.Lens' ParameterDefinition (Prelude.Maybe Prelude.Int)
+parameterDefinition_maxLength = Lens.lens (\ParameterDefinition' {maxLength} -> maxLength) (\s@ParameterDefinition' {} a -> s {maxLength = a} :: ParameterDefinition)
+
+-- | A numeric value that determines the largest numeric value that you want
+-- to allow for Number types.
+parameterDefinition_maxValue :: Lens.Lens' ParameterDefinition (Prelude.Maybe Prelude.Int)
+parameterDefinition_maxValue = Lens.lens (\ParameterDefinition' {maxValue} -> maxValue) (\s@ParameterDefinition' {} a -> s {maxValue = a} :: ParameterDefinition)
+
+-- | An integer value that determines the smallest number of characters that
+-- you want to allow for String types.
+parameterDefinition_minLength :: Lens.Lens' ParameterDefinition (Prelude.Maybe Prelude.Int)
+parameterDefinition_minLength = Lens.lens (\ParameterDefinition' {minLength} -> minLength) (\s@ParameterDefinition' {} a -> s {minLength = a} :: ParameterDefinition)
+
+-- | A numeric value that determines the smallest numeric value that you want
+-- to allow for Number types.
+parameterDefinition_minValue :: Lens.Lens' ParameterDefinition (Prelude.Maybe Prelude.Int)
+parameterDefinition_minValue = Lens.lens (\ParameterDefinition' {minValue} -> minValue) (\s@ParameterDefinition' {} a -> s {minValue = a} :: ParameterDefinition)
+
+-- | Whether to mask the parameter value whenever anyone makes a call that
+-- describes the stack. If you set the value to true, the parameter value
+-- is masked with asterisks (*****).
+parameterDefinition_noEcho :: Lens.Lens' ParameterDefinition (Prelude.Maybe Prelude.Bool)
+parameterDefinition_noEcho = Lens.lens (\ParameterDefinition' {noEcho} -> noEcho) (\s@ParameterDefinition' {} a -> s {noEcho = a} :: ParameterDefinition)
+
+-- | The type of the parameter.
+--
+-- Valid values: String | Number | List\<Number> | CommaDelimitedList
+--
+-- String: A literal string.
+--
+-- For example, users can specify \"MyUserName\".
+--
+-- Number: An integer or float. AWS CloudFormation validates the parameter
+-- value as a number. However, when you use the parameter elsewhere in your
+-- template (for example, by using the Ref intrinsic function), the
+-- parameter value becomes a string.
+--
+-- For example, users might specify \"8888\".
+--
+-- List\<Number>: An array of integers or floats that are separated by
+-- commas. AWS CloudFormation validates the parameter value as numbers.
+-- However, when you use the parameter elsewhere in your template (for
+-- example, by using the Ref intrinsic function), the parameter value
+-- becomes a list of strings.
+--
+-- For example, users might specify \"80,20\", and then Ref results in
+-- [\"80\",\"20\"].
+--
+-- CommaDelimitedList: An array of literal strings that are separated by
+-- commas. The total number of strings should be one more than the total
+-- number of commas. Also, each member string is space-trimmed.
+--
+-- For example, users might specify \"test,dev,prod\", and then Ref results
+-- in [\"test\",\"dev\",\"prod\"].
+parameterDefinition_type :: Lens.Lens' ParameterDefinition (Prelude.Maybe Prelude.Text)
+parameterDefinition_type = Lens.lens (\ParameterDefinition' {type'} -> type') (\s@ParameterDefinition' {} a -> s {type' = a} :: ParameterDefinition)
+
+-- | A list of AWS SAM resources that use this parameter.
+parameterDefinition_referencedByResources :: Lens.Lens' ParameterDefinition [Prelude.Text]
+parameterDefinition_referencedByResources = Lens.lens (\ParameterDefinition' {referencedByResources} -> referencedByResources) (\s@ParameterDefinition' {} a -> s {referencedByResources = a} :: ParameterDefinition) Prelude.. Lens.coerced
+
+-- | The name of the parameter.
+parameterDefinition_name :: Lens.Lens' ParameterDefinition Prelude.Text
+parameterDefinition_name = Lens.lens (\ParameterDefinition' {name} -> name) (\s@ParameterDefinition' {} a -> s {name = a} :: ParameterDefinition)
+
+instance Data.FromJSON ParameterDefinition where
+  parseJSON =
+    Data.withObject
+      "ParameterDefinition"
+      ( \x ->
+          ParameterDefinition'
+            Prelude.<$> (x Data..:? "allowedPattern")
+            Prelude.<*> (x Data..:? "allowedValues" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "constraintDescription")
+            Prelude.<*> (x Data..:? "defaultValue")
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "maxLength")
+            Prelude.<*> (x Data..:? "maxValue")
+            Prelude.<*> (x Data..:? "minLength")
+            Prelude.<*> (x Data..:? "minValue")
+            Prelude.<*> (x Data..:? "noEcho")
+            Prelude.<*> (x Data..:? "type")
+            Prelude.<*> ( x
+                            Data..:? "referencedByResources"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..: "name")
+      )
+
+instance Prelude.Hashable ParameterDefinition where
+  hashWithSalt _salt ParameterDefinition' {..} =
+    _salt
+      `Prelude.hashWithSalt` allowedPattern
+      `Prelude.hashWithSalt` allowedValues
+      `Prelude.hashWithSalt` constraintDescription
+      `Prelude.hashWithSalt` defaultValue
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` maxLength
+      `Prelude.hashWithSalt` maxValue
+      `Prelude.hashWithSalt` minLength
+      `Prelude.hashWithSalt` minValue
+      `Prelude.hashWithSalt` noEcho
+      `Prelude.hashWithSalt` type'
+      `Prelude.hashWithSalt` referencedByResources
+      `Prelude.hashWithSalt` name
+
+instance Prelude.NFData ParameterDefinition where
+  rnf ParameterDefinition' {..} =
+    Prelude.rnf allowedPattern
+      `Prelude.seq` Prelude.rnf allowedValues
+      `Prelude.seq` Prelude.rnf constraintDescription
+      `Prelude.seq` Prelude.rnf defaultValue
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf maxLength
+      `Prelude.seq` Prelude.rnf maxValue
+      `Prelude.seq` Prelude.rnf minLength
+      `Prelude.seq` Prelude.rnf minValue
+      `Prelude.seq` Prelude.rnf noEcho
+      `Prelude.seq` Prelude.rnf type'
+      `Prelude.seq` Prelude.rnf referencedByResources
+      `Prelude.seq` Prelude.rnf name
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types/ParameterValue.hs b/gen/Amazonka/ServerlessApplicationRepository/Types/ParameterValue.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types/ParameterValue.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.ServerlessApplicationRepository.Types.ParameterValue
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.ServerlessApplicationRepository.Types.ParameterValue 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
+
+-- | Parameter value of the application.
+--
+-- /See:/ 'newParameterValue' smart constructor.
+data ParameterValue = ParameterValue'
+  { -- | The input value associated with the parameter.
+    value :: Prelude.Text,
+    -- | The key associated with the parameter. If you don\'t specify a key and
+    -- value for a particular parameter, AWS CloudFormation uses the default
+    -- value that is specified in your template.
+    name :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ParameterValue' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'parameterValue_value' - The input value associated with the parameter.
+--
+-- 'name', 'parameterValue_name' - The key associated with the parameter. If you don\'t specify a key and
+-- value for a particular parameter, AWS CloudFormation uses the default
+-- value that is specified in your template.
+newParameterValue ::
+  -- | 'value'
+  Prelude.Text ->
+  -- | 'name'
+  Prelude.Text ->
+  ParameterValue
+newParameterValue pValue_ pName_ =
+  ParameterValue' {value = pValue_, name = pName_}
+
+-- | The input value associated with the parameter.
+parameterValue_value :: Lens.Lens' ParameterValue Prelude.Text
+parameterValue_value = Lens.lens (\ParameterValue' {value} -> value) (\s@ParameterValue' {} a -> s {value = a} :: ParameterValue)
+
+-- | The key associated with the parameter. If you don\'t specify a key and
+-- value for a particular parameter, AWS CloudFormation uses the default
+-- value that is specified in your template.
+parameterValue_name :: Lens.Lens' ParameterValue Prelude.Text
+parameterValue_name = Lens.lens (\ParameterValue' {name} -> name) (\s@ParameterValue' {} a -> s {name = a} :: ParameterValue)
+
+instance Prelude.Hashable ParameterValue where
+  hashWithSalt _salt ParameterValue' {..} =
+    _salt
+      `Prelude.hashWithSalt` value
+      `Prelude.hashWithSalt` name
+
+instance Prelude.NFData ParameterValue where
+  rnf ParameterValue' {..} =
+    Prelude.rnf value `Prelude.seq` Prelude.rnf name
+
+instance Data.ToJSON ParameterValue where
+  toJSON ParameterValue' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("value" Data..= value),
+            Prelude.Just ("name" Data..= name)
+          ]
+      )
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types/RollbackConfiguration.hs b/gen/Amazonka/ServerlessApplicationRepository/Types/RollbackConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types/RollbackConfiguration.hs
@@ -0,0 +1,107 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.ServerlessApplicationRepository.Types.RollbackConfiguration
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.ServerlessApplicationRepository.Types.RollbackConfiguration 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
+import Amazonka.ServerlessApplicationRepository.Types.RollbackTrigger
+
+-- | This property corresponds to the /AWS CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration RollbackConfiguration>/
+-- Data Type.
+--
+-- /See:/ 'newRollbackConfiguration' smart constructor.
+data RollbackConfiguration = RollbackConfiguration'
+  { -- | This property corresponds to the content of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration RollbackConfiguration>/
+    -- Data Type.
+    monitoringTimeInMinutes :: Prelude.Maybe Prelude.Int,
+    -- | This property corresponds to the content of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration RollbackConfiguration>/
+    -- Data Type.
+    rollbackTriggers :: Prelude.Maybe [RollbackTrigger]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RollbackConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'monitoringTimeInMinutes', 'rollbackConfiguration_monitoringTimeInMinutes' - This property corresponds to the content of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration RollbackConfiguration>/
+-- Data Type.
+--
+-- 'rollbackTriggers', 'rollbackConfiguration_rollbackTriggers' - This property corresponds to the content of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration RollbackConfiguration>/
+-- Data Type.
+newRollbackConfiguration ::
+  RollbackConfiguration
+newRollbackConfiguration =
+  RollbackConfiguration'
+    { monitoringTimeInMinutes =
+        Prelude.Nothing,
+      rollbackTriggers = Prelude.Nothing
+    }
+
+-- | This property corresponds to the content of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration RollbackConfiguration>/
+-- Data Type.
+rollbackConfiguration_monitoringTimeInMinutes :: Lens.Lens' RollbackConfiguration (Prelude.Maybe Prelude.Int)
+rollbackConfiguration_monitoringTimeInMinutes = Lens.lens (\RollbackConfiguration' {monitoringTimeInMinutes} -> monitoringTimeInMinutes) (\s@RollbackConfiguration' {} a -> s {monitoringTimeInMinutes = a} :: RollbackConfiguration)
+
+-- | This property corresponds to the content of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration RollbackConfiguration>/
+-- Data Type.
+rollbackConfiguration_rollbackTriggers :: Lens.Lens' RollbackConfiguration (Prelude.Maybe [RollbackTrigger])
+rollbackConfiguration_rollbackTriggers = Lens.lens (\RollbackConfiguration' {rollbackTriggers} -> rollbackTriggers) (\s@RollbackConfiguration' {} a -> s {rollbackTriggers = a} :: RollbackConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+instance Prelude.Hashable RollbackConfiguration where
+  hashWithSalt _salt RollbackConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` monitoringTimeInMinutes
+      `Prelude.hashWithSalt` rollbackTriggers
+
+instance Prelude.NFData RollbackConfiguration where
+  rnf RollbackConfiguration' {..} =
+    Prelude.rnf monitoringTimeInMinutes
+      `Prelude.seq` Prelude.rnf rollbackTriggers
+
+instance Data.ToJSON RollbackConfiguration where
+  toJSON RollbackConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("monitoringTimeInMinutes" Data..=)
+              Prelude.<$> monitoringTimeInMinutes,
+            ("rollbackTriggers" Data..=)
+              Prelude.<$> rollbackTriggers
+          ]
+      )
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types/RollbackTrigger.hs b/gen/Amazonka/ServerlessApplicationRepository/Types/RollbackTrigger.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types/RollbackTrigger.hs
@@ -0,0 +1,103 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.ServerlessApplicationRepository.Types.RollbackTrigger
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.ServerlessApplicationRepository.Types.RollbackTrigger where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | This property corresponds to the /AWS CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackTrigger RollbackTrigger>/
+-- Data Type.
+--
+-- /See:/ 'newRollbackTrigger' smart constructor.
+data RollbackTrigger = RollbackTrigger'
+  { -- | This property corresponds to the content of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackTrigger RollbackTrigger>/
+    -- Data Type.
+    type' :: Prelude.Text,
+    -- | This property corresponds to the content of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackTrigger RollbackTrigger>/
+    -- Data Type.
+    arn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RollbackTrigger' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'type'', 'rollbackTrigger_type' - This property corresponds to the content of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackTrigger RollbackTrigger>/
+-- Data Type.
+--
+-- 'arn', 'rollbackTrigger_arn' - This property corresponds to the content of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackTrigger RollbackTrigger>/
+-- Data Type.
+newRollbackTrigger ::
+  -- | 'type''
+  Prelude.Text ->
+  -- | 'arn'
+  Prelude.Text ->
+  RollbackTrigger
+newRollbackTrigger pType_ pArn_ =
+  RollbackTrigger' {type' = pType_, arn = pArn_}
+
+-- | This property corresponds to the content of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackTrigger RollbackTrigger>/
+-- Data Type.
+rollbackTrigger_type :: Lens.Lens' RollbackTrigger Prelude.Text
+rollbackTrigger_type = Lens.lens (\RollbackTrigger' {type'} -> type') (\s@RollbackTrigger' {} a -> s {type' = a} :: RollbackTrigger)
+
+-- | This property corresponds to the content of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackTrigger RollbackTrigger>/
+-- Data Type.
+rollbackTrigger_arn :: Lens.Lens' RollbackTrigger Prelude.Text
+rollbackTrigger_arn = Lens.lens (\RollbackTrigger' {arn} -> arn) (\s@RollbackTrigger' {} a -> s {arn = a} :: RollbackTrigger)
+
+instance Prelude.Hashable RollbackTrigger where
+  hashWithSalt _salt RollbackTrigger' {..} =
+    _salt
+      `Prelude.hashWithSalt` type'
+      `Prelude.hashWithSalt` arn
+
+instance Prelude.NFData RollbackTrigger where
+  rnf RollbackTrigger' {..} =
+    Prelude.rnf type' `Prelude.seq` Prelude.rnf arn
+
+instance Data.ToJSON RollbackTrigger where
+  toJSON RollbackTrigger' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("type" Data..= type'),
+            Prelude.Just ("arn" Data..= arn)
+          ]
+      )
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types/Status.hs b/gen/Amazonka/ServerlessApplicationRepository/Types/Status.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types/Status.hs
@@ -0,0 +1,73 @@
+{-# 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.ServerlessApplicationRepository.Types.Status
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.ServerlessApplicationRepository.Types.Status
+  ( Status
+      ( ..,
+        Status_ACTIVE,
+        Status_EXPIRED,
+        Status_PREPARING
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype Status = Status' {fromStatus :: 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 Status_ACTIVE :: Status
+pattern Status_ACTIVE = Status' "ACTIVE"
+
+pattern Status_EXPIRED :: Status
+pattern Status_EXPIRED = Status' "EXPIRED"
+
+pattern Status_PREPARING :: Status
+pattern Status_PREPARING = Status' "PREPARING"
+
+{-# COMPLETE
+  Status_ACTIVE,
+  Status_EXPIRED,
+  Status_PREPARING,
+  Status'
+  #-}
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types/Tag.hs b/gen/Amazonka/ServerlessApplicationRepository/Types/Tag.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types/Tag.hs
@@ -0,0 +1,103 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.ServerlessApplicationRepository.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.ServerlessApplicationRepository.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
+
+-- | This property corresponds to the /AWS CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Tag Tag>/
+-- Data Type.
+--
+-- /See:/ 'newTag' smart constructor.
+data Tag = Tag'
+  { -- | This property corresponds to the content of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Tag Tag>/
+    -- Data Type.
+    value :: Prelude.Text,
+    -- | This property corresponds to the content of the same name for the /AWS
+    -- CloudFormation
+    -- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Tag Tag>/
+    -- Data Type.
+    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' - This property corresponds to the content of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Tag Tag>/
+-- Data Type.
+--
+-- 'key', 'tag_key' - This property corresponds to the content of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Tag Tag>/
+-- Data Type.
+newTag ::
+  -- | 'value'
+  Prelude.Text ->
+  -- | 'key'
+  Prelude.Text ->
+  Tag
+newTag pValue_ pKey_ =
+  Tag' {value = pValue_, key = pKey_}
+
+-- | This property corresponds to the content of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Tag Tag>/
+-- Data Type.
+tag_value :: Lens.Lens' Tag Prelude.Text
+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)
+
+-- | This property corresponds to the content of the same name for the /AWS
+-- CloudFormation
+-- <https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Tag Tag>/
+-- Data Type.
+tag_key :: Lens.Lens' Tag Prelude.Text
+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)
+
+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
+          [ Prelude.Just ("value" Data..= value),
+            Prelude.Just ("key" Data..= key)
+          ]
+      )
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types/Version.hs b/gen/Amazonka/ServerlessApplicationRepository/Types/Version.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types/Version.hs
@@ -0,0 +1,323 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.ServerlessApplicationRepository.Types.Version
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.ServerlessApplicationRepository.Types.Version 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
+import Amazonka.ServerlessApplicationRepository.Types.Capability
+import Amazonka.ServerlessApplicationRepository.Types.ParameterDefinition
+
+-- | Application version details.
+--
+-- /See:/ 'newVersion' smart constructor.
+data Version = Version'
+  { -- | A link to the S3 object that contains the ZIP archive of the source code
+    -- for this version of your application.
+    --
+    -- Maximum size 50 MB
+    sourceCodeArchiveUrl :: Prelude.Maybe Prelude.Text,
+    -- | A link to a public repository for the source code of your application,
+    -- for example the URL of a specific GitHub commit.
+    sourceCodeUrl :: Prelude.Maybe Prelude.Text,
+    -- | A link to the packaged AWS SAM template of your application.
+    templateUrl :: Prelude.Text,
+    -- | An array of parameter types supported by the application.
+    parameterDefinitions :: [ParameterDefinition],
+    -- | Whether all of the AWS resources contained in this application are
+    -- supported in the region in which it is being retrieved.
+    resourcesSupported :: Prelude.Bool,
+    -- | The date and time this resource was created.
+    creationTime :: Prelude.Text,
+    -- | A list of values that you must specify before you can deploy certain
+    -- applications. Some applications might include resources that can affect
+    -- permissions in your AWS account, for example, by creating new AWS
+    -- Identity and Access Management (IAM) users. For those applications, you
+    -- must explicitly acknowledge their capabilities by specifying this
+    -- parameter.
+    --
+    -- The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
+    -- CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.
+    --
+    -- The following resources require you to specify CAPABILITY_IAM or
+    -- CAPABILITY_NAMED_IAM:
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html AWS::IAM::Group>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html AWS::IAM::InstanceProfile>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM::Policy>,
+    -- and
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html AWS::IAM::Role>.
+    -- If the application contains IAM resources, you can specify either
+    -- CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM
+    -- resources with custom names, you must specify CAPABILITY_NAMED_IAM.
+    --
+    -- The following resources require you to specify
+    -- CAPABILITY_RESOURCE_POLICY:
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html AWS::Lambda::Permission>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM:Policy>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html AWS::ApplicationAutoScaling::ScalingPolicy>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html AWS::S3::BucketPolicy>,
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html AWS::SQS::QueuePolicy>,
+    -- and
+    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html AWS::SNS::TopicPolicy>.
+    --
+    -- Applications that contain one or more nested applications require you to
+    -- specify CAPABILITY_AUTO_EXPAND.
+    --
+    -- If your application template contains any of the above resources, we
+    -- recommend that you review all permissions associated with the
+    -- application before deploying. If you don\'t specify this parameter for
+    -- an application that requires capabilities, the call will fail.
+    requiredCapabilities :: [Capability],
+    -- | The application Amazon Resource Name (ARN).
+    applicationId :: Prelude.Text,
+    -- | The semantic version of the application:
+    --
+    -- <https://semver.org/>
+    semanticVersion :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Version' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'sourceCodeArchiveUrl', 'version_sourceCodeArchiveUrl' - A link to the S3 object that contains the ZIP archive of the source code
+-- for this version of your application.
+--
+-- Maximum size 50 MB
+--
+-- 'sourceCodeUrl', 'version_sourceCodeUrl' - A link to a public repository for the source code of your application,
+-- for example the URL of a specific GitHub commit.
+--
+-- 'templateUrl', 'version_templateUrl' - A link to the packaged AWS SAM template of your application.
+--
+-- 'parameterDefinitions', 'version_parameterDefinitions' - An array of parameter types supported by the application.
+--
+-- 'resourcesSupported', 'version_resourcesSupported' - Whether all of the AWS resources contained in this application are
+-- supported in the region in which it is being retrieved.
+--
+-- 'creationTime', 'version_creationTime' - The date and time this resource was created.
+--
+-- 'requiredCapabilities', 'version_requiredCapabilities' - A list of values that you must specify before you can deploy certain
+-- applications. Some applications might include resources that can affect
+-- permissions in your AWS account, for example, by creating new AWS
+-- Identity and Access Management (IAM) users. For those applications, you
+-- must explicitly acknowledge their capabilities by specifying this
+-- parameter.
+--
+-- The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
+-- CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.
+--
+-- The following resources require you to specify CAPABILITY_IAM or
+-- CAPABILITY_NAMED_IAM:
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html AWS::IAM::Group>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html AWS::IAM::InstanceProfile>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM::Policy>,
+-- and
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html AWS::IAM::Role>.
+-- If the application contains IAM resources, you can specify either
+-- CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM
+-- resources with custom names, you must specify CAPABILITY_NAMED_IAM.
+--
+-- The following resources require you to specify
+-- CAPABILITY_RESOURCE_POLICY:
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html AWS::Lambda::Permission>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM:Policy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html AWS::ApplicationAutoScaling::ScalingPolicy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html AWS::S3::BucketPolicy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html AWS::SQS::QueuePolicy>,
+-- and
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html AWS::SNS::TopicPolicy>.
+--
+-- Applications that contain one or more nested applications require you to
+-- specify CAPABILITY_AUTO_EXPAND.
+--
+-- If your application template contains any of the above resources, we
+-- recommend that you review all permissions associated with the
+-- application before deploying. If you don\'t specify this parameter for
+-- an application that requires capabilities, the call will fail.
+--
+-- 'applicationId', 'version_applicationId' - The application Amazon Resource Name (ARN).
+--
+-- 'semanticVersion', 'version_semanticVersion' - The semantic version of the application:
+--
+-- <https://semver.org/>
+newVersion ::
+  -- | 'templateUrl'
+  Prelude.Text ->
+  -- | 'resourcesSupported'
+  Prelude.Bool ->
+  -- | 'creationTime'
+  Prelude.Text ->
+  -- | 'applicationId'
+  Prelude.Text ->
+  -- | 'semanticVersion'
+  Prelude.Text ->
+  Version
+newVersion
+  pTemplateUrl_
+  pResourcesSupported_
+  pCreationTime_
+  pApplicationId_
+  pSemanticVersion_ =
+    Version'
+      { sourceCodeArchiveUrl = Prelude.Nothing,
+        sourceCodeUrl = Prelude.Nothing,
+        templateUrl = pTemplateUrl_,
+        parameterDefinitions = Prelude.mempty,
+        resourcesSupported = pResourcesSupported_,
+        creationTime = pCreationTime_,
+        requiredCapabilities = Prelude.mempty,
+        applicationId = pApplicationId_,
+        semanticVersion = pSemanticVersion_
+      }
+
+-- | A link to the S3 object that contains the ZIP archive of the source code
+-- for this version of your application.
+--
+-- Maximum size 50 MB
+version_sourceCodeArchiveUrl :: Lens.Lens' Version (Prelude.Maybe Prelude.Text)
+version_sourceCodeArchiveUrl = Lens.lens (\Version' {sourceCodeArchiveUrl} -> sourceCodeArchiveUrl) (\s@Version' {} a -> s {sourceCodeArchiveUrl = a} :: Version)
+
+-- | A link to a public repository for the source code of your application,
+-- for example the URL of a specific GitHub commit.
+version_sourceCodeUrl :: Lens.Lens' Version (Prelude.Maybe Prelude.Text)
+version_sourceCodeUrl = Lens.lens (\Version' {sourceCodeUrl} -> sourceCodeUrl) (\s@Version' {} a -> s {sourceCodeUrl = a} :: Version)
+
+-- | A link to the packaged AWS SAM template of your application.
+version_templateUrl :: Lens.Lens' Version Prelude.Text
+version_templateUrl = Lens.lens (\Version' {templateUrl} -> templateUrl) (\s@Version' {} a -> s {templateUrl = a} :: Version)
+
+-- | An array of parameter types supported by the application.
+version_parameterDefinitions :: Lens.Lens' Version [ParameterDefinition]
+version_parameterDefinitions = Lens.lens (\Version' {parameterDefinitions} -> parameterDefinitions) (\s@Version' {} a -> s {parameterDefinitions = a} :: Version) Prelude.. Lens.coerced
+
+-- | Whether all of the AWS resources contained in this application are
+-- supported in the region in which it is being retrieved.
+version_resourcesSupported :: Lens.Lens' Version Prelude.Bool
+version_resourcesSupported = Lens.lens (\Version' {resourcesSupported} -> resourcesSupported) (\s@Version' {} a -> s {resourcesSupported = a} :: Version)
+
+-- | The date and time this resource was created.
+version_creationTime :: Lens.Lens' Version Prelude.Text
+version_creationTime = Lens.lens (\Version' {creationTime} -> creationTime) (\s@Version' {} a -> s {creationTime = a} :: Version)
+
+-- | A list of values that you must specify before you can deploy certain
+-- applications. Some applications might include resources that can affect
+-- permissions in your AWS account, for example, by creating new AWS
+-- Identity and Access Management (IAM) users. For those applications, you
+-- must explicitly acknowledge their capabilities by specifying this
+-- parameter.
+--
+-- The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM,
+-- CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.
+--
+-- The following resources require you to specify CAPABILITY_IAM or
+-- CAPABILITY_NAMED_IAM:
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html AWS::IAM::Group>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html AWS::IAM::InstanceProfile>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM::Policy>,
+-- and
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html AWS::IAM::Role>.
+-- If the application contains IAM resources, you can specify either
+-- CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM
+-- resources with custom names, you must specify CAPABILITY_NAMED_IAM.
+--
+-- The following resources require you to specify
+-- CAPABILITY_RESOURCE_POLICY:
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html AWS::Lambda::Permission>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html AWS::IAM:Policy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html AWS::ApplicationAutoScaling::ScalingPolicy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html AWS::S3::BucketPolicy>,
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html AWS::SQS::QueuePolicy>,
+-- and
+-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html AWS::SNS::TopicPolicy>.
+--
+-- Applications that contain one or more nested applications require you to
+-- specify CAPABILITY_AUTO_EXPAND.
+--
+-- If your application template contains any of the above resources, we
+-- recommend that you review all permissions associated with the
+-- application before deploying. If you don\'t specify this parameter for
+-- an application that requires capabilities, the call will fail.
+version_requiredCapabilities :: Lens.Lens' Version [Capability]
+version_requiredCapabilities = Lens.lens (\Version' {requiredCapabilities} -> requiredCapabilities) (\s@Version' {} a -> s {requiredCapabilities = a} :: Version) Prelude.. Lens.coerced
+
+-- | The application Amazon Resource Name (ARN).
+version_applicationId :: Lens.Lens' Version Prelude.Text
+version_applicationId = Lens.lens (\Version' {applicationId} -> applicationId) (\s@Version' {} a -> s {applicationId = a} :: Version)
+
+-- | The semantic version of the application:
+--
+-- <https://semver.org/>
+version_semanticVersion :: Lens.Lens' Version Prelude.Text
+version_semanticVersion = Lens.lens (\Version' {semanticVersion} -> semanticVersion) (\s@Version' {} a -> s {semanticVersion = a} :: Version)
+
+instance Data.FromJSON Version where
+  parseJSON =
+    Data.withObject
+      "Version"
+      ( \x ->
+          Version'
+            Prelude.<$> (x Data..:? "sourceCodeArchiveUrl")
+            Prelude.<*> (x Data..:? "sourceCodeUrl")
+            Prelude.<*> (x Data..: "templateUrl")
+            Prelude.<*> ( x
+                            Data..:? "parameterDefinitions"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..: "resourcesSupported")
+            Prelude.<*> (x Data..: "creationTime")
+            Prelude.<*> ( x
+                            Data..:? "requiredCapabilities"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..: "applicationId")
+            Prelude.<*> (x Data..: "semanticVersion")
+      )
+
+instance Prelude.Hashable Version where
+  hashWithSalt _salt Version' {..} =
+    _salt
+      `Prelude.hashWithSalt` sourceCodeArchiveUrl
+      `Prelude.hashWithSalt` sourceCodeUrl
+      `Prelude.hashWithSalt` templateUrl
+      `Prelude.hashWithSalt` parameterDefinitions
+      `Prelude.hashWithSalt` resourcesSupported
+      `Prelude.hashWithSalt` creationTime
+      `Prelude.hashWithSalt` requiredCapabilities
+      `Prelude.hashWithSalt` applicationId
+      `Prelude.hashWithSalt` semanticVersion
+
+instance Prelude.NFData Version where
+  rnf Version' {..} =
+    Prelude.rnf sourceCodeArchiveUrl
+      `Prelude.seq` Prelude.rnf sourceCodeUrl
+      `Prelude.seq` Prelude.rnf templateUrl
+      `Prelude.seq` Prelude.rnf parameterDefinitions
+      `Prelude.seq` Prelude.rnf resourcesSupported
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf requiredCapabilities
+      `Prelude.seq` Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf semanticVersion
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Types/VersionSummary.hs b/gen/Amazonka/ServerlessApplicationRepository/Types/VersionSummary.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/Types/VersionSummary.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.ServerlessApplicationRepository.Types.VersionSummary
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.ServerlessApplicationRepository.Types.VersionSummary 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 application version summary.
+--
+-- /See:/ 'newVersionSummary' smart constructor.
+data VersionSummary = VersionSummary'
+  { -- | A link to a public repository for the source code of your application,
+    -- for example the URL of a specific GitHub commit.
+    sourceCodeUrl :: Prelude.Maybe Prelude.Text,
+    -- | The date and time this resource was created.
+    creationTime :: Prelude.Text,
+    -- | The application Amazon Resource Name (ARN).
+    applicationId :: Prelude.Text,
+    -- | The semantic version of the application:
+    --
+    -- <https://semver.org/>
+    semanticVersion :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'VersionSummary' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'sourceCodeUrl', 'versionSummary_sourceCodeUrl' - A link to a public repository for the source code of your application,
+-- for example the URL of a specific GitHub commit.
+--
+-- 'creationTime', 'versionSummary_creationTime' - The date and time this resource was created.
+--
+-- 'applicationId', 'versionSummary_applicationId' - The application Amazon Resource Name (ARN).
+--
+-- 'semanticVersion', 'versionSummary_semanticVersion' - The semantic version of the application:
+--
+-- <https://semver.org/>
+newVersionSummary ::
+  -- | 'creationTime'
+  Prelude.Text ->
+  -- | 'applicationId'
+  Prelude.Text ->
+  -- | 'semanticVersion'
+  Prelude.Text ->
+  VersionSummary
+newVersionSummary
+  pCreationTime_
+  pApplicationId_
+  pSemanticVersion_ =
+    VersionSummary'
+      { sourceCodeUrl = Prelude.Nothing,
+        creationTime = pCreationTime_,
+        applicationId = pApplicationId_,
+        semanticVersion = pSemanticVersion_
+      }
+
+-- | A link to a public repository for the source code of your application,
+-- for example the URL of a specific GitHub commit.
+versionSummary_sourceCodeUrl :: Lens.Lens' VersionSummary (Prelude.Maybe Prelude.Text)
+versionSummary_sourceCodeUrl = Lens.lens (\VersionSummary' {sourceCodeUrl} -> sourceCodeUrl) (\s@VersionSummary' {} a -> s {sourceCodeUrl = a} :: VersionSummary)
+
+-- | The date and time this resource was created.
+versionSummary_creationTime :: Lens.Lens' VersionSummary Prelude.Text
+versionSummary_creationTime = Lens.lens (\VersionSummary' {creationTime} -> creationTime) (\s@VersionSummary' {} a -> s {creationTime = a} :: VersionSummary)
+
+-- | The application Amazon Resource Name (ARN).
+versionSummary_applicationId :: Lens.Lens' VersionSummary Prelude.Text
+versionSummary_applicationId = Lens.lens (\VersionSummary' {applicationId} -> applicationId) (\s@VersionSummary' {} a -> s {applicationId = a} :: VersionSummary)
+
+-- | The semantic version of the application:
+--
+-- <https://semver.org/>
+versionSummary_semanticVersion :: Lens.Lens' VersionSummary Prelude.Text
+versionSummary_semanticVersion = Lens.lens (\VersionSummary' {semanticVersion} -> semanticVersion) (\s@VersionSummary' {} a -> s {semanticVersion = a} :: VersionSummary)
+
+instance Data.FromJSON VersionSummary where
+  parseJSON =
+    Data.withObject
+      "VersionSummary"
+      ( \x ->
+          VersionSummary'
+            Prelude.<$> (x Data..:? "sourceCodeUrl")
+            Prelude.<*> (x Data..: "creationTime")
+            Prelude.<*> (x Data..: "applicationId")
+            Prelude.<*> (x Data..: "semanticVersion")
+      )
+
+instance Prelude.Hashable VersionSummary where
+  hashWithSalt _salt VersionSummary' {..} =
+    _salt
+      `Prelude.hashWithSalt` sourceCodeUrl
+      `Prelude.hashWithSalt` creationTime
+      `Prelude.hashWithSalt` applicationId
+      `Prelude.hashWithSalt` semanticVersion
+
+instance Prelude.NFData VersionSummary where
+  rnf VersionSummary' {..} =
+    Prelude.rnf sourceCodeUrl
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf semanticVersion
diff --git a/gen/Amazonka/ServerlessApplicationRepository/UnshareApplication.hs b/gen/Amazonka/ServerlessApplicationRepository/UnshareApplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/UnshareApplication.hs
@@ -0,0 +1,160 @@
+{-# 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.ServerlessApplicationRepository.UnshareApplication
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Unshares an application from an AWS Organization.
+--
+-- This operation can be called only from the organization\'s master
+-- account.
+module Amazonka.ServerlessApplicationRepository.UnshareApplication
+  ( -- * Creating a Request
+    UnshareApplication (..),
+    newUnshareApplication,
+
+    -- * Request Lenses
+    unshareApplication_applicationId,
+    unshareApplication_organizationId,
+
+    -- * Destructuring the Response
+    UnshareApplicationResponse (..),
+    newUnshareApplicationResponse,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newUnshareApplication' smart constructor.
+data UnshareApplication = UnshareApplication'
+  { -- | The Amazon Resource Name (ARN) of the application.
+    applicationId :: Prelude.Text,
+    -- | The AWS Organization ID to unshare the application from.
+    organizationId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UnshareApplication' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'applicationId', 'unshareApplication_applicationId' - The Amazon Resource Name (ARN) of the application.
+--
+-- 'organizationId', 'unshareApplication_organizationId' - The AWS Organization ID to unshare the application from.
+newUnshareApplication ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  -- | 'organizationId'
+  Prelude.Text ->
+  UnshareApplication
+newUnshareApplication
+  pApplicationId_
+  pOrganizationId_ =
+    UnshareApplication'
+      { applicationId =
+          pApplicationId_,
+        organizationId = pOrganizationId_
+      }
+
+-- | The Amazon Resource Name (ARN) of the application.
+unshareApplication_applicationId :: Lens.Lens' UnshareApplication Prelude.Text
+unshareApplication_applicationId = Lens.lens (\UnshareApplication' {applicationId} -> applicationId) (\s@UnshareApplication' {} a -> s {applicationId = a} :: UnshareApplication)
+
+-- | The AWS Organization ID to unshare the application from.
+unshareApplication_organizationId :: Lens.Lens' UnshareApplication Prelude.Text
+unshareApplication_organizationId = Lens.lens (\UnshareApplication' {organizationId} -> organizationId) (\s@UnshareApplication' {} a -> s {organizationId = a} :: UnshareApplication)
+
+instance Core.AWSRequest UnshareApplication where
+  type
+    AWSResponse UnshareApplication =
+      UnshareApplicationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveNull UnshareApplicationResponse'
+
+instance Prelude.Hashable UnshareApplication where
+  hashWithSalt _salt UnshareApplication' {..} =
+    _salt
+      `Prelude.hashWithSalt` applicationId
+      `Prelude.hashWithSalt` organizationId
+
+instance Prelude.NFData UnshareApplication where
+  rnf UnshareApplication' {..} =
+    Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf organizationId
+
+instance Data.ToHeaders UnshareApplication where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UnshareApplication where
+  toJSON UnshareApplication' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("organizationId" Data..= organizationId)
+          ]
+      )
+
+instance Data.ToPath UnshareApplication where
+  toPath UnshareApplication' {..} =
+    Prelude.mconcat
+      [ "/applications/",
+        Data.toBS applicationId,
+        "/unshare"
+      ]
+
+instance Data.ToQuery UnshareApplication where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUnshareApplicationResponse' smart constructor.
+data UnshareApplicationResponse = UnshareApplicationResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UnshareApplicationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newUnshareApplicationResponse ::
+  UnshareApplicationResponse
+newUnshareApplicationResponse =
+  UnshareApplicationResponse'
+
+instance Prelude.NFData UnshareApplicationResponse where
+  rnf _ = ()
diff --git a/gen/Amazonka/ServerlessApplicationRepository/UpdateApplication.hs b/gen/Amazonka/ServerlessApplicationRepository/UpdateApplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/UpdateApplication.hs
@@ -0,0 +1,518 @@
+{-# 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.ServerlessApplicationRepository.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 the specified application.
+module Amazonka.ServerlessApplicationRepository.UpdateApplication
+  ( -- * Creating a Request
+    UpdateApplication (..),
+    newUpdateApplication,
+
+    -- * Request Lenses
+    updateApplication_author,
+    updateApplication_description,
+    updateApplication_homePageUrl,
+    updateApplication_labels,
+    updateApplication_readmeBody,
+    updateApplication_readmeUrl,
+    updateApplication_applicationId,
+
+    -- * Destructuring the Response
+    UpdateApplicationResponse (..),
+    newUpdateApplicationResponse,
+
+    -- * Response Lenses
+    updateApplicationResponse_applicationId,
+    updateApplicationResponse_author,
+    updateApplicationResponse_creationTime,
+    updateApplicationResponse_description,
+    updateApplicationResponse_homePageUrl,
+    updateApplicationResponse_isVerifiedAuthor,
+    updateApplicationResponse_labels,
+    updateApplicationResponse_licenseUrl,
+    updateApplicationResponse_name,
+    updateApplicationResponse_readmeUrl,
+    updateApplicationResponse_spdxLicenseId,
+    updateApplicationResponse_verifiedAuthorUrl,
+    updateApplicationResponse_version,
+    updateApplicationResponse_httpStatus,
+  )
+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
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+import Amazonka.ServerlessApplicationRepository.Types
+
+-- | /See:/ 'newUpdateApplication' smart constructor.
+data UpdateApplication = UpdateApplication'
+  { -- | The name of the author publishing the app.
+    --
+    -- Minimum length=1. Maximum length=127.
+    --
+    -- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+    author :: Prelude.Maybe Prelude.Text,
+    -- | The description of the application.
+    --
+    -- Minimum length=1. Maximum length=256
+    description :: Prelude.Maybe Prelude.Text,
+    -- | A URL with more information about the application, for example the
+    -- location of your GitHub repository for the application.
+    homePageUrl :: Prelude.Maybe Prelude.Text,
+    -- | Labels to improve discovery of apps in search results.
+    --
+    -- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+    --
+    -- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+    labels :: Prelude.Maybe [Prelude.Text],
+    -- | A text readme file in Markdown language that contains a more detailed
+    -- description of the application and how it works.
+    --
+    -- Maximum size 5 MB
+    readmeBody :: Prelude.Maybe Prelude.Text,
+    -- | A link to the readme file in Markdown language that contains a more
+    -- detailed description of the application and how it works.
+    --
+    -- Maximum size 5 MB
+    readmeUrl :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the application.
+    applicationId :: 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:
+--
+-- 'author', 'updateApplication_author' - The name of the author publishing the app.
+--
+-- Minimum length=1. Maximum length=127.
+--
+-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+--
+-- 'description', 'updateApplication_description' - The description of the application.
+--
+-- Minimum length=1. Maximum length=256
+--
+-- 'homePageUrl', 'updateApplication_homePageUrl' - A URL with more information about the application, for example the
+-- location of your GitHub repository for the application.
+--
+-- 'labels', 'updateApplication_labels' - Labels to improve discovery of apps in search results.
+--
+-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+--
+-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+--
+-- 'readmeBody', 'updateApplication_readmeBody' - A text readme file in Markdown language that contains a more detailed
+-- description of the application and how it works.
+--
+-- Maximum size 5 MB
+--
+-- 'readmeUrl', 'updateApplication_readmeUrl' - A link to the readme file in Markdown language that contains a more
+-- detailed description of the application and how it works.
+--
+-- Maximum size 5 MB
+--
+-- 'applicationId', 'updateApplication_applicationId' - The Amazon Resource Name (ARN) of the application.
+newUpdateApplication ::
+  -- | 'applicationId'
+  Prelude.Text ->
+  UpdateApplication
+newUpdateApplication pApplicationId_ =
+  UpdateApplication'
+    { author = Prelude.Nothing,
+      description = Prelude.Nothing,
+      homePageUrl = Prelude.Nothing,
+      labels = Prelude.Nothing,
+      readmeBody = Prelude.Nothing,
+      readmeUrl = Prelude.Nothing,
+      applicationId = pApplicationId_
+    }
+
+-- | The name of the author publishing the app.
+--
+-- Minimum length=1. Maximum length=127.
+--
+-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+updateApplication_author :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)
+updateApplication_author = Lens.lens (\UpdateApplication' {author} -> author) (\s@UpdateApplication' {} a -> s {author = a} :: UpdateApplication)
+
+-- | The description of the application.
+--
+-- Minimum length=1. Maximum length=256
+updateApplication_description :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)
+updateApplication_description = Lens.lens (\UpdateApplication' {description} -> description) (\s@UpdateApplication' {} a -> s {description = a} :: UpdateApplication)
+
+-- | A URL with more information about the application, for example the
+-- location of your GitHub repository for the application.
+updateApplication_homePageUrl :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)
+updateApplication_homePageUrl = Lens.lens (\UpdateApplication' {homePageUrl} -> homePageUrl) (\s@UpdateApplication' {} a -> s {homePageUrl = a} :: UpdateApplication)
+
+-- | Labels to improve discovery of apps in search results.
+--
+-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+--
+-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+updateApplication_labels :: Lens.Lens' UpdateApplication (Prelude.Maybe [Prelude.Text])
+updateApplication_labels = Lens.lens (\UpdateApplication' {labels} -> labels) (\s@UpdateApplication' {} a -> s {labels = a} :: UpdateApplication) Prelude.. Lens.mapping Lens.coerced
+
+-- | A text readme file in Markdown language that contains a more detailed
+-- description of the application and how it works.
+--
+-- Maximum size 5 MB
+updateApplication_readmeBody :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)
+updateApplication_readmeBody = Lens.lens (\UpdateApplication' {readmeBody} -> readmeBody) (\s@UpdateApplication' {} a -> s {readmeBody = a} :: UpdateApplication)
+
+-- | A link to the readme file in Markdown language that contains a more
+-- detailed description of the application and how it works.
+--
+-- Maximum size 5 MB
+updateApplication_readmeUrl :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)
+updateApplication_readmeUrl = Lens.lens (\UpdateApplication' {readmeUrl} -> readmeUrl) (\s@UpdateApplication' {} a -> s {readmeUrl = a} :: UpdateApplication)
+
+-- | The Amazon Resource Name (ARN) of the application.
+updateApplication_applicationId :: Lens.Lens' UpdateApplication Prelude.Text
+updateApplication_applicationId = Lens.lens (\UpdateApplication' {applicationId} -> applicationId) (\s@UpdateApplication' {} a -> s {applicationId = a} :: UpdateApplication)
+
+instance Core.AWSRequest UpdateApplication where
+  type
+    AWSResponse UpdateApplication =
+      UpdateApplicationResponse
+  request overrides =
+    Request.patchJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateApplicationResponse'
+            Prelude.<$> (x Data..?> "applicationId")
+            Prelude.<*> (x Data..?> "author")
+            Prelude.<*> (x Data..?> "creationTime")
+            Prelude.<*> (x Data..?> "description")
+            Prelude.<*> (x Data..?> "homePageUrl")
+            Prelude.<*> (x Data..?> "isVerifiedAuthor")
+            Prelude.<*> (x Data..?> "labels" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "licenseUrl")
+            Prelude.<*> (x Data..?> "name")
+            Prelude.<*> (x Data..?> "readmeUrl")
+            Prelude.<*> (x Data..?> "spdxLicenseId")
+            Prelude.<*> (x Data..?> "verifiedAuthorUrl")
+            Prelude.<*> (x Data..?> "version")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateApplication where
+  hashWithSalt _salt UpdateApplication' {..} =
+    _salt
+      `Prelude.hashWithSalt` author
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` homePageUrl
+      `Prelude.hashWithSalt` labels
+      `Prelude.hashWithSalt` readmeBody
+      `Prelude.hashWithSalt` readmeUrl
+      `Prelude.hashWithSalt` applicationId
+
+instance Prelude.NFData UpdateApplication where
+  rnf UpdateApplication' {..} =
+    Prelude.rnf author
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf homePageUrl
+      `Prelude.seq` Prelude.rnf labels
+      `Prelude.seq` Prelude.rnf readmeBody
+      `Prelude.seq` Prelude.rnf readmeUrl
+      `Prelude.seq` Prelude.rnf applicationId
+
+instance Data.ToHeaders UpdateApplication where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateApplication where
+  toJSON UpdateApplication' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("author" Data..=) Prelude.<$> author,
+            ("description" Data..=) Prelude.<$> description,
+            ("homePageUrl" Data..=) Prelude.<$> homePageUrl,
+            ("labels" Data..=) Prelude.<$> labels,
+            ("readmeBody" Data..=) Prelude.<$> readmeBody,
+            ("readmeUrl" Data..=) Prelude.<$> readmeUrl
+          ]
+      )
+
+instance Data.ToPath UpdateApplication where
+  toPath UpdateApplication' {..} =
+    Prelude.mconcat
+      ["/applications/", Data.toBS applicationId]
+
+instance Data.ToQuery UpdateApplication where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateApplicationResponse' smart constructor.
+data UpdateApplicationResponse = UpdateApplicationResponse'
+  { -- | The application Amazon Resource Name (ARN).
+    applicationId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the author publishing the app.
+    --
+    -- Minimum length=1. Maximum length=127.
+    --
+    -- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+    author :: Prelude.Maybe Prelude.Text,
+    -- | The date and time this resource was created.
+    creationTime :: Prelude.Maybe Prelude.Text,
+    -- | The description of the application.
+    --
+    -- Minimum length=1. Maximum length=256
+    description :: Prelude.Maybe Prelude.Text,
+    -- | A URL with more information about the application, for example the
+    -- location of your GitHub repository for the application.
+    homePageUrl :: Prelude.Maybe Prelude.Text,
+    -- | Whether the author of this application has been verified. This means
+    -- means that AWS has made a good faith review, as a reasonable and prudent
+    -- service provider, of the information provided by the requester and has
+    -- confirmed that the requester\'s identity is as claimed.
+    isVerifiedAuthor :: Prelude.Maybe Prelude.Bool,
+    -- | Labels to improve discovery of apps in search results.
+    --
+    -- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+    --
+    -- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+    labels :: Prelude.Maybe [Prelude.Text],
+    -- | A link to a license file of the app that matches the spdxLicenseID value
+    -- of your application.
+    --
+    -- Maximum size 5 MB
+    licenseUrl :: Prelude.Maybe Prelude.Text,
+    -- | The name of the application.
+    --
+    -- Minimum length=1. Maximum length=140
+    --
+    -- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+    name :: Prelude.Maybe Prelude.Text,
+    -- | A link to the readme file in Markdown language that contains a more
+    -- detailed description of the application and how it works.
+    --
+    -- Maximum size 5 MB
+    readmeUrl :: Prelude.Maybe Prelude.Text,
+    -- | A valid identifier from https:\/\/spdx.org\/licenses\/.
+    spdxLicenseId :: Prelude.Maybe Prelude.Text,
+    -- | The URL to the public profile of a verified author. This URL is
+    -- submitted by the author.
+    verifiedAuthorUrl :: Prelude.Maybe Prelude.Text,
+    -- | Version information about the application.
+    version :: Prelude.Maybe Version,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  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:
+--
+-- 'applicationId', 'updateApplicationResponse_applicationId' - The application Amazon Resource Name (ARN).
+--
+-- 'author', 'updateApplicationResponse_author' - The name of the author publishing the app.
+--
+-- Minimum length=1. Maximum length=127.
+--
+-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+--
+-- 'creationTime', 'updateApplicationResponse_creationTime' - The date and time this resource was created.
+--
+-- 'description', 'updateApplicationResponse_description' - The description of the application.
+--
+-- Minimum length=1. Maximum length=256
+--
+-- 'homePageUrl', 'updateApplicationResponse_homePageUrl' - A URL with more information about the application, for example the
+-- location of your GitHub repository for the application.
+--
+-- 'isVerifiedAuthor', 'updateApplicationResponse_isVerifiedAuthor' - Whether the author of this application has been verified. This means
+-- means that AWS has made a good faith review, as a reasonable and prudent
+-- service provider, of the information provided by the requester and has
+-- confirmed that the requester\'s identity is as claimed.
+--
+-- 'labels', 'updateApplicationResponse_labels' - Labels to improve discovery of apps in search results.
+--
+-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+--
+-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+--
+-- 'licenseUrl', 'updateApplicationResponse_licenseUrl' - A link to a license file of the app that matches the spdxLicenseID value
+-- of your application.
+--
+-- Maximum size 5 MB
+--
+-- 'name', 'updateApplicationResponse_name' - The name of the application.
+--
+-- Minimum length=1. Maximum length=140
+--
+-- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+--
+-- 'readmeUrl', 'updateApplicationResponse_readmeUrl' - A link to the readme file in Markdown language that contains a more
+-- detailed description of the application and how it works.
+--
+-- Maximum size 5 MB
+--
+-- 'spdxLicenseId', 'updateApplicationResponse_spdxLicenseId' - A valid identifier from https:\/\/spdx.org\/licenses\/.
+--
+-- 'verifiedAuthorUrl', 'updateApplicationResponse_verifiedAuthorUrl' - The URL to the public profile of a verified author. This URL is
+-- submitted by the author.
+--
+-- 'version', 'updateApplicationResponse_version' - Version information about the application.
+--
+-- 'httpStatus', 'updateApplicationResponse_httpStatus' - The response's http status code.
+newUpdateApplicationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateApplicationResponse
+newUpdateApplicationResponse pHttpStatus_ =
+  UpdateApplicationResponse'
+    { applicationId =
+        Prelude.Nothing,
+      author = Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      description = Prelude.Nothing,
+      homePageUrl = Prelude.Nothing,
+      isVerifiedAuthor = Prelude.Nothing,
+      labels = Prelude.Nothing,
+      licenseUrl = Prelude.Nothing,
+      name = Prelude.Nothing,
+      readmeUrl = Prelude.Nothing,
+      spdxLicenseId = Prelude.Nothing,
+      verifiedAuthorUrl = Prelude.Nothing,
+      version = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The application Amazon Resource Name (ARN).
+updateApplicationResponse_applicationId :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
+updateApplicationResponse_applicationId = Lens.lens (\UpdateApplicationResponse' {applicationId} -> applicationId) (\s@UpdateApplicationResponse' {} a -> s {applicationId = a} :: UpdateApplicationResponse)
+
+-- | The name of the author publishing the app.
+--
+-- Minimum length=1. Maximum length=127.
+--
+-- Pattern \"^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$\";
+updateApplicationResponse_author :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
+updateApplicationResponse_author = Lens.lens (\UpdateApplicationResponse' {author} -> author) (\s@UpdateApplicationResponse' {} a -> s {author = a} :: UpdateApplicationResponse)
+
+-- | The date and time this resource was created.
+updateApplicationResponse_creationTime :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
+updateApplicationResponse_creationTime = Lens.lens (\UpdateApplicationResponse' {creationTime} -> creationTime) (\s@UpdateApplicationResponse' {} a -> s {creationTime = a} :: UpdateApplicationResponse)
+
+-- | The description of the application.
+--
+-- Minimum length=1. Maximum length=256
+updateApplicationResponse_description :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
+updateApplicationResponse_description = Lens.lens (\UpdateApplicationResponse' {description} -> description) (\s@UpdateApplicationResponse' {} a -> s {description = a} :: UpdateApplicationResponse)
+
+-- | A URL with more information about the application, for example the
+-- location of your GitHub repository for the application.
+updateApplicationResponse_homePageUrl :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
+updateApplicationResponse_homePageUrl = Lens.lens (\UpdateApplicationResponse' {homePageUrl} -> homePageUrl) (\s@UpdateApplicationResponse' {} a -> s {homePageUrl = a} :: UpdateApplicationResponse)
+
+-- | Whether the author of this application has been verified. This means
+-- means that AWS has made a good faith review, as a reasonable and prudent
+-- service provider, of the information provided by the requester and has
+-- confirmed that the requester\'s identity is as claimed.
+updateApplicationResponse_isVerifiedAuthor :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Bool)
+updateApplicationResponse_isVerifiedAuthor = Lens.lens (\UpdateApplicationResponse' {isVerifiedAuthor} -> isVerifiedAuthor) (\s@UpdateApplicationResponse' {} a -> s {isVerifiedAuthor = a} :: UpdateApplicationResponse)
+
+-- | Labels to improve discovery of apps in search results.
+--
+-- Minimum length=1. Maximum length=127. Maximum number of labels: 10
+--
+-- Pattern: \"^[a-zA-Z0-9+\\\\-_:\\\\\/\@]+$\";
+updateApplicationResponse_labels :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe [Prelude.Text])
+updateApplicationResponse_labels = Lens.lens (\UpdateApplicationResponse' {labels} -> labels) (\s@UpdateApplicationResponse' {} a -> s {labels = a} :: UpdateApplicationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | A link to a license file of the app that matches the spdxLicenseID value
+-- of your application.
+--
+-- Maximum size 5 MB
+updateApplicationResponse_licenseUrl :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
+updateApplicationResponse_licenseUrl = Lens.lens (\UpdateApplicationResponse' {licenseUrl} -> licenseUrl) (\s@UpdateApplicationResponse' {} a -> s {licenseUrl = a} :: UpdateApplicationResponse)
+
+-- | The name of the application.
+--
+-- Minimum length=1. Maximum length=140
+--
+-- Pattern: \"[a-zA-Z0-9\\\\-]+\";
+updateApplicationResponse_name :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
+updateApplicationResponse_name = Lens.lens (\UpdateApplicationResponse' {name} -> name) (\s@UpdateApplicationResponse' {} a -> s {name = a} :: UpdateApplicationResponse)
+
+-- | A link to the readme file in Markdown language that contains a more
+-- detailed description of the application and how it works.
+--
+-- Maximum size 5 MB
+updateApplicationResponse_readmeUrl :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
+updateApplicationResponse_readmeUrl = Lens.lens (\UpdateApplicationResponse' {readmeUrl} -> readmeUrl) (\s@UpdateApplicationResponse' {} a -> s {readmeUrl = a} :: UpdateApplicationResponse)
+
+-- | A valid identifier from https:\/\/spdx.org\/licenses\/.
+updateApplicationResponse_spdxLicenseId :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
+updateApplicationResponse_spdxLicenseId = Lens.lens (\UpdateApplicationResponse' {spdxLicenseId} -> spdxLicenseId) (\s@UpdateApplicationResponse' {} a -> s {spdxLicenseId = a} :: UpdateApplicationResponse)
+
+-- | The URL to the public profile of a verified author. This URL is
+-- submitted by the author.
+updateApplicationResponse_verifiedAuthorUrl :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Prelude.Text)
+updateApplicationResponse_verifiedAuthorUrl = Lens.lens (\UpdateApplicationResponse' {verifiedAuthorUrl} -> verifiedAuthorUrl) (\s@UpdateApplicationResponse' {} a -> s {verifiedAuthorUrl = a} :: UpdateApplicationResponse)
+
+-- | Version information about the application.
+updateApplicationResponse_version :: Lens.Lens' UpdateApplicationResponse (Prelude.Maybe Version)
+updateApplicationResponse_version = Lens.lens (\UpdateApplicationResponse' {version} -> version) (\s@UpdateApplicationResponse' {} a -> s {version = a} :: UpdateApplicationResponse)
+
+-- | 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)
+
+instance Prelude.NFData UpdateApplicationResponse where
+  rnf UpdateApplicationResponse' {..} =
+    Prelude.rnf applicationId
+      `Prelude.seq` Prelude.rnf author
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf homePageUrl
+      `Prelude.seq` Prelude.rnf isVerifiedAuthor
+      `Prelude.seq` Prelude.rnf labels
+      `Prelude.seq` Prelude.rnf licenseUrl
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf readmeUrl
+      `Prelude.seq` Prelude.rnf spdxLicenseId
+      `Prelude.seq` Prelude.rnf verifiedAuthorUrl
+      `Prelude.seq` Prelude.rnf version
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/ServerlessApplicationRepository/Waiters.hs b/gen/Amazonka/ServerlessApplicationRepository/Waiters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/ServerlessApplicationRepository/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.ServerlessApplicationRepository.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.ServerlessApplicationRepository.Waiters 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
+import Amazonka.ServerlessApplicationRepository.Lens
+import Amazonka.ServerlessApplicationRepository.Types
diff --git a/gen/Network/AWS/ServerlessApplicationRepository.hs b/gen/Network/AWS/ServerlessApplicationRepository.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository.hs
+++ /dev/null
@@ -1,209 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- The AWS Serverless Application Repository makes it easy for developers and enterprises to quickly find
---
---  and deploy serverless applications in the AWS Cloud. For more information about serverless applications,
---  see Serverless Computing and Applications on the AWS website.
---
--- The AWS Serverless Application Repository is deeply integrated with the AWS Lambda console, so that developers of
---  all levels can get started with serverless computing without needing to learn anything new. You can use category
---  keywords to browse for applications such as web and mobile backends, data processing applications, or chatbots.
---  You can also search for applications by name, publisher, or event source. To use an application, you simply choose it,
---  configure any required fields, and deploy it with a few clicks.
---
--- You can also easily publish applications, sharing them publicly with the community at large, or privately
---  within your team or across your organization. To publish a serverless application (or app), you can use the
---  AWS Management Console, AWS Command Line Interface (AWS CLI), or AWS SDKs to upload the code. Along with the
---  code, you upload a simple manifest file, also known as the AWS Serverless Application Model (AWS SAM) template.
---  For more information about AWS SAM, see AWS Serverless Application Model (AWS SAM) on the AWS Labs
---  GitHub repository.
---
--- The AWS Serverless Application Repository Developer Guide contains more information about the two developer
---  experiences available:
---
---     * Consuming Applications – Browse for applications and view information about them, including
---  source code and readme files. Also install, configure, and deploy applications of your choosing.
---
--- Publishing Applications – Configure and upload applications to make them available to other
---  developers, and publish new versions of applications.
---
---
---
-module Network.AWS.ServerlessApplicationRepository
-    (
-    -- * Service Configuration
-      serverlessApplicationRepository
-
-    -- * Errors
-    -- $errors
-
-    -- ** ConflictException
-    , _ConflictException
-
-    -- ** ForbiddenException
-    , _ForbiddenException
-
-    -- ** NotFoundException
-    , _NotFoundException
-
-    -- ** TooManyRequestsException
-    , _TooManyRequestsException
-
-    -- ** InternalServerErrorException
-    , _InternalServerErrorException
-
-    -- ** BadRequestException
-    , _BadRequestException
-
-    -- * Waiters
-    -- $waiters
-
-    -- * Operations
-    -- $operations
-
-    -- ** GetApplicationPolicy
-    , module Network.AWS.ServerlessApplicationRepository.GetApplicationPolicy
-
-    -- ** CreateApplicationVersion
-    , module Network.AWS.ServerlessApplicationRepository.CreateApplicationVersion
-
-    -- ** DeleteApplication
-    , module Network.AWS.ServerlessApplicationRepository.DeleteApplication
-
-    -- ** UpdateApplication
-    , module Network.AWS.ServerlessApplicationRepository.UpdateApplication
-
-    -- ** CreateApplication
-    , module Network.AWS.ServerlessApplicationRepository.CreateApplication
-
-    -- ** ListApplicationVersions
-    , module Network.AWS.ServerlessApplicationRepository.ListApplicationVersions
-
-    -- ** GetApplication
-    , module Network.AWS.ServerlessApplicationRepository.GetApplication
-
-    -- ** CreateCloudFormationChangeSet
-    , module Network.AWS.ServerlessApplicationRepository.CreateCloudFormationChangeSet
-
-    -- ** PutApplicationPolicy
-    , module Network.AWS.ServerlessApplicationRepository.PutApplicationPolicy
-
-    -- ** ListApplications
-    , module Network.AWS.ServerlessApplicationRepository.ListApplications
-
-    -- * Types
-
-    -- ** ApplicationPolicyStatement
-    , ApplicationPolicyStatement
-    , applicationPolicyStatement
-    , apsStatementId
-    , apsPrincipals
-    , apsActions
-
-    -- ** ApplicationSummary
-    , ApplicationSummary
-    , applicationSummary
-    , asCreationTime
-    , asHomePageURL
-    , asLabels
-    , asSpdxLicenseId
-    , asDescription
-    , asAuthor
-    , asApplicationId
-    , asName
-
-    -- ** ParameterDefinition
-    , ParameterDefinition
-    , parameterDefinition
-    , pdMaxValue
-    , pdMaxLength
-    , pdConstraintDescription
-    , pdMinLength
-    , pdDefaultValue
-    , pdAllowedPattern
-    , pdNoEcho
-    , pdType
-    , pdAllowedValues
-    , pdDescription
-    , pdMinValue
-    , pdReferencedByResources
-    , pdName
-
-    -- ** ParameterValue
-    , ParameterValue
-    , parameterValue
-    , pvValue
-    , pvName
-
-    -- ** Version
-    , Version
-    , version
-    , vSourceCodeURL
-    , vTemplateURL
-    , vParameterDefinitions
-    , vCreationTime
-    , vApplicationId
-    , vSemanticVersion
-
-    -- ** VersionSummary
-    , VersionSummary
-    , versionSummary
-    , vsSourceCodeURL
-    , vsCreationTime
-    , vsApplicationId
-    , vsSemanticVersion
-    ) where
-
-import Network.AWS.ServerlessApplicationRepository.CreateApplication
-import Network.AWS.ServerlessApplicationRepository.CreateApplicationVersion
-import Network.AWS.ServerlessApplicationRepository.CreateCloudFormationChangeSet
-import Network.AWS.ServerlessApplicationRepository.DeleteApplication
-import Network.AWS.ServerlessApplicationRepository.GetApplication
-import Network.AWS.ServerlessApplicationRepository.GetApplicationPolicy
-import Network.AWS.ServerlessApplicationRepository.ListApplications
-import Network.AWS.ServerlessApplicationRepository.ListApplicationVersions
-import Network.AWS.ServerlessApplicationRepository.PutApplicationPolicy
-import Network.AWS.ServerlessApplicationRepository.Types
-import Network.AWS.ServerlessApplicationRepository.UpdateApplication
-import Network.AWS.ServerlessApplicationRepository.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 'ServerlessApplicationRepository'.
--}
-
-{- $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/Network/AWS/ServerlessApplicationRepository/CreateApplication.hs b/gen/Network/AWS/ServerlessApplicationRepository/CreateApplication.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/CreateApplication.hs
+++ /dev/null
@@ -1,363 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.CreateApplication
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Creates an application, optionally including an AWS SAM file to create the first application version in the same call.
---
---
-module Network.AWS.ServerlessApplicationRepository.CreateApplication
-    (
-    -- * Creating a Request
-      createApplication
-    , CreateApplication
-    -- * Request Lenses
-    , caHomePageURL
-    , caReadmeBody
-    , caLicenseURL
-    , caSemanticVersion
-    , caSourceCodeURL
-    , caReadmeURL
-    , caName
-    , caAuthor
-    , caLabels
-    , caTemplateBody
-    , caTemplateURL
-    , caLicenseBody
-    , caDescription
-    , caSpdxLicenseId
-
-    -- * Destructuring the Response
-    , createApplicationResponse
-    , CreateApplicationResponse
-    -- * Response Lenses
-    , carsCreationTime
-    , carsHomePageURL
-    , carsLicenseURL
-    , carsReadmeURL
-    , carsApplicationId
-    , carsName
-    , carsVersion
-    , carsAuthor
-    , carsLabels
-    , carsDescription
-    , carsSpdxLicenseId
-    , carsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-import Network.AWS.ServerlessApplicationRepository.Types
-import Network.AWS.ServerlessApplicationRepository.Types.Product
-
--- | /See:/ 'createApplication' smart constructor.
-data CreateApplication = CreateApplication'
-  { _caHomePageURL     :: !(Maybe Text)
-  , _caReadmeBody      :: !(Maybe Text)
-  , _caLicenseURL      :: !(Maybe Text)
-  , _caSemanticVersion :: !(Maybe Text)
-  , _caSourceCodeURL   :: !(Maybe Text)
-  , _caReadmeURL       :: !(Maybe Text)
-  , _caName            :: !(Maybe Text)
-  , _caAuthor          :: !(Maybe Text)
-  , _caLabels          :: !(Maybe [Text])
-  , _caTemplateBody    :: !(Maybe Text)
-  , _caTemplateURL     :: !(Maybe Text)
-  , _caLicenseBody     :: !(Maybe Text)
-  , _caDescription     :: !(Maybe Text)
-  , _caSpdxLicenseId   :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateApplication' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'caHomePageURL' - A URL with more information about the application, for example  the location of your GitHub repository for the application.
---
--- * 'caReadmeBody' - A raw text Readme file that contains a more detailed description of the application and how it works in markdown language. Max size 5 MB
---
--- * 'caLicenseURL' - A link to a license file of the app that matches the spdxLicenseID of your application. Max size 5 MB
---
--- * 'caSemanticVersion' - The semantic version of the application: <https://semver.org/ https://semver.org/>
---
--- * 'caSourceCodeURL' - A link to a public repository for the source code of your application.
---
--- * 'caReadmeURL' - A link to the Readme file that contains a more detailed description of the application and how it works in markdown language. Max size 5 MB
---
--- * 'caName' - The name of the application you want to publish. Min Length=1. Max Length=140 Pattern: "[a-zA-Z0-9\\-]+";
---
--- * 'caAuthor' - The name of the author publishing the app. Min Length=1. Max Length=127. Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
---
--- * 'caLabels' - Labels to improve discovery of apps in search results. Min Length=1. Max Length=127. Maximum number of labels: 10 Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
---
--- * 'caTemplateBody' - The raw packaged AWS SAM template of your application.
---
--- * 'caTemplateURL' - A link to the packaged AWS SAM template of your application.
---
--- * 'caLicenseBody' - A raw text file that contains the license of the app that matches the spdxLicenseID of your application. Max size 5 MB
---
--- * 'caDescription' - The description of the application. Min Length=1. Max Length=256
---
--- * 'caSpdxLicenseId' - A valid identifier from <https://spdx.org/licenses/ https://spdx.org/licenses/> .
-createApplication
-    :: CreateApplication
-createApplication =
-  CreateApplication'
-    { _caHomePageURL = Nothing
-    , _caReadmeBody = Nothing
-    , _caLicenseURL = Nothing
-    , _caSemanticVersion = Nothing
-    , _caSourceCodeURL = Nothing
-    , _caReadmeURL = Nothing
-    , _caName = Nothing
-    , _caAuthor = Nothing
-    , _caLabels = Nothing
-    , _caTemplateBody = Nothing
-    , _caTemplateURL = Nothing
-    , _caLicenseBody = Nothing
-    , _caDescription = Nothing
-    , _caSpdxLicenseId = Nothing
-    }
-
-
--- | A URL with more information about the application, for example  the location of your GitHub repository for the application.
-caHomePageURL :: Lens' CreateApplication (Maybe Text)
-caHomePageURL = lens _caHomePageURL (\ s a -> s{_caHomePageURL = a})
-
--- | A raw text Readme file that contains a more detailed description of the application and how it works in markdown language. Max size 5 MB
-caReadmeBody :: Lens' CreateApplication (Maybe Text)
-caReadmeBody = lens _caReadmeBody (\ s a -> s{_caReadmeBody = a})
-
--- | A link to a license file of the app that matches the spdxLicenseID of your application. Max size 5 MB
-caLicenseURL :: Lens' CreateApplication (Maybe Text)
-caLicenseURL = lens _caLicenseURL (\ s a -> s{_caLicenseURL = a})
-
--- | The semantic version of the application: <https://semver.org/ https://semver.org/>
-caSemanticVersion :: Lens' CreateApplication (Maybe Text)
-caSemanticVersion = lens _caSemanticVersion (\ s a -> s{_caSemanticVersion = a})
-
--- | A link to a public repository for the source code of your application.
-caSourceCodeURL :: Lens' CreateApplication (Maybe Text)
-caSourceCodeURL = lens _caSourceCodeURL (\ s a -> s{_caSourceCodeURL = a})
-
--- | A link to the Readme file that contains a more detailed description of the application and how it works in markdown language. Max size 5 MB
-caReadmeURL :: Lens' CreateApplication (Maybe Text)
-caReadmeURL = lens _caReadmeURL (\ s a -> s{_caReadmeURL = a})
-
--- | The name of the application you want to publish. Min Length=1. Max Length=140 Pattern: "[a-zA-Z0-9\\-]+";
-caName :: Lens' CreateApplication (Maybe Text)
-caName = lens _caName (\ s a -> s{_caName = a})
-
--- | The name of the author publishing the app. Min Length=1. Max Length=127. Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
-caAuthor :: Lens' CreateApplication (Maybe Text)
-caAuthor = lens _caAuthor (\ s a -> s{_caAuthor = a})
-
--- | Labels to improve discovery of apps in search results. Min Length=1. Max Length=127. Maximum number of labels: 10 Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
-caLabels :: Lens' CreateApplication [Text]
-caLabels = lens _caLabels (\ s a -> s{_caLabels = a}) . _Default . _Coerce
-
--- | The raw packaged AWS SAM template of your application.
-caTemplateBody :: Lens' CreateApplication (Maybe Text)
-caTemplateBody = lens _caTemplateBody (\ s a -> s{_caTemplateBody = a})
-
--- | A link to the packaged AWS SAM template of your application.
-caTemplateURL :: Lens' CreateApplication (Maybe Text)
-caTemplateURL = lens _caTemplateURL (\ s a -> s{_caTemplateURL = a})
-
--- | A raw text file that contains the license of the app that matches the spdxLicenseID of your application. Max size 5 MB
-caLicenseBody :: Lens' CreateApplication (Maybe Text)
-caLicenseBody = lens _caLicenseBody (\ s a -> s{_caLicenseBody = a})
-
--- | The description of the application. Min Length=1. Max Length=256
-caDescription :: Lens' CreateApplication (Maybe Text)
-caDescription = lens _caDescription (\ s a -> s{_caDescription = a})
-
--- | A valid identifier from <https://spdx.org/licenses/ https://spdx.org/licenses/> .
-caSpdxLicenseId :: Lens' CreateApplication (Maybe Text)
-caSpdxLicenseId = lens _caSpdxLicenseId (\ s a -> s{_caSpdxLicenseId = a})
-
-instance AWSRequest CreateApplication where
-        type Rs CreateApplication = CreateApplicationResponse
-        request = postJSON serverlessApplicationRepository
-        response
-          = receiveJSON
-              (\ s h x ->
-                 CreateApplicationResponse' <$>
-                   (x .?> "creationTime") <*> (x .?> "homePageUrl") <*>
-                     (x .?> "licenseUrl")
-                     <*> (x .?> "readmeUrl")
-                     <*> (x .?> "applicationId")
-                     <*> (x .?> "name")
-                     <*> (x .?> "version")
-                     <*> (x .?> "author")
-                     <*> (x .?> "labels" .!@ mempty)
-                     <*> (x .?> "description")
-                     <*> (x .?> "spdxLicenseId")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable CreateApplication where
-
-instance NFData CreateApplication where
-
-instance ToHeaders CreateApplication where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON CreateApplication where
-        toJSON CreateApplication'{..}
-          = object
-              (catMaybes
-                 [("homePageUrl" .=) <$> _caHomePageURL,
-                  ("readmeBody" .=) <$> _caReadmeBody,
-                  ("licenseUrl" .=) <$> _caLicenseURL,
-                  ("semanticVersion" .=) <$> _caSemanticVersion,
-                  ("sourceCodeUrl" .=) <$> _caSourceCodeURL,
-                  ("readmeUrl" .=) <$> _caReadmeURL,
-                  ("name" .=) <$> _caName, ("author" .=) <$> _caAuthor,
-                  ("labels" .=) <$> _caLabels,
-                  ("templateBody" .=) <$> _caTemplateBody,
-                  ("templateUrl" .=) <$> _caTemplateURL,
-                  ("licenseBody" .=) <$> _caLicenseBody,
-                  ("description" .=) <$> _caDescription,
-                  ("spdxLicenseId" .=) <$> _caSpdxLicenseId])
-
-instance ToPath CreateApplication where
-        toPath = const "/applications"
-
-instance ToQuery CreateApplication where
-        toQuery = const mempty
-
--- | /See:/ 'createApplicationResponse' smart constructor.
-data CreateApplicationResponse = CreateApplicationResponse'
-  { _carsCreationTime   :: !(Maybe Text)
-  , _carsHomePageURL    :: !(Maybe Text)
-  , _carsLicenseURL     :: !(Maybe Text)
-  , _carsReadmeURL      :: !(Maybe Text)
-  , _carsApplicationId  :: !(Maybe Text)
-  , _carsName           :: !(Maybe Text)
-  , _carsVersion        :: !(Maybe Version)
-  , _carsAuthor         :: !(Maybe Text)
-  , _carsLabels         :: !(Maybe [Text])
-  , _carsDescription    :: !(Maybe Text)
-  , _carsSpdxLicenseId  :: !(Maybe Text)
-  , _carsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateApplicationResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'carsCreationTime' - The date/time this resource was created.
---
--- * 'carsHomePageURL' - A URL with more information about the application, for example  the location of your GitHub repository for the application.
---
--- * 'carsLicenseURL' - A link to a license file of the app that matches the spdxLicenseID of your application. Max size 5 MB
---
--- * 'carsReadmeURL' - A link to the readme file that contains a more detailed description of the application and how it works in Markdown language. Max size 5 MB
---
--- * 'carsApplicationId' - The application Amazon Resource Name (ARN).
---
--- * 'carsName' - The name of the application. Min Length=1. Max Length=140 Pattern: "[a-zA-Z0-9\\-]+";
---
--- * 'carsVersion' - Version information about the application.
---
--- * 'carsAuthor' - The name of the author publishing the app. Min Length=1. Max Length=127. Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
---
--- * 'carsLabels' - Labels to improve discovery of apps in search results. Min Length=1. Max Length=127. Maximum number of labels: 10 Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
---
--- * 'carsDescription' - The description of the application. Min Length=1. Max Length=256
---
--- * 'carsSpdxLicenseId' - A valid identifier from https://spdx.org/licenses/.
---
--- * 'carsResponseStatus' - -- | The response status code.
-createApplicationResponse
-    :: Int -- ^ 'carsResponseStatus'
-    -> CreateApplicationResponse
-createApplicationResponse pResponseStatus_ =
-  CreateApplicationResponse'
-    { _carsCreationTime = Nothing
-    , _carsHomePageURL = Nothing
-    , _carsLicenseURL = Nothing
-    , _carsReadmeURL = Nothing
-    , _carsApplicationId = Nothing
-    , _carsName = Nothing
-    , _carsVersion = Nothing
-    , _carsAuthor = Nothing
-    , _carsLabels = Nothing
-    , _carsDescription = Nothing
-    , _carsSpdxLicenseId = Nothing
-    , _carsResponseStatus = pResponseStatus_
-    }
-
-
--- | The date/time this resource was created.
-carsCreationTime :: Lens' CreateApplicationResponse (Maybe Text)
-carsCreationTime = lens _carsCreationTime (\ s a -> s{_carsCreationTime = a})
-
--- | A URL with more information about the application, for example  the location of your GitHub repository for the application.
-carsHomePageURL :: Lens' CreateApplicationResponse (Maybe Text)
-carsHomePageURL = lens _carsHomePageURL (\ s a -> s{_carsHomePageURL = a})
-
--- | A link to a license file of the app that matches the spdxLicenseID of your application. Max size 5 MB
-carsLicenseURL :: Lens' CreateApplicationResponse (Maybe Text)
-carsLicenseURL = lens _carsLicenseURL (\ s a -> s{_carsLicenseURL = a})
-
--- | A link to the readme file that contains a more detailed description of the application and how it works in Markdown language. Max size 5 MB
-carsReadmeURL :: Lens' CreateApplicationResponse (Maybe Text)
-carsReadmeURL = lens _carsReadmeURL (\ s a -> s{_carsReadmeURL = a})
-
--- | The application Amazon Resource Name (ARN).
-carsApplicationId :: Lens' CreateApplicationResponse (Maybe Text)
-carsApplicationId = lens _carsApplicationId (\ s a -> s{_carsApplicationId = a})
-
--- | The name of the application. Min Length=1. Max Length=140 Pattern: "[a-zA-Z0-9\\-]+";
-carsName :: Lens' CreateApplicationResponse (Maybe Text)
-carsName = lens _carsName (\ s a -> s{_carsName = a})
-
--- | Version information about the application.
-carsVersion :: Lens' CreateApplicationResponse (Maybe Version)
-carsVersion = lens _carsVersion (\ s a -> s{_carsVersion = a})
-
--- | The name of the author publishing the app. Min Length=1. Max Length=127. Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
-carsAuthor :: Lens' CreateApplicationResponse (Maybe Text)
-carsAuthor = lens _carsAuthor (\ s a -> s{_carsAuthor = a})
-
--- | Labels to improve discovery of apps in search results. Min Length=1. Max Length=127. Maximum number of labels: 10 Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
-carsLabels :: Lens' CreateApplicationResponse [Text]
-carsLabels = lens _carsLabels (\ s a -> s{_carsLabels = a}) . _Default . _Coerce
-
--- | The description of the application. Min Length=1. Max Length=256
-carsDescription :: Lens' CreateApplicationResponse (Maybe Text)
-carsDescription = lens _carsDescription (\ s a -> s{_carsDescription = a})
-
--- | A valid identifier from https://spdx.org/licenses/.
-carsSpdxLicenseId :: Lens' CreateApplicationResponse (Maybe Text)
-carsSpdxLicenseId = lens _carsSpdxLicenseId (\ s a -> s{_carsSpdxLicenseId = a})
-
--- | -- | The response status code.
-carsResponseStatus :: Lens' CreateApplicationResponse Int
-carsResponseStatus = lens _carsResponseStatus (\ s a -> s{_carsResponseStatus = a})
-
-instance NFData CreateApplicationResponse where
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/CreateApplicationVersion.hs b/gen/Network/AWS/ServerlessApplicationRepository/CreateApplicationVersion.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/CreateApplicationVersion.hs
+++ /dev/null
@@ -1,230 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.CreateApplicationVersion
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Creates an application version.
---
---
-module Network.AWS.ServerlessApplicationRepository.CreateApplicationVersion
-    (
-    -- * Creating a Request
-      createApplicationVersion
-    , CreateApplicationVersion
-    -- * Request Lenses
-    , cavSourceCodeURL
-    , cavTemplateBody
-    , cavTemplateURL
-    , cavApplicationId
-    , cavSemanticVersion
-
-    -- * Destructuring the Response
-    , createApplicationVersionResponse
-    , CreateApplicationVersionResponse
-    -- * Response Lenses
-    , cavrsCreationTime
-    , cavrsParameterDefinitions
-    , cavrsSemanticVersion
-    , cavrsSourceCodeURL
-    , cavrsApplicationId
-    , cavrsTemplateURL
-    , cavrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-import Network.AWS.ServerlessApplicationRepository.Types
-import Network.AWS.ServerlessApplicationRepository.Types.Product
-
--- | /See:/ 'createApplicationVersion' smart constructor.
-data CreateApplicationVersion = CreateApplicationVersion'
-  { _cavSourceCodeURL   :: !(Maybe Text)
-  , _cavTemplateBody    :: !(Maybe Text)
-  , _cavTemplateURL     :: !(Maybe Text)
-  , _cavApplicationId   :: !Text
-  , _cavSemanticVersion :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateApplicationVersion' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cavSourceCodeURL' - A link to a public repository for the source code of your application.
---
--- * 'cavTemplateBody' - The raw packaged AWS SAM template of your application.
---
--- * 'cavTemplateURL' - A link to the packaged AWS SAM template of your application.
---
--- * 'cavApplicationId' - The ID of the application to get.
---
--- * 'cavSemanticVersion' - The semantic version of the new version.
-createApplicationVersion
-    :: Text -- ^ 'cavApplicationId'
-    -> Text -- ^ 'cavSemanticVersion'
-    -> CreateApplicationVersion
-createApplicationVersion pApplicationId_ pSemanticVersion_ =
-  CreateApplicationVersion'
-    { _cavSourceCodeURL = Nothing
-    , _cavTemplateBody = Nothing
-    , _cavTemplateURL = Nothing
-    , _cavApplicationId = pApplicationId_
-    , _cavSemanticVersion = pSemanticVersion_
-    }
-
-
--- | A link to a public repository for the source code of your application.
-cavSourceCodeURL :: Lens' CreateApplicationVersion (Maybe Text)
-cavSourceCodeURL = lens _cavSourceCodeURL (\ s a -> s{_cavSourceCodeURL = a})
-
--- | The raw packaged AWS SAM template of your application.
-cavTemplateBody :: Lens' CreateApplicationVersion (Maybe Text)
-cavTemplateBody = lens _cavTemplateBody (\ s a -> s{_cavTemplateBody = a})
-
--- | A link to the packaged AWS SAM template of your application.
-cavTemplateURL :: Lens' CreateApplicationVersion (Maybe Text)
-cavTemplateURL = lens _cavTemplateURL (\ s a -> s{_cavTemplateURL = a})
-
--- | The ID of the application to get.
-cavApplicationId :: Lens' CreateApplicationVersion Text
-cavApplicationId = lens _cavApplicationId (\ s a -> s{_cavApplicationId = a})
-
--- | The semantic version of the new version.
-cavSemanticVersion :: Lens' CreateApplicationVersion Text
-cavSemanticVersion = lens _cavSemanticVersion (\ s a -> s{_cavSemanticVersion = a})
-
-instance AWSRequest CreateApplicationVersion where
-        type Rs CreateApplicationVersion =
-             CreateApplicationVersionResponse
-        request = putJSON serverlessApplicationRepository
-        response
-          = receiveJSON
-              (\ s h x ->
-                 CreateApplicationVersionResponse' <$>
-                   (x .?> "creationTime") <*>
-                     (x .?> "parameterDefinitions" .!@ mempty)
-                     <*> (x .?> "semanticVersion")
-                     <*> (x .?> "sourceCodeUrl")
-                     <*> (x .?> "applicationId")
-                     <*> (x .?> "templateUrl")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable CreateApplicationVersion where
-
-instance NFData CreateApplicationVersion where
-
-instance ToHeaders CreateApplicationVersion where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON CreateApplicationVersion where
-        toJSON CreateApplicationVersion'{..}
-          = object
-              (catMaybes
-                 [("sourceCodeUrl" .=) <$> _cavSourceCodeURL,
-                  ("templateBody" .=) <$> _cavTemplateBody,
-                  ("templateUrl" .=) <$> _cavTemplateURL])
-
-instance ToPath CreateApplicationVersion where
-        toPath CreateApplicationVersion'{..}
-          = mconcat
-              ["/applications/", toBS _cavApplicationId,
-               "/versions/", toBS _cavSemanticVersion]
-
-instance ToQuery CreateApplicationVersion where
-        toQuery = const mempty
-
--- | /See:/ 'createApplicationVersionResponse' smart constructor.
-data CreateApplicationVersionResponse = CreateApplicationVersionResponse'
-  { _cavrsCreationTime         :: !(Maybe Text)
-  , _cavrsParameterDefinitions :: !(Maybe [ParameterDefinition])
-  , _cavrsSemanticVersion      :: !(Maybe Text)
-  , _cavrsSourceCodeURL        :: !(Maybe Text)
-  , _cavrsApplicationId        :: !(Maybe Text)
-  , _cavrsTemplateURL          :: !(Maybe Text)
-  , _cavrsResponseStatus       :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateApplicationVersionResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cavrsCreationTime' - The date/time this resource was created.
---
--- * 'cavrsParameterDefinitions' - Array of parameter types supported by the application.
---
--- * 'cavrsSemanticVersion' - The semantic version of the application: <https://semver.org/ https://semver.org/>
---
--- * 'cavrsSourceCodeURL' - A link to a public repository for the source code of your application.
---
--- * 'cavrsApplicationId' - The application Amazon Resource Name (ARN).
---
--- * 'cavrsTemplateURL' - A link to the packaged AWS SAM template of your application.
---
--- * 'cavrsResponseStatus' - -- | The response status code.
-createApplicationVersionResponse
-    :: Int -- ^ 'cavrsResponseStatus'
-    -> CreateApplicationVersionResponse
-createApplicationVersionResponse pResponseStatus_ =
-  CreateApplicationVersionResponse'
-    { _cavrsCreationTime = Nothing
-    , _cavrsParameterDefinitions = Nothing
-    , _cavrsSemanticVersion = Nothing
-    , _cavrsSourceCodeURL = Nothing
-    , _cavrsApplicationId = Nothing
-    , _cavrsTemplateURL = Nothing
-    , _cavrsResponseStatus = pResponseStatus_
-    }
-
-
--- | The date/time this resource was created.
-cavrsCreationTime :: Lens' CreateApplicationVersionResponse (Maybe Text)
-cavrsCreationTime = lens _cavrsCreationTime (\ s a -> s{_cavrsCreationTime = a})
-
--- | Array of parameter types supported by the application.
-cavrsParameterDefinitions :: Lens' CreateApplicationVersionResponse [ParameterDefinition]
-cavrsParameterDefinitions = lens _cavrsParameterDefinitions (\ s a -> s{_cavrsParameterDefinitions = a}) . _Default . _Coerce
-
--- | The semantic version of the application: <https://semver.org/ https://semver.org/>
-cavrsSemanticVersion :: Lens' CreateApplicationVersionResponse (Maybe Text)
-cavrsSemanticVersion = lens _cavrsSemanticVersion (\ s a -> s{_cavrsSemanticVersion = a})
-
--- | A link to a public repository for the source code of your application.
-cavrsSourceCodeURL :: Lens' CreateApplicationVersionResponse (Maybe Text)
-cavrsSourceCodeURL = lens _cavrsSourceCodeURL (\ s a -> s{_cavrsSourceCodeURL = a})
-
--- | The application Amazon Resource Name (ARN).
-cavrsApplicationId :: Lens' CreateApplicationVersionResponse (Maybe Text)
-cavrsApplicationId = lens _cavrsApplicationId (\ s a -> s{_cavrsApplicationId = a})
-
--- | A link to the packaged AWS SAM template of your application.
-cavrsTemplateURL :: Lens' CreateApplicationVersionResponse (Maybe Text)
-cavrsTemplateURL = lens _cavrsTemplateURL (\ s a -> s{_cavrsTemplateURL = a})
-
--- | -- | The response status code.
-cavrsResponseStatus :: Lens' CreateApplicationVersionResponse Int
-cavrsResponseStatus = lens _cavrsResponseStatus (\ s a -> s{_cavrsResponseStatus = a})
-
-instance NFData CreateApplicationVersionResponse
-         where
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/CreateCloudFormationChangeSet.hs b/gen/Network/AWS/ServerlessApplicationRepository/CreateCloudFormationChangeSet.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/CreateCloudFormationChangeSet.hs
+++ /dev/null
@@ -1,202 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.CreateCloudFormationChangeSet
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Creates an AWS CloudFormation ChangeSet for the given application.
---
---
-module Network.AWS.ServerlessApplicationRepository.CreateCloudFormationChangeSet
-    (
-    -- * Creating a Request
-      createCloudFormationChangeSet
-    , CreateCloudFormationChangeSet
-    -- * Request Lenses
-    , ccfcsSemanticVersion
-    , ccfcsParameterOverrides
-    , ccfcsStackName
-    , ccfcsApplicationId
-
-    -- * Destructuring the Response
-    , createCloudFormationChangeSetResponse
-    , CreateCloudFormationChangeSetResponse
-    -- * Response Lenses
-    , ccfcsrsSemanticVersion
-    , ccfcsrsChangeSetId
-    , ccfcsrsApplicationId
-    , ccfcsrsStackId
-    , ccfcsrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-import Network.AWS.ServerlessApplicationRepository.Types
-import Network.AWS.ServerlessApplicationRepository.Types.Product
-
--- | /See:/ 'createCloudFormationChangeSet' smart constructor.
-data CreateCloudFormationChangeSet = CreateCloudFormationChangeSet'
-  { _ccfcsSemanticVersion    :: !(Maybe Text)
-  , _ccfcsParameterOverrides :: !(Maybe [ParameterValue])
-  , _ccfcsStackName          :: !(Maybe Text)
-  , _ccfcsApplicationId      :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateCloudFormationChangeSet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ccfcsSemanticVersion' - The semantic version of the application: <https://semver.org/ https://semver.org/>
---
--- * 'ccfcsParameterOverrides' - A list of parameter values for the parameters of the application.
---
--- * 'ccfcsStackName' - The name or the unique ID of the stack for which you are creating a change set. AWS CloudFormation generates  the change set by comparing this stack's information with the information that you submit, such as a modified  template or different parameter input values.  Constraints: Minimum length of 1. Pattern: ([a-zA-Z][-a-zA-Z0-9]*)|(arn:\b(aws|aws-us-gov|aws-cn)\b:[-a-zA-Z0-9:/._+]*)
---
--- * 'ccfcsApplicationId' - The ID of the application to get.
-createCloudFormationChangeSet
-    :: Text -- ^ 'ccfcsApplicationId'
-    -> CreateCloudFormationChangeSet
-createCloudFormationChangeSet pApplicationId_ =
-  CreateCloudFormationChangeSet'
-    { _ccfcsSemanticVersion = Nothing
-    , _ccfcsParameterOverrides = Nothing
-    , _ccfcsStackName = Nothing
-    , _ccfcsApplicationId = pApplicationId_
-    }
-
-
--- | The semantic version of the application: <https://semver.org/ https://semver.org/>
-ccfcsSemanticVersion :: Lens' CreateCloudFormationChangeSet (Maybe Text)
-ccfcsSemanticVersion = lens _ccfcsSemanticVersion (\ s a -> s{_ccfcsSemanticVersion = a})
-
--- | A list of parameter values for the parameters of the application.
-ccfcsParameterOverrides :: Lens' CreateCloudFormationChangeSet [ParameterValue]
-ccfcsParameterOverrides = lens _ccfcsParameterOverrides (\ s a -> s{_ccfcsParameterOverrides = a}) . _Default . _Coerce
-
--- | The name or the unique ID of the stack for which you are creating a change set. AWS CloudFormation generates  the change set by comparing this stack's information with the information that you submit, such as a modified  template or different parameter input values.  Constraints: Minimum length of 1. Pattern: ([a-zA-Z][-a-zA-Z0-9]*)|(arn:\b(aws|aws-us-gov|aws-cn)\b:[-a-zA-Z0-9:/._+]*)
-ccfcsStackName :: Lens' CreateCloudFormationChangeSet (Maybe Text)
-ccfcsStackName = lens _ccfcsStackName (\ s a -> s{_ccfcsStackName = a})
-
--- | The ID of the application to get.
-ccfcsApplicationId :: Lens' CreateCloudFormationChangeSet Text
-ccfcsApplicationId = lens _ccfcsApplicationId (\ s a -> s{_ccfcsApplicationId = a})
-
-instance AWSRequest CreateCloudFormationChangeSet
-         where
-        type Rs CreateCloudFormationChangeSet =
-             CreateCloudFormationChangeSetResponse
-        request = postJSON serverlessApplicationRepository
-        response
-          = receiveJSON
-              (\ s h x ->
-                 CreateCloudFormationChangeSetResponse' <$>
-                   (x .?> "semanticVersion") <*> (x .?> "changeSetId")
-                     <*> (x .?> "applicationId")
-                     <*> (x .?> "stackId")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable CreateCloudFormationChangeSet where
-
-instance NFData CreateCloudFormationChangeSet where
-
-instance ToHeaders CreateCloudFormationChangeSet
-         where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON CreateCloudFormationChangeSet where
-        toJSON CreateCloudFormationChangeSet'{..}
-          = object
-              (catMaybes
-                 [("semanticVersion" .=) <$> _ccfcsSemanticVersion,
-                  ("parameterOverrides" .=) <$>
-                    _ccfcsParameterOverrides,
-                  ("stackName" .=) <$> _ccfcsStackName])
-
-instance ToPath CreateCloudFormationChangeSet where
-        toPath CreateCloudFormationChangeSet'{..}
-          = mconcat
-              ["/applications/", toBS _ccfcsApplicationId,
-               "/changesets"]
-
-instance ToQuery CreateCloudFormationChangeSet where
-        toQuery = const mempty
-
--- | /See:/ 'createCloudFormationChangeSetResponse' smart constructor.
-data CreateCloudFormationChangeSetResponse = CreateCloudFormationChangeSetResponse'
-  { _ccfcsrsSemanticVersion :: !(Maybe Text)
-  , _ccfcsrsChangeSetId     :: !(Maybe Text)
-  , _ccfcsrsApplicationId   :: !(Maybe Text)
-  , _ccfcsrsStackId         :: !(Maybe Text)
-  , _ccfcsrsResponseStatus  :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateCloudFormationChangeSetResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ccfcsrsSemanticVersion' - The semantic version of the application: <https://semver.org/ https://semver.org/>
---
--- * 'ccfcsrsChangeSetId' - The ARN of the change set. Length Constraints: Minimum length of 1. Pattern: Amazon Resource Name (ARN):[-a-zA-Z0-9:/]*
---
--- * 'ccfcsrsApplicationId' - The application Amazon Resource Name (ARN).
---
--- * 'ccfcsrsStackId' - The unique ID of the stack.
---
--- * 'ccfcsrsResponseStatus' - -- | The response status code.
-createCloudFormationChangeSetResponse
-    :: Int -- ^ 'ccfcsrsResponseStatus'
-    -> CreateCloudFormationChangeSetResponse
-createCloudFormationChangeSetResponse pResponseStatus_ =
-  CreateCloudFormationChangeSetResponse'
-    { _ccfcsrsSemanticVersion = Nothing
-    , _ccfcsrsChangeSetId = Nothing
-    , _ccfcsrsApplicationId = Nothing
-    , _ccfcsrsStackId = Nothing
-    , _ccfcsrsResponseStatus = pResponseStatus_
-    }
-
-
--- | The semantic version of the application: <https://semver.org/ https://semver.org/>
-ccfcsrsSemanticVersion :: Lens' CreateCloudFormationChangeSetResponse (Maybe Text)
-ccfcsrsSemanticVersion = lens _ccfcsrsSemanticVersion (\ s a -> s{_ccfcsrsSemanticVersion = a})
-
--- | The ARN of the change set. Length Constraints: Minimum length of 1. Pattern: Amazon Resource Name (ARN):[-a-zA-Z0-9:/]*
-ccfcsrsChangeSetId :: Lens' CreateCloudFormationChangeSetResponse (Maybe Text)
-ccfcsrsChangeSetId = lens _ccfcsrsChangeSetId (\ s a -> s{_ccfcsrsChangeSetId = a})
-
--- | The application Amazon Resource Name (ARN).
-ccfcsrsApplicationId :: Lens' CreateCloudFormationChangeSetResponse (Maybe Text)
-ccfcsrsApplicationId = lens _ccfcsrsApplicationId (\ s a -> s{_ccfcsrsApplicationId = a})
-
--- | The unique ID of the stack.
-ccfcsrsStackId :: Lens' CreateCloudFormationChangeSetResponse (Maybe Text)
-ccfcsrsStackId = lens _ccfcsrsStackId (\ s a -> s{_ccfcsrsStackId = a})
-
--- | -- | The response status code.
-ccfcsrsResponseStatus :: Lens' CreateCloudFormationChangeSetResponse Int
-ccfcsrsResponseStatus = lens _ccfcsrsResponseStatus (\ s a -> s{_ccfcsrsResponseStatus = a})
-
-instance NFData CreateCloudFormationChangeSetResponse
-         where
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/DeleteApplication.hs b/gen/Network/AWS/ServerlessApplicationRepository/DeleteApplication.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/DeleteApplication.hs
+++ /dev/null
@@ -1,102 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.DeleteApplication
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Deletes the specified application.
---
---
-module Network.AWS.ServerlessApplicationRepository.DeleteApplication
-    (
-    -- * Creating a Request
-      deleteApplication
-    , DeleteApplication
-    -- * Request Lenses
-    , daApplicationId
-
-    -- * Destructuring the Response
-    , deleteApplicationResponse
-    , DeleteApplicationResponse
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-import Network.AWS.ServerlessApplicationRepository.Types
-import Network.AWS.ServerlessApplicationRepository.Types.Product
-
--- | /See:/ 'deleteApplication' smart constructor.
-newtype DeleteApplication = DeleteApplication'
-  { _daApplicationId :: Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeleteApplication' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'daApplicationId' - The ID of the application to get.
-deleteApplication
-    :: Text -- ^ 'daApplicationId'
-    -> DeleteApplication
-deleteApplication pApplicationId_ =
-  DeleteApplication' {_daApplicationId = pApplicationId_}
-
-
--- | The ID of the application to get.
-daApplicationId :: Lens' DeleteApplication Text
-daApplicationId = lens _daApplicationId (\ s a -> s{_daApplicationId = a})
-
-instance AWSRequest DeleteApplication where
-        type Rs DeleteApplication = DeleteApplicationResponse
-        request = delete serverlessApplicationRepository
-        response = receiveNull DeleteApplicationResponse'
-
-instance Hashable DeleteApplication where
-
-instance NFData DeleteApplication where
-
-instance ToHeaders DeleteApplication where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath DeleteApplication where
-        toPath DeleteApplication'{..}
-          = mconcat ["/applications/", toBS _daApplicationId]
-
-instance ToQuery DeleteApplication where
-        toQuery = const mempty
-
--- | /See:/ 'deleteApplicationResponse' smart constructor.
-data DeleteApplicationResponse =
-  DeleteApplicationResponse'
-  deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeleteApplicationResponse' with the minimum fields required to make a request.
---
-deleteApplicationResponse
-    :: DeleteApplicationResponse
-deleteApplicationResponse = DeleteApplicationResponse'
-
-
-instance NFData DeleteApplicationResponse where
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/GetApplication.hs b/gen/Network/AWS/ServerlessApplicationRepository/GetApplication.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/GetApplication.hs
+++ /dev/null
@@ -1,238 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.GetApplication
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Gets the specified application.
---
---
-module Network.AWS.ServerlessApplicationRepository.GetApplication
-    (
-    -- * Creating a Request
-      getApplication
-    , GetApplication
-    -- * Request Lenses
-    , gaSemanticVersion
-    , gaApplicationId
-
-    -- * Destructuring the Response
-    , getApplicationResponse
-    , GetApplicationResponse
-    -- * Response Lenses
-    , garsCreationTime
-    , garsHomePageURL
-    , garsLicenseURL
-    , garsReadmeURL
-    , garsApplicationId
-    , garsName
-    , garsVersion
-    , garsAuthor
-    , garsLabels
-    , garsDescription
-    , garsSpdxLicenseId
-    , garsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-import Network.AWS.ServerlessApplicationRepository.Types
-import Network.AWS.ServerlessApplicationRepository.Types.Product
-
--- | /See:/ 'getApplication' smart constructor.
-data GetApplication = GetApplication'
-  { _gaSemanticVersion :: !(Maybe Text)
-  , _gaApplicationId   :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetApplication' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gaSemanticVersion' - The semantic version of the application to get.
---
--- * 'gaApplicationId' - The ID of the application to get.
-getApplication
-    :: Text -- ^ 'gaApplicationId'
-    -> GetApplication
-getApplication pApplicationId_ =
-  GetApplication'
-    {_gaSemanticVersion = Nothing, _gaApplicationId = pApplicationId_}
-
-
--- | The semantic version of the application to get.
-gaSemanticVersion :: Lens' GetApplication (Maybe Text)
-gaSemanticVersion = lens _gaSemanticVersion (\ s a -> s{_gaSemanticVersion = a})
-
--- | The ID of the application to get.
-gaApplicationId :: Lens' GetApplication Text
-gaApplicationId = lens _gaApplicationId (\ s a -> s{_gaApplicationId = a})
-
-instance AWSRequest GetApplication where
-        type Rs GetApplication = GetApplicationResponse
-        request = get serverlessApplicationRepository
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetApplicationResponse' <$>
-                   (x .?> "creationTime") <*> (x .?> "homePageUrl") <*>
-                     (x .?> "licenseUrl")
-                     <*> (x .?> "readmeUrl")
-                     <*> (x .?> "applicationId")
-                     <*> (x .?> "name")
-                     <*> (x .?> "version")
-                     <*> (x .?> "author")
-                     <*> (x .?> "labels" .!@ mempty)
-                     <*> (x .?> "description")
-                     <*> (x .?> "spdxLicenseId")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable GetApplication where
-
-instance NFData GetApplication where
-
-instance ToHeaders GetApplication where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath GetApplication where
-        toPath GetApplication'{..}
-          = mconcat ["/applications/", toBS _gaApplicationId]
-
-instance ToQuery GetApplication where
-        toQuery GetApplication'{..}
-          = mconcat ["semanticVersion" =: _gaSemanticVersion]
-
--- | /See:/ 'getApplicationResponse' smart constructor.
-data GetApplicationResponse = GetApplicationResponse'
-  { _garsCreationTime   :: !(Maybe Text)
-  , _garsHomePageURL    :: !(Maybe Text)
-  , _garsLicenseURL     :: !(Maybe Text)
-  , _garsReadmeURL      :: !(Maybe Text)
-  , _garsApplicationId  :: !(Maybe Text)
-  , _garsName           :: !(Maybe Text)
-  , _garsVersion        :: !(Maybe Version)
-  , _garsAuthor         :: !(Maybe Text)
-  , _garsLabels         :: !(Maybe [Text])
-  , _garsDescription    :: !(Maybe Text)
-  , _garsSpdxLicenseId  :: !(Maybe Text)
-  , _garsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetApplicationResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'garsCreationTime' - The date/time this resource was created.
---
--- * 'garsHomePageURL' - A URL with more information about the application, for example  the location of your GitHub repository for the application.
---
--- * 'garsLicenseURL' - A link to a license file of the app that matches the spdxLicenseID of your application. Max size 5 MB
---
--- * 'garsReadmeURL' - A link to the readme file that contains a more detailed description of the application and how it works in Markdown language. Max size 5 MB
---
--- * 'garsApplicationId' - The application Amazon Resource Name (ARN).
---
--- * 'garsName' - The name of the application. Min Length=1. Max Length=140 Pattern: "[a-zA-Z0-9\\-]+";
---
--- * 'garsVersion' - Version information about the application.
---
--- * 'garsAuthor' - The name of the author publishing the app. Min Length=1. Max Length=127. Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
---
--- * 'garsLabels' - Labels to improve discovery of apps in search results. Min Length=1. Max Length=127. Maximum number of labels: 10 Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
---
--- * 'garsDescription' - The description of the application. Min Length=1. Max Length=256
---
--- * 'garsSpdxLicenseId' - A valid identifier from https://spdx.org/licenses/.
---
--- * 'garsResponseStatus' - -- | The response status code.
-getApplicationResponse
-    :: Int -- ^ 'garsResponseStatus'
-    -> GetApplicationResponse
-getApplicationResponse pResponseStatus_ =
-  GetApplicationResponse'
-    { _garsCreationTime = Nothing
-    , _garsHomePageURL = Nothing
-    , _garsLicenseURL = Nothing
-    , _garsReadmeURL = Nothing
-    , _garsApplicationId = Nothing
-    , _garsName = Nothing
-    , _garsVersion = Nothing
-    , _garsAuthor = Nothing
-    , _garsLabels = Nothing
-    , _garsDescription = Nothing
-    , _garsSpdxLicenseId = Nothing
-    , _garsResponseStatus = pResponseStatus_
-    }
-
-
--- | The date/time this resource was created.
-garsCreationTime :: Lens' GetApplicationResponse (Maybe Text)
-garsCreationTime = lens _garsCreationTime (\ s a -> s{_garsCreationTime = a})
-
--- | A URL with more information about the application, for example  the location of your GitHub repository for the application.
-garsHomePageURL :: Lens' GetApplicationResponse (Maybe Text)
-garsHomePageURL = lens _garsHomePageURL (\ s a -> s{_garsHomePageURL = a})
-
--- | A link to a license file of the app that matches the spdxLicenseID of your application. Max size 5 MB
-garsLicenseURL :: Lens' GetApplicationResponse (Maybe Text)
-garsLicenseURL = lens _garsLicenseURL (\ s a -> s{_garsLicenseURL = a})
-
--- | A link to the readme file that contains a more detailed description of the application and how it works in Markdown language. Max size 5 MB
-garsReadmeURL :: Lens' GetApplicationResponse (Maybe Text)
-garsReadmeURL = lens _garsReadmeURL (\ s a -> s{_garsReadmeURL = a})
-
--- | The application Amazon Resource Name (ARN).
-garsApplicationId :: Lens' GetApplicationResponse (Maybe Text)
-garsApplicationId = lens _garsApplicationId (\ s a -> s{_garsApplicationId = a})
-
--- | The name of the application. Min Length=1. Max Length=140 Pattern: "[a-zA-Z0-9\\-]+";
-garsName :: Lens' GetApplicationResponse (Maybe Text)
-garsName = lens _garsName (\ s a -> s{_garsName = a})
-
--- | Version information about the application.
-garsVersion :: Lens' GetApplicationResponse (Maybe Version)
-garsVersion = lens _garsVersion (\ s a -> s{_garsVersion = a})
-
--- | The name of the author publishing the app. Min Length=1. Max Length=127. Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
-garsAuthor :: Lens' GetApplicationResponse (Maybe Text)
-garsAuthor = lens _garsAuthor (\ s a -> s{_garsAuthor = a})
-
--- | Labels to improve discovery of apps in search results. Min Length=1. Max Length=127. Maximum number of labels: 10 Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
-garsLabels :: Lens' GetApplicationResponse [Text]
-garsLabels = lens _garsLabels (\ s a -> s{_garsLabels = a}) . _Default . _Coerce
-
--- | The description of the application. Min Length=1. Max Length=256
-garsDescription :: Lens' GetApplicationResponse (Maybe Text)
-garsDescription = lens _garsDescription (\ s a -> s{_garsDescription = a})
-
--- | A valid identifier from https://spdx.org/licenses/.
-garsSpdxLicenseId :: Lens' GetApplicationResponse (Maybe Text)
-garsSpdxLicenseId = lens _garsSpdxLicenseId (\ s a -> s{_garsSpdxLicenseId = a})
-
--- | -- | The response status code.
-garsResponseStatus :: Lens' GetApplicationResponse Int
-garsResponseStatus = lens _garsResponseStatus (\ s a -> s{_garsResponseStatus = a})
-
-instance NFData GetApplicationResponse where
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/GetApplicationPolicy.hs b/gen/Network/AWS/ServerlessApplicationRepository/GetApplicationPolicy.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/GetApplicationPolicy.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.GetApplicationPolicy
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Gets the policy for the specified application.
---
---
-module Network.AWS.ServerlessApplicationRepository.GetApplicationPolicy
-    (
-    -- * Creating a Request
-      getApplicationPolicy
-    , GetApplicationPolicy
-    -- * Request Lenses
-    , gapApplicationId
-
-    -- * Destructuring the Response
-    , getApplicationPolicyResponse
-    , GetApplicationPolicyResponse
-    -- * Response Lenses
-    , gaprsStatements
-    , gaprsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-import Network.AWS.ServerlessApplicationRepository.Types
-import Network.AWS.ServerlessApplicationRepository.Types.Product
-
--- | /See:/ 'getApplicationPolicy' smart constructor.
-newtype GetApplicationPolicy = GetApplicationPolicy'
-  { _gapApplicationId :: Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetApplicationPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gapApplicationId' - The ID of the application to get.
-getApplicationPolicy
-    :: Text -- ^ 'gapApplicationId'
-    -> GetApplicationPolicy
-getApplicationPolicy pApplicationId_ =
-  GetApplicationPolicy' {_gapApplicationId = pApplicationId_}
-
-
--- | The ID of the application to get.
-gapApplicationId :: Lens' GetApplicationPolicy Text
-gapApplicationId = lens _gapApplicationId (\ s a -> s{_gapApplicationId = a})
-
-instance AWSRequest GetApplicationPolicy where
-        type Rs GetApplicationPolicy =
-             GetApplicationPolicyResponse
-        request = get serverlessApplicationRepository
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetApplicationPolicyResponse' <$>
-                   (x .?> "statements" .!@ mempty) <*>
-                     (pure (fromEnum s)))
-
-instance Hashable GetApplicationPolicy where
-
-instance NFData GetApplicationPolicy where
-
-instance ToHeaders GetApplicationPolicy where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath GetApplicationPolicy where
-        toPath GetApplicationPolicy'{..}
-          = mconcat
-              ["/applications/", toBS _gapApplicationId, "/policy"]
-
-instance ToQuery GetApplicationPolicy where
-        toQuery = const mempty
-
--- | /See:/ 'getApplicationPolicyResponse' smart constructor.
-data GetApplicationPolicyResponse = GetApplicationPolicyResponse'
-  { _gaprsStatements     :: !(Maybe [ApplicationPolicyStatement])
-  , _gaprsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetApplicationPolicyResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gaprsStatements' - Array of policy statements applied to the application.
---
--- * 'gaprsResponseStatus' - -- | The response status code.
-getApplicationPolicyResponse
-    :: Int -- ^ 'gaprsResponseStatus'
-    -> GetApplicationPolicyResponse
-getApplicationPolicyResponse pResponseStatus_ =
-  GetApplicationPolicyResponse'
-    {_gaprsStatements = Nothing, _gaprsResponseStatus = pResponseStatus_}
-
-
--- | Array of policy statements applied to the application.
-gaprsStatements :: Lens' GetApplicationPolicyResponse [ApplicationPolicyStatement]
-gaprsStatements = lens _gaprsStatements (\ s a -> s{_gaprsStatements = a}) . _Default . _Coerce
-
--- | -- | The response status code.
-gaprsResponseStatus :: Lens' GetApplicationPolicyResponse Int
-gaprsResponseStatus = lens _gaprsResponseStatus (\ s a -> s{_gaprsResponseStatus = a})
-
-instance NFData GetApplicationPolicyResponse where
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/ListApplicationVersions.hs b/gen/Network/AWS/ServerlessApplicationRepository/ListApplicationVersions.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/ListApplicationVersions.hs
+++ /dev/null
@@ -1,164 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.ListApplicationVersions
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Lists versions for the specified application.
---
---
-module Network.AWS.ServerlessApplicationRepository.ListApplicationVersions
-    (
-    -- * Creating a Request
-      listApplicationVersions
-    , ListApplicationVersions
-    -- * Request Lenses
-    , lavNextToken
-    , lavMaxItems
-    , lavApplicationId
-
-    -- * Destructuring the Response
-    , listApplicationVersionsResponse
-    , ListApplicationVersionsResponse
-    -- * Response Lenses
-    , lavrsVersions
-    , lavrsNextToken
-    , lavrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-import Network.AWS.ServerlessApplicationRepository.Types
-import Network.AWS.ServerlessApplicationRepository.Types.Product
-
--- | /See:/ 'listApplicationVersions' smart constructor.
-data ListApplicationVersions = ListApplicationVersions'
-  { _lavNextToken     :: !(Maybe Text)
-  , _lavMaxItems      :: !(Maybe Nat)
-  , _lavApplicationId :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListApplicationVersions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lavNextToken' - A token to specify where to start paginating.
---
--- * 'lavMaxItems' - The total number of items to return.
---
--- * 'lavApplicationId' - The ID of the application to get.
-listApplicationVersions
-    :: Text -- ^ 'lavApplicationId'
-    -> ListApplicationVersions
-listApplicationVersions pApplicationId_ =
-  ListApplicationVersions'
-    { _lavNextToken = Nothing
-    , _lavMaxItems = Nothing
-    , _lavApplicationId = pApplicationId_
-    }
-
-
--- | A token to specify where to start paginating.
-lavNextToken :: Lens' ListApplicationVersions (Maybe Text)
-lavNextToken = lens _lavNextToken (\ s a -> s{_lavNextToken = a})
-
--- | The total number of items to return.
-lavMaxItems :: Lens' ListApplicationVersions (Maybe Natural)
-lavMaxItems = lens _lavMaxItems (\ s a -> s{_lavMaxItems = a}) . mapping _Nat
-
--- | The ID of the application to get.
-lavApplicationId :: Lens' ListApplicationVersions Text
-lavApplicationId = lens _lavApplicationId (\ s a -> s{_lavApplicationId = a})
-
-instance AWSRequest ListApplicationVersions where
-        type Rs ListApplicationVersions =
-             ListApplicationVersionsResponse
-        request = get serverlessApplicationRepository
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListApplicationVersionsResponse' <$>
-                   (x .?> "versions" .!@ mempty) <*> (x .?> "nextToken")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListApplicationVersions where
-
-instance NFData ListApplicationVersions where
-
-instance ToHeaders ListApplicationVersions where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath ListApplicationVersions where
-        toPath ListApplicationVersions'{..}
-          = mconcat
-              ["/applications/", toBS _lavApplicationId,
-               "/versions"]
-
-instance ToQuery ListApplicationVersions where
-        toQuery ListApplicationVersions'{..}
-          = mconcat
-              ["nextToken" =: _lavNextToken,
-               "maxItems" =: _lavMaxItems]
-
--- | /See:/ 'listApplicationVersionsResponse' smart constructor.
-data ListApplicationVersionsResponse = ListApplicationVersionsResponse'
-  { _lavrsVersions       :: !(Maybe [VersionSummary])
-  , _lavrsNextToken      :: !(Maybe Text)
-  , _lavrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListApplicationVersionsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lavrsVersions' - Array of version summaries for the application.
---
--- * 'lavrsNextToken' - The token to request the next page of results.
---
--- * 'lavrsResponseStatus' - -- | The response status code.
-listApplicationVersionsResponse
-    :: Int -- ^ 'lavrsResponseStatus'
-    -> ListApplicationVersionsResponse
-listApplicationVersionsResponse pResponseStatus_ =
-  ListApplicationVersionsResponse'
-    { _lavrsVersions = Nothing
-    , _lavrsNextToken = Nothing
-    , _lavrsResponseStatus = pResponseStatus_
-    }
-
-
--- | Array of version summaries for the application.
-lavrsVersions :: Lens' ListApplicationVersionsResponse [VersionSummary]
-lavrsVersions = lens _lavrsVersions (\ s a -> s{_lavrsVersions = a}) . _Default . _Coerce
-
--- | The token to request the next page of results.
-lavrsNextToken :: Lens' ListApplicationVersionsResponse (Maybe Text)
-lavrsNextToken = lens _lavrsNextToken (\ s a -> s{_lavrsNextToken = a})
-
--- | -- | The response status code.
-lavrsResponseStatus :: Lens' ListApplicationVersionsResponse Int
-lavrsResponseStatus = lens _lavrsResponseStatus (\ s a -> s{_lavrsResponseStatus = a})
-
-instance NFData ListApplicationVersionsResponse where
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/ListApplications.hs b/gen/Network/AWS/ServerlessApplicationRepository/ListApplications.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/ListApplications.hs
+++ /dev/null
@@ -1,148 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.ListApplications
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Lists applications owned by the requester.
---
---
-module Network.AWS.ServerlessApplicationRepository.ListApplications
-    (
-    -- * Creating a Request
-      listApplications
-    , ListApplications
-    -- * Request Lenses
-    , laNextToken
-    , laMaxItems
-
-    -- * Destructuring the Response
-    , listApplicationsResponse
-    , ListApplicationsResponse
-    -- * Response Lenses
-    , larsNextToken
-    , larsApplications
-    , larsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-import Network.AWS.ServerlessApplicationRepository.Types
-import Network.AWS.ServerlessApplicationRepository.Types.Product
-
--- | /See:/ 'listApplications' smart constructor.
-data ListApplications = ListApplications'
-  { _laNextToken :: !(Maybe Text)
-  , _laMaxItems  :: !(Maybe Nat)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListApplications' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'laNextToken' - A token to specify where to start paginating.
---
--- * 'laMaxItems' - The total number of items to return.
-listApplications
-    :: ListApplications
-listApplications =
-  ListApplications' {_laNextToken = Nothing, _laMaxItems = Nothing}
-
-
--- | A token to specify where to start paginating.
-laNextToken :: Lens' ListApplications (Maybe Text)
-laNextToken = lens _laNextToken (\ s a -> s{_laNextToken = a})
-
--- | The total number of items to return.
-laMaxItems :: Lens' ListApplications (Maybe Natural)
-laMaxItems = lens _laMaxItems (\ s a -> s{_laMaxItems = a}) . mapping _Nat
-
-instance AWSRequest ListApplications where
-        type Rs ListApplications = ListApplicationsResponse
-        request = get serverlessApplicationRepository
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListApplicationsResponse' <$>
-                   (x .?> "nextToken") <*>
-                     (x .?> "applications" .!@ mempty)
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListApplications where
-
-instance NFData ListApplications where
-
-instance ToHeaders ListApplications where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath ListApplications where
-        toPath = const "/applications"
-
-instance ToQuery ListApplications where
-        toQuery ListApplications'{..}
-          = mconcat
-              ["nextToken" =: _laNextToken,
-               "maxItems" =: _laMaxItems]
-
--- | /See:/ 'listApplicationsResponse' smart constructor.
-data ListApplicationsResponse = ListApplicationsResponse'
-  { _larsNextToken      :: !(Maybe Text)
-  , _larsApplications   :: !(Maybe [ApplicationSummary])
-  , _larsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListApplicationsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'larsNextToken' - The token to request the next page of results.
---
--- * 'larsApplications' - Array of application summaries.
---
--- * 'larsResponseStatus' - -- | The response status code.
-listApplicationsResponse
-    :: Int -- ^ 'larsResponseStatus'
-    -> ListApplicationsResponse
-listApplicationsResponse pResponseStatus_ =
-  ListApplicationsResponse'
-    { _larsNextToken = Nothing
-    , _larsApplications = Nothing
-    , _larsResponseStatus = pResponseStatus_
-    }
-
-
--- | The token to request the next page of results.
-larsNextToken :: Lens' ListApplicationsResponse (Maybe Text)
-larsNextToken = lens _larsNextToken (\ s a -> s{_larsNextToken = a})
-
--- | Array of application summaries.
-larsApplications :: Lens' ListApplicationsResponse [ApplicationSummary]
-larsApplications = lens _larsApplications (\ s a -> s{_larsApplications = a}) . _Default . _Coerce
-
--- | -- | The response status code.
-larsResponseStatus :: Lens' ListApplicationsResponse Int
-larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a})
-
-instance NFData ListApplicationsResponse where
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/PutApplicationPolicy.hs b/gen/Network/AWS/ServerlessApplicationRepository/PutApplicationPolicy.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/PutApplicationPolicy.hs
+++ /dev/null
@@ -1,143 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.PutApplicationPolicy
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Puts the policy for the specified application.
---
---
-module Network.AWS.ServerlessApplicationRepository.PutApplicationPolicy
-    (
-    -- * Creating a Request
-      putApplicationPolicy
-    , PutApplicationPolicy
-    -- * Request Lenses
-    , papStatements
-    , papApplicationId
-
-    -- * Destructuring the Response
-    , putApplicationPolicyResponse
-    , PutApplicationPolicyResponse
-    -- * Response Lenses
-    , paprsStatements
-    , paprsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-import Network.AWS.ServerlessApplicationRepository.Types
-import Network.AWS.ServerlessApplicationRepository.Types.Product
-
--- | /See:/ 'putApplicationPolicy' smart constructor.
-data PutApplicationPolicy = PutApplicationPolicy'
-  { _papStatements    :: !(Maybe [ApplicationPolicyStatement])
-  , _papApplicationId :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PutApplicationPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'papStatements' - Array of policy statements applied to the application.
---
--- * 'papApplicationId' - The ID of the application to get.
-putApplicationPolicy
-    :: Text -- ^ 'papApplicationId'
-    -> PutApplicationPolicy
-putApplicationPolicy pApplicationId_ =
-  PutApplicationPolicy'
-    {_papStatements = Nothing, _papApplicationId = pApplicationId_}
-
-
--- | Array of policy statements applied to the application.
-papStatements :: Lens' PutApplicationPolicy [ApplicationPolicyStatement]
-papStatements = lens _papStatements (\ s a -> s{_papStatements = a}) . _Default . _Coerce
-
--- | The ID of the application to get.
-papApplicationId :: Lens' PutApplicationPolicy Text
-papApplicationId = lens _papApplicationId (\ s a -> s{_papApplicationId = a})
-
-instance AWSRequest PutApplicationPolicy where
-        type Rs PutApplicationPolicy =
-             PutApplicationPolicyResponse
-        request = putJSON serverlessApplicationRepository
-        response
-          = receiveJSON
-              (\ s h x ->
-                 PutApplicationPolicyResponse' <$>
-                   (x .?> "statements" .!@ mempty) <*>
-                     (pure (fromEnum s)))
-
-instance Hashable PutApplicationPolicy where
-
-instance NFData PutApplicationPolicy where
-
-instance ToHeaders PutApplicationPolicy where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON PutApplicationPolicy where
-        toJSON PutApplicationPolicy'{..}
-          = object
-              (catMaybes [("statements" .=) <$> _papStatements])
-
-instance ToPath PutApplicationPolicy where
-        toPath PutApplicationPolicy'{..}
-          = mconcat
-              ["/applications/", toBS _papApplicationId, "/policy"]
-
-instance ToQuery PutApplicationPolicy where
-        toQuery = const mempty
-
--- | /See:/ 'putApplicationPolicyResponse' smart constructor.
-data PutApplicationPolicyResponse = PutApplicationPolicyResponse'
-  { _paprsStatements     :: !(Maybe [ApplicationPolicyStatement])
-  , _paprsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PutApplicationPolicyResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'paprsStatements' - Array of policy statements applied to the application.
---
--- * 'paprsResponseStatus' - -- | The response status code.
-putApplicationPolicyResponse
-    :: Int -- ^ 'paprsResponseStatus'
-    -> PutApplicationPolicyResponse
-putApplicationPolicyResponse pResponseStatus_ =
-  PutApplicationPolicyResponse'
-    {_paprsStatements = Nothing, _paprsResponseStatus = pResponseStatus_}
-
-
--- | Array of policy statements applied to the application.
-paprsStatements :: Lens' PutApplicationPolicyResponse [ApplicationPolicyStatement]
-paprsStatements = lens _paprsStatements (\ s a -> s{_paprsStatements = a}) . _Default . _Coerce
-
--- | -- | The response status code.
-paprsResponseStatus :: Lens' PutApplicationPolicyResponse Int
-paprsResponseStatus = lens _paprsResponseStatus (\ s a -> s{_paprsResponseStatus = a})
-
-instance NFData PutApplicationPolicyResponse where
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/Types.hs b/gen/Network/AWS/ServerlessApplicationRepository/Types.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/Types.hs
+++ /dev/null
@@ -1,186 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.Types
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.AWS.ServerlessApplicationRepository.Types
-    (
-    -- * Service Configuration
-      serverlessApplicationRepository
-
-    -- * Errors
-    , _ConflictException
-    , _ForbiddenException
-    , _NotFoundException
-    , _TooManyRequestsException
-    , _InternalServerErrorException
-    , _BadRequestException
-
-    -- * ApplicationPolicyStatement
-    , ApplicationPolicyStatement
-    , applicationPolicyStatement
-    , apsStatementId
-    , apsPrincipals
-    , apsActions
-
-    -- * ApplicationSummary
-    , ApplicationSummary
-    , applicationSummary
-    , asCreationTime
-    , asHomePageURL
-    , asLabels
-    , asSpdxLicenseId
-    , asDescription
-    , asAuthor
-    , asApplicationId
-    , asName
-
-    -- * ParameterDefinition
-    , ParameterDefinition
-    , parameterDefinition
-    , pdMaxValue
-    , pdMaxLength
-    , pdConstraintDescription
-    , pdMinLength
-    , pdDefaultValue
-    , pdAllowedPattern
-    , pdNoEcho
-    , pdType
-    , pdAllowedValues
-    , pdDescription
-    , pdMinValue
-    , pdReferencedByResources
-    , pdName
-
-    -- * ParameterValue
-    , ParameterValue
-    , parameterValue
-    , pvValue
-    , pvName
-
-    -- * Version
-    , Version
-    , version
-    , vSourceCodeURL
-    , vTemplateURL
-    , vParameterDefinitions
-    , vCreationTime
-    , vApplicationId
-    , vSemanticVersion
-
-    -- * VersionSummary
-    , VersionSummary
-    , versionSummary
-    , vsSourceCodeURL
-    , vsCreationTime
-    , vsApplicationId
-    , vsSemanticVersion
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.ServerlessApplicationRepository.Types.Product
-import Network.AWS.ServerlessApplicationRepository.Types.Sum
-import Network.AWS.Sign.V4
-
--- | API version @2017-09-08@ of the Amazon ServerlessApplicationRepository SDK configuration.
-serverlessApplicationRepository :: Service
-serverlessApplicationRepository =
-  Service
-    { _svcAbbrev = "ServerlessApplicationRepository"
-    , _svcSigner = v4
-    , _svcPrefix = "serverlessrepo"
-    , _svcVersion = "2017-09-08"
-    , _svcEndpoint = defaultEndpoint serverlessApplicationRepository
-    , _svcTimeout = Just 70
-    , _svcCheck = statusSuccess
-    , _svcError = parseJSONError "ServerlessApplicationRepository"
-    , _svcRetry = retry
-    }
-  where
-    retry =
-      Exponential
-        { _retryBase = 5.0e-2
-        , _retryGrowth = 2
-        , _retryAttempts = 5
-        , _retryCheck = check
-        }
-    check e
-      | has (hasCode "ThrottledException" . hasStatus 400) e =
-        Just "throttled_exception"
-      | has (hasStatus 429) e = Just "too_many_requests"
-      | has (hasCode "ThrottlingException" . hasStatus 400) e =
-        Just "throttling_exception"
-      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
-      | has (hasStatus 504) e = Just "gateway_timeout"
-      | has (hasCode "RequestThrottledException" . hasStatus 400) e =
-        Just "request_throttled_exception"
-      | has (hasStatus 502) e = Just "bad_gateway"
-      | has (hasStatus 503) e = Just "service_unavailable"
-      | has (hasStatus 500) e = Just "general_server_error"
-      | has (hasStatus 509) e = Just "limit_exceeded"
-      | otherwise = Nothing
-
-
--- | The resource already exists.
---
---
-_ConflictException :: AsError a => Getting (First ServiceError) a ServiceError
-_ConflictException =
-  _MatchServiceError serverlessApplicationRepository "ConflictException" .
-  hasStatus 409
-
-
--- | The client is not authenticated.
---
---
-_ForbiddenException :: AsError a => Getting (First ServiceError) a ServiceError
-_ForbiddenException =
-  _MatchServiceError serverlessApplicationRepository "ForbiddenException" .
-  hasStatus 403
-
-
--- | The resource (for example, an access policy statement) specified in the request does not exist.
---
---
-_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
-_NotFoundException =
-  _MatchServiceError serverlessApplicationRepository "NotFoundException" .
-  hasStatus 404
-
-
--- | The client is sending more than the allowed number of requests per unit time.
---
---
-_TooManyRequestsException :: AsError a => Getting (First ServiceError) a ServiceError
-_TooManyRequestsException =
-  _MatchServiceError serverlessApplicationRepository "TooManyRequestsException" .
-  hasStatus 429
-
-
--- | The AWS Serverless Application Repository service encountered an internal error.
---
---
-_InternalServerErrorException :: AsError a => Getting (First ServiceError) a ServiceError
-_InternalServerErrorException =
-  _MatchServiceError
-    serverlessApplicationRepository
-    "InternalServerErrorException" .
-  hasStatus 500
-
-
--- | One of the parameters in the request is invalid.
---
---
-_BadRequestException :: AsError a => Getting (First ServiceError) a ServiceError
-_BadRequestException =
-  _MatchServiceError serverlessApplicationRepository "BadRequestException" .
-  hasStatus 400
-
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/Types/Product.hs b/gen/Network/AWS/ServerlessApplicationRepository/Types/Product.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/Types/Product.hs
+++ /dev/null
@@ -1,531 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.Types.Product
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.AWS.ServerlessApplicationRepository.Types.Product where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.ServerlessApplicationRepository.Types.Sum
-
--- | Policy statement applied to the application.
---
---
---
--- /See:/ 'applicationPolicyStatement' smart constructor.
-data ApplicationPolicyStatement = ApplicationPolicyStatement'
-  { _apsStatementId :: !(Maybe Text)
-  , _apsPrincipals  :: ![Text]
-  , _apsActions     :: ![Text]
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ApplicationPolicyStatement' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'apsStatementId' - A unique ID for the statement.
---
--- * 'apsPrincipals' - An AWS account ID, or * to make the application public.
---
--- * 'apsActions' - A list of supported actions:  GetApplication    CreateCloudFormationChangeSet    ListApplicationVersions    SearchApplications    Deploy (Note: This action enables all other actions above.)
-applicationPolicyStatement
-    :: ApplicationPolicyStatement
-applicationPolicyStatement =
-  ApplicationPolicyStatement'
-    {_apsStatementId = Nothing, _apsPrincipals = mempty, _apsActions = mempty}
-
-
--- | A unique ID for the statement.
-apsStatementId :: Lens' ApplicationPolicyStatement (Maybe Text)
-apsStatementId = lens _apsStatementId (\ s a -> s{_apsStatementId = a})
-
--- | An AWS account ID, or * to make the application public.
-apsPrincipals :: Lens' ApplicationPolicyStatement [Text]
-apsPrincipals = lens _apsPrincipals (\ s a -> s{_apsPrincipals = a}) . _Coerce
-
--- | A list of supported actions:  GetApplication    CreateCloudFormationChangeSet    ListApplicationVersions    SearchApplications    Deploy (Note: This action enables all other actions above.)
-apsActions :: Lens' ApplicationPolicyStatement [Text]
-apsActions = lens _apsActions (\ s a -> s{_apsActions = a}) . _Coerce
-
-instance FromJSON ApplicationPolicyStatement where
-        parseJSON
-          = withObject "ApplicationPolicyStatement"
-              (\ x ->
-                 ApplicationPolicyStatement' <$>
-                   (x .:? "statementId") <*>
-                     (x .:? "principals" .!= mempty)
-                     <*> (x .:? "actions" .!= mempty))
-
-instance Hashable ApplicationPolicyStatement where
-
-instance NFData ApplicationPolicyStatement where
-
-instance ToJSON ApplicationPolicyStatement where
-        toJSON ApplicationPolicyStatement'{..}
-          = object
-              (catMaybes
-                 [("statementId" .=) <$> _apsStatementId,
-                  Just ("principals" .= _apsPrincipals),
-                  Just ("actions" .= _apsActions)])
-
--- | Summary of details about the application.
---
---
---
--- /See:/ 'applicationSummary' smart constructor.
-data ApplicationSummary = ApplicationSummary'
-  { _asCreationTime  :: !(Maybe Text)
-  , _asHomePageURL   :: !(Maybe Text)
-  , _asLabels        :: !(Maybe [Text])
-  , _asSpdxLicenseId :: !(Maybe Text)
-  , _asDescription   :: !Text
-  , _asAuthor        :: !Text
-  , _asApplicationId :: !Text
-  , _asName          :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ApplicationSummary' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'asCreationTime' - The date/time this resource was created.
---
--- * 'asHomePageURL' - A URL with more information about the application, for example  the location of your GitHub repository for the application.
---
--- * 'asLabels' - Labels to improve discovery of apps in search results. Min Length=1. Max Length=127. Maximum number of labels: 10 Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
---
--- * 'asSpdxLicenseId' - A valid identifier from <https://spdx.org/licenses/ https://spdx.org/licenses/> .
---
--- * 'asDescription' - The description of the application. Min Length=1. Max Length=256
---
--- * 'asAuthor' - The name of the author publishing the app. Min Length=1. Max Length=127. Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
---
--- * 'asApplicationId' - The application ARN.
---
--- * 'asName' - The name of the application. Min Length=1. Max Length=140 Pattern: "[a-zA-Z0-9\\-]+";
-applicationSummary
-    :: Text -- ^ 'asDescription'
-    -> Text -- ^ 'asAuthor'
-    -> Text -- ^ 'asApplicationId'
-    -> Text -- ^ 'asName'
-    -> ApplicationSummary
-applicationSummary pDescription_ pAuthor_ pApplicationId_ pName_ =
-  ApplicationSummary'
-    { _asCreationTime = Nothing
-    , _asHomePageURL = Nothing
-    , _asLabels = Nothing
-    , _asSpdxLicenseId = Nothing
-    , _asDescription = pDescription_
-    , _asAuthor = pAuthor_
-    , _asApplicationId = pApplicationId_
-    , _asName = pName_
-    }
-
-
--- | The date/time this resource was created.
-asCreationTime :: Lens' ApplicationSummary (Maybe Text)
-asCreationTime = lens _asCreationTime (\ s a -> s{_asCreationTime = a})
-
--- | A URL with more information about the application, for example  the location of your GitHub repository for the application.
-asHomePageURL :: Lens' ApplicationSummary (Maybe Text)
-asHomePageURL = lens _asHomePageURL (\ s a -> s{_asHomePageURL = a})
-
--- | Labels to improve discovery of apps in search results. Min Length=1. Max Length=127. Maximum number of labels: 10 Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
-asLabels :: Lens' ApplicationSummary [Text]
-asLabels = lens _asLabels (\ s a -> s{_asLabels = a}) . _Default . _Coerce
-
--- | A valid identifier from <https://spdx.org/licenses/ https://spdx.org/licenses/> .
-asSpdxLicenseId :: Lens' ApplicationSummary (Maybe Text)
-asSpdxLicenseId = lens _asSpdxLicenseId (\ s a -> s{_asSpdxLicenseId = a})
-
--- | The description of the application. Min Length=1. Max Length=256
-asDescription :: Lens' ApplicationSummary Text
-asDescription = lens _asDescription (\ s a -> s{_asDescription = a})
-
--- | The name of the author publishing the app. Min Length=1. Max Length=127. Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
-asAuthor :: Lens' ApplicationSummary Text
-asAuthor = lens _asAuthor (\ s a -> s{_asAuthor = a})
-
--- | The application ARN.
-asApplicationId :: Lens' ApplicationSummary Text
-asApplicationId = lens _asApplicationId (\ s a -> s{_asApplicationId = a})
-
--- | The name of the application. Min Length=1. Max Length=140 Pattern: "[a-zA-Z0-9\\-]+";
-asName :: Lens' ApplicationSummary Text
-asName = lens _asName (\ s a -> s{_asName = a})
-
-instance FromJSON ApplicationSummary where
-        parseJSON
-          = withObject "ApplicationSummary"
-              (\ x ->
-                 ApplicationSummary' <$>
-                   (x .:? "creationTime") <*> (x .:? "homePageUrl") <*>
-                     (x .:? "labels" .!= mempty)
-                     <*> (x .:? "spdxLicenseId")
-                     <*> (x .: "description")
-                     <*> (x .: "author")
-                     <*> (x .: "applicationId")
-                     <*> (x .: "name"))
-
-instance Hashable ApplicationSummary where
-
-instance NFData ApplicationSummary where
-
--- | Parameters supported by the application.
---
---
---
--- /See:/ 'parameterDefinition' smart constructor.
-data ParameterDefinition = ParameterDefinition'
-  { _pdMaxValue              :: !(Maybe Int)
-  , _pdMaxLength             :: !(Maybe Int)
-  , _pdConstraintDescription :: !(Maybe Text)
-  , _pdMinLength             :: !(Maybe Int)
-  , _pdDefaultValue          :: !(Maybe Text)
-  , _pdAllowedPattern        :: !(Maybe Text)
-  , _pdNoEcho                :: !(Maybe Bool)
-  , _pdType                  :: !(Maybe Text)
-  , _pdAllowedValues         :: !(Maybe [Text])
-  , _pdDescription           :: !(Maybe Text)
-  , _pdMinValue              :: !(Maybe Int)
-  , _pdReferencedByResources :: ![Text]
-  , _pdName                  :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ParameterDefinition' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pdMaxValue' - A numeric value that determines the largest numeric value you want to allow for Number types.
---
--- * 'pdMaxLength' - An integer value that determines the largest number of characters you want to allow for String types.
---
--- * 'pdConstraintDescription' - A string that explains a constraint when the constraint is violated. For example, without a constraint description,  a parameter that has an allowed pattern of [A-Za-z0-9]+ displays the following error message when the user  specifies an invalid value:  Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+   By adding a constraint description, such as "must contain only uppercase and lowercase letters, and numbers," you can display  the following customized error message:  Malformed input-Parameter MyParameter must contain only uppercase and lowercase letters and numbers.
---
--- * 'pdMinLength' - An integer value that determines the smallest number of characters you want to allow for String types.
---
--- * 'pdDefaultValue' - A value of the appropriate type for the template to use if no value is specified when a stack is created.  If you define constraints for the parameter, you must specify a value that adheres to those constraints.
---
--- * 'pdAllowedPattern' - A regular expression that represents the patterns to allow for String types.
---
--- * 'pdNoEcho' - Whether to mask the parameter value whenever anyone makes a call that describes the stack. If you set the  value to true, the parameter value is masked with asterisks (*****).
---
--- * 'pdType' - The type of the parameter. Valid values: String | Number | List<Number> | CommaDelimitedList    String: A literal string. For example, users could specify "MyUserName".  Number: An integer or float. AWS CloudFormation validates the parameter value as a number; however, when you use the  parameter elsewhere in your template (for example, by using the Ref intrinsic function), the parameter value becomes a string. For example, users could specify "8888".  List<Number>: An array of integers or floats that are separated by commas. AWS CloudFormation validates the parameter value as numbers; however, when  you use the parameter elsewhere in your template (for example, by using the Ref intrinsic function), the parameter value becomes a list of strings. For example, users could specify "80,20", and a Ref results in ["80","20"].  CommaDelimitedList: An array of literal strings that are separated by commas. The total number of strings should be one more than the total number of commas.  Also, each member string is space-trimmed. For example, users could specify "test,dev,prod", and a Ref results in ["test","dev","prod"].
---
--- * 'pdAllowedValues' - Array containing the list of values allowed for the parameter.
---
--- * 'pdDescription' - A string of up to 4,000 characters that describes the parameter.
---
--- * 'pdMinValue' - A numeric value that determines the smallest numeric value you want to allow for Number types.
---
--- * 'pdReferencedByResources' - A list of AWS SAM resources that use this parameter.
---
--- * 'pdName' - The name of the parameter.
-parameterDefinition
-    :: Text -- ^ 'pdName'
-    -> ParameterDefinition
-parameterDefinition pName_ =
-  ParameterDefinition'
-    { _pdMaxValue = Nothing
-    , _pdMaxLength = Nothing
-    , _pdConstraintDescription = Nothing
-    , _pdMinLength = Nothing
-    , _pdDefaultValue = Nothing
-    , _pdAllowedPattern = Nothing
-    , _pdNoEcho = Nothing
-    , _pdType = Nothing
-    , _pdAllowedValues = Nothing
-    , _pdDescription = Nothing
-    , _pdMinValue = Nothing
-    , _pdReferencedByResources = mempty
-    , _pdName = pName_
-    }
-
-
--- | A numeric value that determines the largest numeric value you want to allow for Number types.
-pdMaxValue :: Lens' ParameterDefinition (Maybe Int)
-pdMaxValue = lens _pdMaxValue (\ s a -> s{_pdMaxValue = a})
-
--- | An integer value that determines the largest number of characters you want to allow for String types.
-pdMaxLength :: Lens' ParameterDefinition (Maybe Int)
-pdMaxLength = lens _pdMaxLength (\ s a -> s{_pdMaxLength = a})
-
--- | A string that explains a constraint when the constraint is violated. For example, without a constraint description,  a parameter that has an allowed pattern of [A-Za-z0-9]+ displays the following error message when the user  specifies an invalid value:  Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+   By adding a constraint description, such as "must contain only uppercase and lowercase letters, and numbers," you can display  the following customized error message:  Malformed input-Parameter MyParameter must contain only uppercase and lowercase letters and numbers.
-pdConstraintDescription :: Lens' ParameterDefinition (Maybe Text)
-pdConstraintDescription = lens _pdConstraintDescription (\ s a -> s{_pdConstraintDescription = a})
-
--- | An integer value that determines the smallest number of characters you want to allow for String types.
-pdMinLength :: Lens' ParameterDefinition (Maybe Int)
-pdMinLength = lens _pdMinLength (\ s a -> s{_pdMinLength = a})
-
--- | A value of the appropriate type for the template to use if no value is specified when a stack is created.  If you define constraints for the parameter, you must specify a value that adheres to those constraints.
-pdDefaultValue :: Lens' ParameterDefinition (Maybe Text)
-pdDefaultValue = lens _pdDefaultValue (\ s a -> s{_pdDefaultValue = a})
-
--- | A regular expression that represents the patterns to allow for String types.
-pdAllowedPattern :: Lens' ParameterDefinition (Maybe Text)
-pdAllowedPattern = lens _pdAllowedPattern (\ s a -> s{_pdAllowedPattern = a})
-
--- | Whether to mask the parameter value whenever anyone makes a call that describes the stack. If you set the  value to true, the parameter value is masked with asterisks (*****).
-pdNoEcho :: Lens' ParameterDefinition (Maybe Bool)
-pdNoEcho = lens _pdNoEcho (\ s a -> s{_pdNoEcho = a})
-
--- | The type of the parameter. Valid values: String | Number | List<Number> | CommaDelimitedList    String: A literal string. For example, users could specify "MyUserName".  Number: An integer or float. AWS CloudFormation validates the parameter value as a number; however, when you use the  parameter elsewhere in your template (for example, by using the Ref intrinsic function), the parameter value becomes a string. For example, users could specify "8888".  List<Number>: An array of integers or floats that are separated by commas. AWS CloudFormation validates the parameter value as numbers; however, when  you use the parameter elsewhere in your template (for example, by using the Ref intrinsic function), the parameter value becomes a list of strings. For example, users could specify "80,20", and a Ref results in ["80","20"].  CommaDelimitedList: An array of literal strings that are separated by commas. The total number of strings should be one more than the total number of commas.  Also, each member string is space-trimmed. For example, users could specify "test,dev,prod", and a Ref results in ["test","dev","prod"].
-pdType :: Lens' ParameterDefinition (Maybe Text)
-pdType = lens _pdType (\ s a -> s{_pdType = a})
-
--- | Array containing the list of values allowed for the parameter.
-pdAllowedValues :: Lens' ParameterDefinition [Text]
-pdAllowedValues = lens _pdAllowedValues (\ s a -> s{_pdAllowedValues = a}) . _Default . _Coerce
-
--- | A string of up to 4,000 characters that describes the parameter.
-pdDescription :: Lens' ParameterDefinition (Maybe Text)
-pdDescription = lens _pdDescription (\ s a -> s{_pdDescription = a})
-
--- | A numeric value that determines the smallest numeric value you want to allow for Number types.
-pdMinValue :: Lens' ParameterDefinition (Maybe Int)
-pdMinValue = lens _pdMinValue (\ s a -> s{_pdMinValue = a})
-
--- | A list of AWS SAM resources that use this parameter.
-pdReferencedByResources :: Lens' ParameterDefinition [Text]
-pdReferencedByResources = lens _pdReferencedByResources (\ s a -> s{_pdReferencedByResources = a}) . _Coerce
-
--- | The name of the parameter.
-pdName :: Lens' ParameterDefinition Text
-pdName = lens _pdName (\ s a -> s{_pdName = a})
-
-instance FromJSON ParameterDefinition where
-        parseJSON
-          = withObject "ParameterDefinition"
-              (\ x ->
-                 ParameterDefinition' <$>
-                   (x .:? "maxValue") <*> (x .:? "maxLength") <*>
-                     (x .:? "constraintDescription")
-                     <*> (x .:? "minLength")
-                     <*> (x .:? "defaultValue")
-                     <*> (x .:? "allowedPattern")
-                     <*> (x .:? "noEcho")
-                     <*> (x .:? "type")
-                     <*> (x .:? "allowedValues" .!= mempty)
-                     <*> (x .:? "description")
-                     <*> (x .:? "minValue")
-                     <*> (x .:? "referencedByResources" .!= mempty)
-                     <*> (x .: "name"))
-
-instance Hashable ParameterDefinition where
-
-instance NFData ParameterDefinition where
-
--- | Parameter value of the application.
---
---
---
--- /See:/ 'parameterValue' smart constructor.
-data ParameterValue = ParameterValue'
-  { _pvValue :: !Text
-  , _pvName  :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ParameterValue' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pvValue' - The input value associated with the parameter.
---
--- * 'pvName' - The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation  uses the default value that is specified in your template.
-parameterValue
-    :: Text -- ^ 'pvValue'
-    -> Text -- ^ 'pvName'
-    -> ParameterValue
-parameterValue pValue_ pName_ =
-  ParameterValue' {_pvValue = pValue_, _pvName = pName_}
-
-
--- | The input value associated with the parameter.
-pvValue :: Lens' ParameterValue Text
-pvValue = lens _pvValue (\ s a -> s{_pvValue = a})
-
--- | The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation  uses the default value that is specified in your template.
-pvName :: Lens' ParameterValue Text
-pvName = lens _pvName (\ s a -> s{_pvName = a})
-
-instance Hashable ParameterValue where
-
-instance NFData ParameterValue where
-
-instance ToJSON ParameterValue where
-        toJSON ParameterValue'{..}
-          = object
-              (catMaybes
-                 [Just ("value" .= _pvValue),
-                  Just ("name" .= _pvName)])
-
--- | Application version details.
---
---
---
--- /See:/ 'version' smart constructor.
-data Version = Version'
-  { _vSourceCodeURL        :: !(Maybe Text)
-  , _vTemplateURL          :: !Text
-  , _vParameterDefinitions :: ![ParameterDefinition]
-  , _vCreationTime         :: !Text
-  , _vApplicationId        :: !Text
-  , _vSemanticVersion      :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Version' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vSourceCodeURL' - A link to a public repository for the source code of your application.
---
--- * 'vTemplateURL' - A link to the packaged AWS SAM template of your application.
---
--- * 'vParameterDefinitions' - Array of parameter types supported by the application.
---
--- * 'vCreationTime' - The date/time this resource was created.
---
--- * 'vApplicationId' - The application Amazon Resource Name (ARN).
---
--- * 'vSemanticVersion' - The semantic version of the application: <https://semver.org/ https://semver.org/>
-version
-    :: Text -- ^ 'vTemplateURL'
-    -> Text -- ^ 'vCreationTime'
-    -> Text -- ^ 'vApplicationId'
-    -> Text -- ^ 'vSemanticVersion'
-    -> Version
-version pTemplateURL_ pCreationTime_ pApplicationId_ pSemanticVersion_ =
-  Version'
-    { _vSourceCodeURL = Nothing
-    , _vTemplateURL = pTemplateURL_
-    , _vParameterDefinitions = mempty
-    , _vCreationTime = pCreationTime_
-    , _vApplicationId = pApplicationId_
-    , _vSemanticVersion = pSemanticVersion_
-    }
-
-
--- | A link to a public repository for the source code of your application.
-vSourceCodeURL :: Lens' Version (Maybe Text)
-vSourceCodeURL = lens _vSourceCodeURL (\ s a -> s{_vSourceCodeURL = a})
-
--- | A link to the packaged AWS SAM template of your application.
-vTemplateURL :: Lens' Version Text
-vTemplateURL = lens _vTemplateURL (\ s a -> s{_vTemplateURL = a})
-
--- | Array of parameter types supported by the application.
-vParameterDefinitions :: Lens' Version [ParameterDefinition]
-vParameterDefinitions = lens _vParameterDefinitions (\ s a -> s{_vParameterDefinitions = a}) . _Coerce
-
--- | The date/time this resource was created.
-vCreationTime :: Lens' Version Text
-vCreationTime = lens _vCreationTime (\ s a -> s{_vCreationTime = a})
-
--- | The application Amazon Resource Name (ARN).
-vApplicationId :: Lens' Version Text
-vApplicationId = lens _vApplicationId (\ s a -> s{_vApplicationId = a})
-
--- | The semantic version of the application: <https://semver.org/ https://semver.org/>
-vSemanticVersion :: Lens' Version Text
-vSemanticVersion = lens _vSemanticVersion (\ s a -> s{_vSemanticVersion = a})
-
-instance FromJSON Version where
-        parseJSON
-          = withObject "Version"
-              (\ x ->
-                 Version' <$>
-                   (x .:? "sourceCodeUrl") <*> (x .: "templateUrl") <*>
-                     (x .:? "parameterDefinitions" .!= mempty)
-                     <*> (x .: "creationTime")
-                     <*> (x .: "applicationId")
-                     <*> (x .: "semanticVersion"))
-
-instance Hashable Version where
-
-instance NFData Version where
-
--- | Application version summary.
---
---
---
--- /See:/ 'versionSummary' smart constructor.
-data VersionSummary = VersionSummary'
-  { _vsSourceCodeURL   :: !(Maybe Text)
-  , _vsCreationTime    :: !Text
-  , _vsApplicationId   :: !Text
-  , _vsSemanticVersion :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VersionSummary' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vsSourceCodeURL' - A link to a public repository for the source code of your application.
---
--- * 'vsCreationTime' - The date/time this resource was created.
---
--- * 'vsApplicationId' - The application Amazon Resource Name (ARN).
---
--- * 'vsSemanticVersion' - The semantic version of the application: <https://semver.org/ https://semver.org/>
-versionSummary
-    :: Text -- ^ 'vsCreationTime'
-    -> Text -- ^ 'vsApplicationId'
-    -> Text -- ^ 'vsSemanticVersion'
-    -> VersionSummary
-versionSummary pCreationTime_ pApplicationId_ pSemanticVersion_ =
-  VersionSummary'
-    { _vsSourceCodeURL = Nothing
-    , _vsCreationTime = pCreationTime_
-    , _vsApplicationId = pApplicationId_
-    , _vsSemanticVersion = pSemanticVersion_
-    }
-
-
--- | A link to a public repository for the source code of your application.
-vsSourceCodeURL :: Lens' VersionSummary (Maybe Text)
-vsSourceCodeURL = lens _vsSourceCodeURL (\ s a -> s{_vsSourceCodeURL = a})
-
--- | The date/time this resource was created.
-vsCreationTime :: Lens' VersionSummary Text
-vsCreationTime = lens _vsCreationTime (\ s a -> s{_vsCreationTime = a})
-
--- | The application Amazon Resource Name (ARN).
-vsApplicationId :: Lens' VersionSummary Text
-vsApplicationId = lens _vsApplicationId (\ s a -> s{_vsApplicationId = a})
-
--- | The semantic version of the application: <https://semver.org/ https://semver.org/>
-vsSemanticVersion :: Lens' VersionSummary Text
-vsSemanticVersion = lens _vsSemanticVersion (\ s a -> s{_vsSemanticVersion = a})
-
-instance FromJSON VersionSummary where
-        parseJSON
-          = withObject "VersionSummary"
-              (\ x ->
-                 VersionSummary' <$>
-                   (x .:? "sourceCodeUrl") <*> (x .: "creationTime") <*>
-                     (x .: "applicationId")
-                     <*> (x .: "semanticVersion"))
-
-instance Hashable VersionSummary where
-
-instance NFData VersionSummary where
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/Types/Sum.hs b/gen/Network/AWS/ServerlessApplicationRepository/Types/Sum.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/Types/Sum.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE LambdaCase         #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.Types.Sum
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.AWS.ServerlessApplicationRepository.Types.Sum where
-
-import Network.AWS.Prelude
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/UpdateApplication.hs b/gen/Network/AWS/ServerlessApplicationRepository/UpdateApplication.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/UpdateApplication.hs
+++ /dev/null
@@ -1,295 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.UpdateApplication
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates the specified application.
---
---
-module Network.AWS.ServerlessApplicationRepository.UpdateApplication
-    (
-    -- * Creating a Request
-      updateApplication
-    , UpdateApplication
-    -- * Request Lenses
-    , uaHomePageURL
-    , uaReadmeBody
-    , uaReadmeURL
-    , uaAuthor
-    , uaLabels
-    , uaDescription
-    , uaApplicationId
-
-    -- * Destructuring the Response
-    , updateApplicationResponse
-    , UpdateApplicationResponse
-    -- * Response Lenses
-    , uarsCreationTime
-    , uarsHomePageURL
-    , uarsLicenseURL
-    , uarsReadmeURL
-    , uarsApplicationId
-    , uarsName
-    , uarsVersion
-    , uarsAuthor
-    , uarsLabels
-    , uarsDescription
-    , uarsSpdxLicenseId
-    , uarsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-import Network.AWS.ServerlessApplicationRepository.Types
-import Network.AWS.ServerlessApplicationRepository.Types.Product
-
--- | /See:/ 'updateApplication' smart constructor.
-data UpdateApplication = UpdateApplication'
-  { _uaHomePageURL   :: !(Maybe Text)
-  , _uaReadmeBody    :: !(Maybe Text)
-  , _uaReadmeURL     :: !(Maybe Text)
-  , _uaAuthor        :: !(Maybe Text)
-  , _uaLabels        :: !(Maybe [Text])
-  , _uaDescription   :: !(Maybe Text)
-  , _uaApplicationId :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateApplication' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uaHomePageURL' - A URL with more information about the application, for example  the location of your GitHub repository for the application.
---
--- * 'uaReadmeBody' - A raw text Readme file that contains a more detailed description of the application and how it works in markdown language. Max size 5 MB
---
--- * 'uaReadmeURL' - A link to the Readme file that contains a more detailed description of the application and how it works in markdown language. Max size 5 MB
---
--- * 'uaAuthor' - The name of the author publishing the app. Min Length=1. Max Length=127. Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
---
--- * 'uaLabels' - Labels to improve discovery of apps in search results. Min Length=1. Max Length=127. Maximum number of labels: 10 Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
---
--- * 'uaDescription' - The description of the application. Min Length=1. Max Length=256
---
--- * 'uaApplicationId' - The ID of the application to get.
-updateApplication
-    :: Text -- ^ 'uaApplicationId'
-    -> UpdateApplication
-updateApplication pApplicationId_ =
-  UpdateApplication'
-    { _uaHomePageURL = Nothing
-    , _uaReadmeBody = Nothing
-    , _uaReadmeURL = Nothing
-    , _uaAuthor = Nothing
-    , _uaLabels = Nothing
-    , _uaDescription = Nothing
-    , _uaApplicationId = pApplicationId_
-    }
-
-
--- | A URL with more information about the application, for example  the location of your GitHub repository for the application.
-uaHomePageURL :: Lens' UpdateApplication (Maybe Text)
-uaHomePageURL = lens _uaHomePageURL (\ s a -> s{_uaHomePageURL = a})
-
--- | A raw text Readme file that contains a more detailed description of the application and how it works in markdown language. Max size 5 MB
-uaReadmeBody :: Lens' UpdateApplication (Maybe Text)
-uaReadmeBody = lens _uaReadmeBody (\ s a -> s{_uaReadmeBody = a})
-
--- | A link to the Readme file that contains a more detailed description of the application and how it works in markdown language. Max size 5 MB
-uaReadmeURL :: Lens' UpdateApplication (Maybe Text)
-uaReadmeURL = lens _uaReadmeURL (\ s a -> s{_uaReadmeURL = a})
-
--- | The name of the author publishing the app. Min Length=1. Max Length=127. Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
-uaAuthor :: Lens' UpdateApplication (Maybe Text)
-uaAuthor = lens _uaAuthor (\ s a -> s{_uaAuthor = a})
-
--- | Labels to improve discovery of apps in search results. Min Length=1. Max Length=127. Maximum number of labels: 10 Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
-uaLabels :: Lens' UpdateApplication [Text]
-uaLabels = lens _uaLabels (\ s a -> s{_uaLabels = a}) . _Default . _Coerce
-
--- | The description of the application. Min Length=1. Max Length=256
-uaDescription :: Lens' UpdateApplication (Maybe Text)
-uaDescription = lens _uaDescription (\ s a -> s{_uaDescription = a})
-
--- | The ID of the application to get.
-uaApplicationId :: Lens' UpdateApplication Text
-uaApplicationId = lens _uaApplicationId (\ s a -> s{_uaApplicationId = a})
-
-instance AWSRequest UpdateApplication where
-        type Rs UpdateApplication = UpdateApplicationResponse
-        request = patchJSON serverlessApplicationRepository
-        response
-          = receiveJSON
-              (\ s h x ->
-                 UpdateApplicationResponse' <$>
-                   (x .?> "creationTime") <*> (x .?> "homePageUrl") <*>
-                     (x .?> "licenseUrl")
-                     <*> (x .?> "readmeUrl")
-                     <*> (x .?> "applicationId")
-                     <*> (x .?> "name")
-                     <*> (x .?> "version")
-                     <*> (x .?> "author")
-                     <*> (x .?> "labels" .!@ mempty)
-                     <*> (x .?> "description")
-                     <*> (x .?> "spdxLicenseId")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable UpdateApplication where
-
-instance NFData UpdateApplication where
-
-instance ToHeaders UpdateApplication where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdateApplication where
-        toJSON UpdateApplication'{..}
-          = object
-              (catMaybes
-                 [("homePageUrl" .=) <$> _uaHomePageURL,
-                  ("readmeBody" .=) <$> _uaReadmeBody,
-                  ("readmeUrl" .=) <$> _uaReadmeURL,
-                  ("author" .=) <$> _uaAuthor,
-                  ("labels" .=) <$> _uaLabels,
-                  ("description" .=) <$> _uaDescription])
-
-instance ToPath UpdateApplication where
-        toPath UpdateApplication'{..}
-          = mconcat ["/applications/", toBS _uaApplicationId]
-
-instance ToQuery UpdateApplication where
-        toQuery = const mempty
-
--- | /See:/ 'updateApplicationResponse' smart constructor.
-data UpdateApplicationResponse = UpdateApplicationResponse'
-  { _uarsCreationTime   :: !(Maybe Text)
-  , _uarsHomePageURL    :: !(Maybe Text)
-  , _uarsLicenseURL     :: !(Maybe Text)
-  , _uarsReadmeURL      :: !(Maybe Text)
-  , _uarsApplicationId  :: !(Maybe Text)
-  , _uarsName           :: !(Maybe Text)
-  , _uarsVersion        :: !(Maybe Version)
-  , _uarsAuthor         :: !(Maybe Text)
-  , _uarsLabels         :: !(Maybe [Text])
-  , _uarsDescription    :: !(Maybe Text)
-  , _uarsSpdxLicenseId  :: !(Maybe Text)
-  , _uarsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateApplicationResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uarsCreationTime' - The date/time this resource was created.
---
--- * 'uarsHomePageURL' - A URL with more information about the application, for example  the location of your GitHub repository for the application.
---
--- * 'uarsLicenseURL' - A link to a license file of the app that matches the spdxLicenseID of your application. Max size 5 MB
---
--- * 'uarsReadmeURL' - A link to the readme file that contains a more detailed description of the application and how it works in Markdown language. Max size 5 MB
---
--- * 'uarsApplicationId' - The application Amazon Resource Name (ARN).
---
--- * 'uarsName' - The name of the application. Min Length=1. Max Length=140 Pattern: "[a-zA-Z0-9\\-]+";
---
--- * 'uarsVersion' - Version information about the application.
---
--- * 'uarsAuthor' - The name of the author publishing the app. Min Length=1. Max Length=127. Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
---
--- * 'uarsLabels' - Labels to improve discovery of apps in search results. Min Length=1. Max Length=127. Maximum number of labels: 10 Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
---
--- * 'uarsDescription' - The description of the application. Min Length=1. Max Length=256
---
--- * 'uarsSpdxLicenseId' - A valid identifier from https://spdx.org/licenses/.
---
--- * 'uarsResponseStatus' - -- | The response status code.
-updateApplicationResponse
-    :: Int -- ^ 'uarsResponseStatus'
-    -> UpdateApplicationResponse
-updateApplicationResponse pResponseStatus_ =
-  UpdateApplicationResponse'
-    { _uarsCreationTime = Nothing
-    , _uarsHomePageURL = Nothing
-    , _uarsLicenseURL = Nothing
-    , _uarsReadmeURL = Nothing
-    , _uarsApplicationId = Nothing
-    , _uarsName = Nothing
-    , _uarsVersion = Nothing
-    , _uarsAuthor = Nothing
-    , _uarsLabels = Nothing
-    , _uarsDescription = Nothing
-    , _uarsSpdxLicenseId = Nothing
-    , _uarsResponseStatus = pResponseStatus_
-    }
-
-
--- | The date/time this resource was created.
-uarsCreationTime :: Lens' UpdateApplicationResponse (Maybe Text)
-uarsCreationTime = lens _uarsCreationTime (\ s a -> s{_uarsCreationTime = a})
-
--- | A URL with more information about the application, for example  the location of your GitHub repository for the application.
-uarsHomePageURL :: Lens' UpdateApplicationResponse (Maybe Text)
-uarsHomePageURL = lens _uarsHomePageURL (\ s a -> s{_uarsHomePageURL = a})
-
--- | A link to a license file of the app that matches the spdxLicenseID of your application. Max size 5 MB
-uarsLicenseURL :: Lens' UpdateApplicationResponse (Maybe Text)
-uarsLicenseURL = lens _uarsLicenseURL (\ s a -> s{_uarsLicenseURL = a})
-
--- | A link to the readme file that contains a more detailed description of the application and how it works in Markdown language. Max size 5 MB
-uarsReadmeURL :: Lens' UpdateApplicationResponse (Maybe Text)
-uarsReadmeURL = lens _uarsReadmeURL (\ s a -> s{_uarsReadmeURL = a})
-
--- | The application Amazon Resource Name (ARN).
-uarsApplicationId :: Lens' UpdateApplicationResponse (Maybe Text)
-uarsApplicationId = lens _uarsApplicationId (\ s a -> s{_uarsApplicationId = a})
-
--- | The name of the application. Min Length=1. Max Length=140 Pattern: "[a-zA-Z0-9\\-]+";
-uarsName :: Lens' UpdateApplicationResponse (Maybe Text)
-uarsName = lens _uarsName (\ s a -> s{_uarsName = a})
-
--- | Version information about the application.
-uarsVersion :: Lens' UpdateApplicationResponse (Maybe Version)
-uarsVersion = lens _uarsVersion (\ s a -> s{_uarsVersion = a})
-
--- | The name of the author publishing the app. Min Length=1. Max Length=127. Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";
-uarsAuthor :: Lens' UpdateApplicationResponse (Maybe Text)
-uarsAuthor = lens _uarsAuthor (\ s a -> s{_uarsAuthor = a})
-
--- | Labels to improve discovery of apps in search results. Min Length=1. Max Length=127. Maximum number of labels: 10 Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";
-uarsLabels :: Lens' UpdateApplicationResponse [Text]
-uarsLabels = lens _uarsLabels (\ s a -> s{_uarsLabels = a}) . _Default . _Coerce
-
--- | The description of the application. Min Length=1. Max Length=256
-uarsDescription :: Lens' UpdateApplicationResponse (Maybe Text)
-uarsDescription = lens _uarsDescription (\ s a -> s{_uarsDescription = a})
-
--- | A valid identifier from https://spdx.org/licenses/.
-uarsSpdxLicenseId :: Lens' UpdateApplicationResponse (Maybe Text)
-uarsSpdxLicenseId = lens _uarsSpdxLicenseId (\ s a -> s{_uarsSpdxLicenseId = a})
-
--- | -- | The response status code.
-uarsResponseStatus :: Lens' UpdateApplicationResponse Int
-uarsResponseStatus = lens _uarsResponseStatus (\ s a -> s{_uarsResponseStatus = a})
-
-instance NFData UpdateApplicationResponse where
diff --git a/gen/Network/AWS/ServerlessApplicationRepository/Waiters.hs b/gen/Network/AWS/ServerlessApplicationRepository/Waiters.hs
deleted file mode 100644
--- a/gen/Network/AWS/ServerlessApplicationRepository/Waiters.hs
+++ /dev/null
@@ -1,21 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE TypeFamilies      #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.ServerlessApplicationRepository.Waiters
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.AWS.ServerlessApplicationRepository.Waiters where
-
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.ServerlessApplicationRepository.Types
-import Network.AWS.Waiter
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -2,20 +2,22 @@
 
 -- |
 -- Module      : Main
--- Copyright   : (c) 2013-2018 Brendan Hay
+-- Copyright   : (c) 2013-2023 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Maintainer  : Brendan Hay
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
---
 module Main (main) where
 
+import Test.Amazonka.ServerlessApplicationRepository
+import Test.Amazonka.ServerlessApplicationRepository.Internal
 import Test.Tasty
-import Test.AWS.ServerlessApplicationRepository
-import Test.AWS.ServerlessApplicationRepository.Internal
 
 main :: IO ()
-main = defaultMain $ testGroup "ServerlessApplicationRepository"
-    [ testGroup "tests"    tests
-    , testGroup "fixtures" fixtures
-    ]
+main =
+  defaultMain $
+    testGroup
+      "ServerlessApplicationRepository"
+      [ testGroup "tests" tests,
+        testGroup "fixtures" fixtures
+      ]
diff --git a/test/Test/AWS/Gen/ServerlessApplicationRepository.hs b/test/Test/AWS/Gen/ServerlessApplicationRepository.hs
deleted file mode 100644
--- a/test/Test/AWS/Gen/ServerlessApplicationRepository.hs
+++ /dev/null
@@ -1,219 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-orphans        #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Test.AWS.Gen.ServerlessApplicationRepository
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Test.AWS.Gen.ServerlessApplicationRepository where
-
-import Data.Proxy
-import Network.AWS.ServerlessApplicationRepository
-import Test.AWS.Fixture
-import Test.AWS.Prelude
-import Test.AWS.ServerlessApplicationRepository.Internal
-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"
---         [ requestGetApplicationPolicy $
---             getApplicationPolicy
---
---         , requestCreateApplicationVersion $
---             createApplicationVersion
---
---         , requestDeleteApplication $
---             deleteApplication
---
---         , requestUpdateApplication $
---             updateApplication
---
---         , requestCreateApplication $
---             createApplication
---
---         , requestListApplicationVersions $
---             listApplicationVersions
---
---         , requestGetApplication $
---             getApplication
---
---         , requestCreateCloudFormationChangeSet $
---             createCloudFormationChangeSet
---
---         , requestPutApplicationPolicy $
---             putApplicationPolicy
---
---         , requestListApplications $
---             listApplications
---
---           ]
-
---     , testGroup "response"
---         [ responseGetApplicationPolicy $
---             getApplicationPolicyResponse
---
---         , responseCreateApplicationVersion $
---             createApplicationVersionResponse
---
---         , responseDeleteApplication $
---             deleteApplicationResponse
---
---         , responseUpdateApplication $
---             updateApplicationResponse
---
---         , responseCreateApplication $
---             createApplicationResponse
---
---         , responseListApplicationVersions $
---             listApplicationVersionsResponse
---
---         , responseGetApplication $
---             getApplicationResponse
---
---         , responseCreateCloudFormationChangeSet $
---             createCloudFormationChangeSetResponse
---
---         , responsePutApplicationPolicy $
---             putApplicationPolicyResponse
---
---         , responseListApplications $
---             listApplicationsResponse
---
---           ]
---     ]
-
--- Requests
-
-requestGetApplicationPolicy :: GetApplicationPolicy -> TestTree
-requestGetApplicationPolicy = req
-    "GetApplicationPolicy"
-    "fixture/GetApplicationPolicy.yaml"
-
-requestCreateApplicationVersion :: CreateApplicationVersion -> TestTree
-requestCreateApplicationVersion = req
-    "CreateApplicationVersion"
-    "fixture/CreateApplicationVersion.yaml"
-
-requestDeleteApplication :: DeleteApplication -> TestTree
-requestDeleteApplication = req
-    "DeleteApplication"
-    "fixture/DeleteApplication.yaml"
-
-requestUpdateApplication :: UpdateApplication -> TestTree
-requestUpdateApplication = req
-    "UpdateApplication"
-    "fixture/UpdateApplication.yaml"
-
-requestCreateApplication :: CreateApplication -> TestTree
-requestCreateApplication = req
-    "CreateApplication"
-    "fixture/CreateApplication.yaml"
-
-requestListApplicationVersions :: ListApplicationVersions -> TestTree
-requestListApplicationVersions = req
-    "ListApplicationVersions"
-    "fixture/ListApplicationVersions.yaml"
-
-requestGetApplication :: GetApplication -> TestTree
-requestGetApplication = req
-    "GetApplication"
-    "fixture/GetApplication.yaml"
-
-requestCreateCloudFormationChangeSet :: CreateCloudFormationChangeSet -> TestTree
-requestCreateCloudFormationChangeSet = req
-    "CreateCloudFormationChangeSet"
-    "fixture/CreateCloudFormationChangeSet.yaml"
-
-requestPutApplicationPolicy :: PutApplicationPolicy -> TestTree
-requestPutApplicationPolicy = req
-    "PutApplicationPolicy"
-    "fixture/PutApplicationPolicy.yaml"
-
-requestListApplications :: ListApplications -> TestTree
-requestListApplications = req
-    "ListApplications"
-    "fixture/ListApplications.yaml"
-
--- Responses
-
-responseGetApplicationPolicy :: GetApplicationPolicyResponse -> TestTree
-responseGetApplicationPolicy = res
-    "GetApplicationPolicyResponse"
-    "fixture/GetApplicationPolicyResponse.proto"
-    serverlessApplicationRepository
-    (Proxy :: Proxy GetApplicationPolicy)
-
-responseCreateApplicationVersion :: CreateApplicationVersionResponse -> TestTree
-responseCreateApplicationVersion = res
-    "CreateApplicationVersionResponse"
-    "fixture/CreateApplicationVersionResponse.proto"
-    serverlessApplicationRepository
-    (Proxy :: Proxy CreateApplicationVersion)
-
-responseDeleteApplication :: DeleteApplicationResponse -> TestTree
-responseDeleteApplication = res
-    "DeleteApplicationResponse"
-    "fixture/DeleteApplicationResponse.proto"
-    serverlessApplicationRepository
-    (Proxy :: Proxy DeleteApplication)
-
-responseUpdateApplication :: UpdateApplicationResponse -> TestTree
-responseUpdateApplication = res
-    "UpdateApplicationResponse"
-    "fixture/UpdateApplicationResponse.proto"
-    serverlessApplicationRepository
-    (Proxy :: Proxy UpdateApplication)
-
-responseCreateApplication :: CreateApplicationResponse -> TestTree
-responseCreateApplication = res
-    "CreateApplicationResponse"
-    "fixture/CreateApplicationResponse.proto"
-    serverlessApplicationRepository
-    (Proxy :: Proxy CreateApplication)
-
-responseListApplicationVersions :: ListApplicationVersionsResponse -> TestTree
-responseListApplicationVersions = res
-    "ListApplicationVersionsResponse"
-    "fixture/ListApplicationVersionsResponse.proto"
-    serverlessApplicationRepository
-    (Proxy :: Proxy ListApplicationVersions)
-
-responseGetApplication :: GetApplicationResponse -> TestTree
-responseGetApplication = res
-    "GetApplicationResponse"
-    "fixture/GetApplicationResponse.proto"
-    serverlessApplicationRepository
-    (Proxy :: Proxy GetApplication)
-
-responseCreateCloudFormationChangeSet :: CreateCloudFormationChangeSetResponse -> TestTree
-responseCreateCloudFormationChangeSet = res
-    "CreateCloudFormationChangeSetResponse"
-    "fixture/CreateCloudFormationChangeSetResponse.proto"
-    serverlessApplicationRepository
-    (Proxy :: Proxy CreateCloudFormationChangeSet)
-
-responsePutApplicationPolicy :: PutApplicationPolicyResponse -> TestTree
-responsePutApplicationPolicy = res
-    "PutApplicationPolicyResponse"
-    "fixture/PutApplicationPolicyResponse.proto"
-    serverlessApplicationRepository
-    (Proxy :: Proxy PutApplicationPolicy)
-
-responseListApplications :: ListApplicationsResponse -> TestTree
-responseListApplications = res
-    "ListApplicationsResponse"
-    "fixture/ListApplicationsResponse.proto"
-    serverlessApplicationRepository
-    (Proxy :: Proxy ListApplications)
diff --git a/test/Test/AWS/ServerlessApplicationRepository.hs b/test/Test/AWS/ServerlessApplicationRepository.hs
deleted file mode 100644
--- a/test/Test/AWS/ServerlessApplicationRepository.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- |
--- Module      : Test.AWS.ServerlessApplicationRepository
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Test.AWS.ServerlessApplicationRepository
-    ( tests
-    , fixtures
-    ) where
-
-import Test.Tasty (TestTree)
-
-tests :: [TestTree]
-tests = []
-
-fixtures :: [TestTree]
-fixtures = []
diff --git a/test/Test/AWS/ServerlessApplicationRepository/Internal.hs b/test/Test/AWS/ServerlessApplicationRepository/Internal.hs
deleted file mode 100644
--- a/test/Test/AWS/ServerlessApplicationRepository/Internal.hs
+++ /dev/null
@@ -1,9 +0,0 @@
--- |
--- Module      : Test.AWS.ServerlessApplicationRepository.Internal
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Test.AWS.ServerlessApplicationRepository.Internal where
diff --git a/test/Test/Amazonka/Gen/ServerlessApplicationRepository.hs b/test/Test/Amazonka/Gen/ServerlessApplicationRepository.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/Gen/ServerlessApplicationRepository.hs
@@ -0,0 +1,318 @@
+{-# 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.ServerlessApplicationRepository
+-- Copyright   : (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.ServerlessApplicationRepository where
+
+import Amazonka.ServerlessApplicationRepository
+import qualified Data.Proxy as Proxy
+import Test.Amazonka.Fixture
+import Test.Amazonka.Prelude
+import Test.Amazonka.ServerlessApplicationRepository.Internal
+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"
+--         [ requestCreateApplication $
+--             newCreateApplication
+--
+--         , requestCreateApplicationVersion $
+--             newCreateApplicationVersion
+--
+--         , requestCreateCloudFormationChangeSet $
+--             newCreateCloudFormationChangeSet
+--
+--         , requestCreateCloudFormationTemplate $
+--             newCreateCloudFormationTemplate
+--
+--         , requestDeleteApplication $
+--             newDeleteApplication
+--
+--         , requestGetApplication $
+--             newGetApplication
+--
+--         , requestGetApplicationPolicy $
+--             newGetApplicationPolicy
+--
+--         , requestGetCloudFormationTemplate $
+--             newGetCloudFormationTemplate
+--
+--         , requestListApplicationDependencies $
+--             newListApplicationDependencies
+--
+--         , requestListApplicationVersions $
+--             newListApplicationVersions
+--
+--         , requestListApplications $
+--             newListApplications
+--
+--         , requestPutApplicationPolicy $
+--             newPutApplicationPolicy
+--
+--         , requestUnshareApplication $
+--             newUnshareApplication
+--
+--         , requestUpdateApplication $
+--             newUpdateApplication
+--
+--           ]
+
+--     , testGroup "response"
+--         [ responseCreateApplication $
+--             newCreateApplicationResponse
+--
+--         , responseCreateApplicationVersion $
+--             newCreateApplicationVersionResponse
+--
+--         , responseCreateCloudFormationChangeSet $
+--             newCreateCloudFormationChangeSetResponse
+--
+--         , responseCreateCloudFormationTemplate $
+--             newCreateCloudFormationTemplateResponse
+--
+--         , responseDeleteApplication $
+--             newDeleteApplicationResponse
+--
+--         , responseGetApplication $
+--             newGetApplicationResponse
+--
+--         , responseGetApplicationPolicy $
+--             newGetApplicationPolicyResponse
+--
+--         , responseGetCloudFormationTemplate $
+--             newGetCloudFormationTemplateResponse
+--
+--         , responseListApplicationDependencies $
+--             newListApplicationDependenciesResponse
+--
+--         , responseListApplicationVersions $
+--             newListApplicationVersionsResponse
+--
+--         , responseListApplications $
+--             newListApplicationsResponse
+--
+--         , responsePutApplicationPolicy $
+--             newPutApplicationPolicyResponse
+--
+--         , responseUnshareApplication $
+--             newUnshareApplicationResponse
+--
+--         , responseUpdateApplication $
+--             newUpdateApplicationResponse
+--
+--           ]
+--     ]
+
+-- Requests
+
+requestCreateApplication :: CreateApplication -> TestTree
+requestCreateApplication =
+  req
+    "CreateApplication"
+    "fixture/CreateApplication.yaml"
+
+requestCreateApplicationVersion :: CreateApplicationVersion -> TestTree
+requestCreateApplicationVersion =
+  req
+    "CreateApplicationVersion"
+    "fixture/CreateApplicationVersion.yaml"
+
+requestCreateCloudFormationChangeSet :: CreateCloudFormationChangeSet -> TestTree
+requestCreateCloudFormationChangeSet =
+  req
+    "CreateCloudFormationChangeSet"
+    "fixture/CreateCloudFormationChangeSet.yaml"
+
+requestCreateCloudFormationTemplate :: CreateCloudFormationTemplate -> TestTree
+requestCreateCloudFormationTemplate =
+  req
+    "CreateCloudFormationTemplate"
+    "fixture/CreateCloudFormationTemplate.yaml"
+
+requestDeleteApplication :: DeleteApplication -> TestTree
+requestDeleteApplication =
+  req
+    "DeleteApplication"
+    "fixture/DeleteApplication.yaml"
+
+requestGetApplication :: GetApplication -> TestTree
+requestGetApplication =
+  req
+    "GetApplication"
+    "fixture/GetApplication.yaml"
+
+requestGetApplicationPolicy :: GetApplicationPolicy -> TestTree
+requestGetApplicationPolicy =
+  req
+    "GetApplicationPolicy"
+    "fixture/GetApplicationPolicy.yaml"
+
+requestGetCloudFormationTemplate :: GetCloudFormationTemplate -> TestTree
+requestGetCloudFormationTemplate =
+  req
+    "GetCloudFormationTemplate"
+    "fixture/GetCloudFormationTemplate.yaml"
+
+requestListApplicationDependencies :: ListApplicationDependencies -> TestTree
+requestListApplicationDependencies =
+  req
+    "ListApplicationDependencies"
+    "fixture/ListApplicationDependencies.yaml"
+
+requestListApplicationVersions :: ListApplicationVersions -> TestTree
+requestListApplicationVersions =
+  req
+    "ListApplicationVersions"
+    "fixture/ListApplicationVersions.yaml"
+
+requestListApplications :: ListApplications -> TestTree
+requestListApplications =
+  req
+    "ListApplications"
+    "fixture/ListApplications.yaml"
+
+requestPutApplicationPolicy :: PutApplicationPolicy -> TestTree
+requestPutApplicationPolicy =
+  req
+    "PutApplicationPolicy"
+    "fixture/PutApplicationPolicy.yaml"
+
+requestUnshareApplication :: UnshareApplication -> TestTree
+requestUnshareApplication =
+  req
+    "UnshareApplication"
+    "fixture/UnshareApplication.yaml"
+
+requestUpdateApplication :: UpdateApplication -> TestTree
+requestUpdateApplication =
+  req
+    "UpdateApplication"
+    "fixture/UpdateApplication.yaml"
+
+-- Responses
+
+responseCreateApplication :: CreateApplicationResponse -> TestTree
+responseCreateApplication =
+  res
+    "CreateApplicationResponse"
+    "fixture/CreateApplicationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateApplication)
+
+responseCreateApplicationVersion :: CreateApplicationVersionResponse -> TestTree
+responseCreateApplicationVersion =
+  res
+    "CreateApplicationVersionResponse"
+    "fixture/CreateApplicationVersionResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateApplicationVersion)
+
+responseCreateCloudFormationChangeSet :: CreateCloudFormationChangeSetResponse -> TestTree
+responseCreateCloudFormationChangeSet =
+  res
+    "CreateCloudFormationChangeSetResponse"
+    "fixture/CreateCloudFormationChangeSetResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateCloudFormationChangeSet)
+
+responseCreateCloudFormationTemplate :: CreateCloudFormationTemplateResponse -> TestTree
+responseCreateCloudFormationTemplate =
+  res
+    "CreateCloudFormationTemplateResponse"
+    "fixture/CreateCloudFormationTemplateResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateCloudFormationTemplate)
+
+responseDeleteApplication :: DeleteApplicationResponse -> TestTree
+responseDeleteApplication =
+  res
+    "DeleteApplicationResponse"
+    "fixture/DeleteApplicationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteApplication)
+
+responseGetApplication :: GetApplicationResponse -> TestTree
+responseGetApplication =
+  res
+    "GetApplicationResponse"
+    "fixture/GetApplicationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetApplication)
+
+responseGetApplicationPolicy :: GetApplicationPolicyResponse -> TestTree
+responseGetApplicationPolicy =
+  res
+    "GetApplicationPolicyResponse"
+    "fixture/GetApplicationPolicyResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetApplicationPolicy)
+
+responseGetCloudFormationTemplate :: GetCloudFormationTemplateResponse -> TestTree
+responseGetCloudFormationTemplate =
+  res
+    "GetCloudFormationTemplateResponse"
+    "fixture/GetCloudFormationTemplateResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetCloudFormationTemplate)
+
+responseListApplicationDependencies :: ListApplicationDependenciesResponse -> TestTree
+responseListApplicationDependencies =
+  res
+    "ListApplicationDependenciesResponse"
+    "fixture/ListApplicationDependenciesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListApplicationDependencies)
+
+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)
+
+responsePutApplicationPolicy :: PutApplicationPolicyResponse -> TestTree
+responsePutApplicationPolicy =
+  res
+    "PutApplicationPolicyResponse"
+    "fixture/PutApplicationPolicyResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy PutApplicationPolicy)
+
+responseUnshareApplication :: UnshareApplicationResponse -> TestTree
+responseUnshareApplication =
+  res
+    "UnshareApplicationResponse"
+    "fixture/UnshareApplicationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UnshareApplication)
+
+responseUpdateApplication :: UpdateApplicationResponse -> TestTree
+responseUpdateApplication =
+  res
+    "UpdateApplicationResponse"
+    "fixture/UpdateApplicationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateApplication)
diff --git a/test/Test/Amazonka/ServerlessApplicationRepository.hs b/test/Test/Amazonka/ServerlessApplicationRepository.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/ServerlessApplicationRepository.hs
@@ -0,0 +1,20 @@
+-- |
+-- Module      : Test.Amazonka.ServerlessApplicationRepository
+-- Copyright   : (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.ServerlessApplicationRepository
+  ( tests,
+    fixtures,
+  )
+where
+
+import Test.Tasty (TestTree)
+
+tests :: [TestTree]
+tests = []
+
+fixtures :: [TestTree]
+fixtures = []
diff --git a/test/Test/Amazonka/ServerlessApplicationRepository/Internal.hs b/test/Test/Amazonka/ServerlessApplicationRepository/Internal.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/ServerlessApplicationRepository/Internal.hs
@@ -0,0 +1,8 @@
+-- |
+-- Module      : Test.Amazonka.ServerlessApplicationRepository.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.ServerlessApplicationRepository.Internal where
