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 @2015-04-13@ 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.CodeCommit](http://hackage.haskell.org/package/amazonka-codecommit/docs/Network-AWS-CodeCommit.html)
+See [Amazonka.CodeCommit](http://hackage.haskell.org/package/amazonka-codecommit/docs/Amazonka-CodeCommit.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-codecommit.cabal b/amazonka-codecommit.cabal
--- a/amazonka-codecommit.cabal
+++ b/amazonka-codecommit.cabal
@@ -1,121 +1,231 @@
-name:                  amazonka-codecommit
-version:               1.6.1
-synopsis:              Amazon CodeCommit 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-codecommit
+version:            2.0
+synopsis:           Amazon CodeCommit 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.CodeCommit" or <https://aws.amazon.com/documentation/ the AWS documentation>
-    to get started.
+  Derived from API version @2015-04-13@ 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.CodeCommit.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.CodeCommit" 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-codecommit
+  type:     git
+  location: git://github.com/brendanhay/amazonka.git
+  subdir:   amazonka-codecommit
 
 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.CodeCommit
-        , Network.AWS.CodeCommit.BatchGetRepositories
-        , Network.AWS.CodeCommit.CreateBranch
-        , Network.AWS.CodeCommit.CreatePullRequest
-        , Network.AWS.CodeCommit.CreateRepository
-        , Network.AWS.CodeCommit.DeleteBranch
-        , Network.AWS.CodeCommit.DeleteCommentContent
-        , Network.AWS.CodeCommit.DeleteRepository
-        , Network.AWS.CodeCommit.DescribePullRequestEvents
-        , Network.AWS.CodeCommit.GetBlob
-        , Network.AWS.CodeCommit.GetBranch
-        , Network.AWS.CodeCommit.GetComment
-        , Network.AWS.CodeCommit.GetCommentsForComparedCommit
-        , Network.AWS.CodeCommit.GetCommentsForPullRequest
-        , Network.AWS.CodeCommit.GetCommit
-        , Network.AWS.CodeCommit.GetDifferences
-        , Network.AWS.CodeCommit.GetMergeConflicts
-        , Network.AWS.CodeCommit.GetPullRequest
-        , Network.AWS.CodeCommit.GetRepository
-        , Network.AWS.CodeCommit.GetRepositoryTriggers
-        , Network.AWS.CodeCommit.ListBranches
-        , Network.AWS.CodeCommit.ListPullRequests
-        , Network.AWS.CodeCommit.ListRepositories
-        , Network.AWS.CodeCommit.MergePullRequestByFastForward
-        , Network.AWS.CodeCommit.PostCommentForComparedCommit
-        , Network.AWS.CodeCommit.PostCommentForPullRequest
-        , Network.AWS.CodeCommit.PostCommentReply
-        , Network.AWS.CodeCommit.PutFile
-        , Network.AWS.CodeCommit.PutRepositoryTriggers
-        , Network.AWS.CodeCommit.TestRepositoryTriggers
-        , Network.AWS.CodeCommit.Types
-        , Network.AWS.CodeCommit.UpdateComment
-        , Network.AWS.CodeCommit.UpdateDefaultBranch
-        , Network.AWS.CodeCommit.UpdatePullRequestDescription
-        , Network.AWS.CodeCommit.UpdatePullRequestStatus
-        , Network.AWS.CodeCommit.UpdatePullRequestTitle
-        , Network.AWS.CodeCommit.UpdateRepositoryDescription
-        , Network.AWS.CodeCommit.UpdateRepositoryName
-        , Network.AWS.CodeCommit.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.CodeCommit.Types.Product
-        , Network.AWS.CodeCommit.Types.Sum
+  exposed-modules:
+    Amazonka.CodeCommit
+    Amazonka.CodeCommit.AssociateApprovalRuleTemplateWithRepository
+    Amazonka.CodeCommit.BatchAssociateApprovalRuleTemplateWithRepositories
+    Amazonka.CodeCommit.BatchDescribeMergeConflicts
+    Amazonka.CodeCommit.BatchDisassociateApprovalRuleTemplateFromRepositories
+    Amazonka.CodeCommit.BatchGetCommits
+    Amazonka.CodeCommit.BatchGetRepositories
+    Amazonka.CodeCommit.CreateApprovalRuleTemplate
+    Amazonka.CodeCommit.CreateBranch
+    Amazonka.CodeCommit.CreateCommit
+    Amazonka.CodeCommit.CreatePullRequest
+    Amazonka.CodeCommit.CreatePullRequestApprovalRule
+    Amazonka.CodeCommit.CreateRepository
+    Amazonka.CodeCommit.CreateUnreferencedMergeCommit
+    Amazonka.CodeCommit.DeleteApprovalRuleTemplate
+    Amazonka.CodeCommit.DeleteBranch
+    Amazonka.CodeCommit.DeleteCommentContent
+    Amazonka.CodeCommit.DeleteFile
+    Amazonka.CodeCommit.DeletePullRequestApprovalRule
+    Amazonka.CodeCommit.DeleteRepository
+    Amazonka.CodeCommit.DescribeMergeConflicts
+    Amazonka.CodeCommit.DescribePullRequestEvents
+    Amazonka.CodeCommit.DisassociateApprovalRuleTemplateFromRepository
+    Amazonka.CodeCommit.EvaluatePullRequestApprovalRules
+    Amazonka.CodeCommit.GetApprovalRuleTemplate
+    Amazonka.CodeCommit.GetBlob
+    Amazonka.CodeCommit.GetBranch
+    Amazonka.CodeCommit.GetComment
+    Amazonka.CodeCommit.GetCommentReactions
+    Amazonka.CodeCommit.GetCommentsForComparedCommit
+    Amazonka.CodeCommit.GetCommentsForPullRequest
+    Amazonka.CodeCommit.GetCommit
+    Amazonka.CodeCommit.GetDifferences
+    Amazonka.CodeCommit.GetFile
+    Amazonka.CodeCommit.GetFolder
+    Amazonka.CodeCommit.GetMergeCommit
+    Amazonka.CodeCommit.GetMergeConflicts
+    Amazonka.CodeCommit.GetMergeOptions
+    Amazonka.CodeCommit.GetPullRequest
+    Amazonka.CodeCommit.GetPullRequestApprovalStates
+    Amazonka.CodeCommit.GetPullRequestOverrideState
+    Amazonka.CodeCommit.GetRepository
+    Amazonka.CodeCommit.GetRepositoryTriggers
+    Amazonka.CodeCommit.Lens
+    Amazonka.CodeCommit.ListApprovalRuleTemplates
+    Amazonka.CodeCommit.ListAssociatedApprovalRuleTemplatesForRepository
+    Amazonka.CodeCommit.ListBranches
+    Amazonka.CodeCommit.ListPullRequests
+    Amazonka.CodeCommit.ListRepositories
+    Amazonka.CodeCommit.ListRepositoriesForApprovalRuleTemplate
+    Amazonka.CodeCommit.ListTagsForResource
+    Amazonka.CodeCommit.MergeBranchesByFastForward
+    Amazonka.CodeCommit.MergeBranchesBySquash
+    Amazonka.CodeCommit.MergeBranchesByThreeWay
+    Amazonka.CodeCommit.MergePullRequestByFastForward
+    Amazonka.CodeCommit.MergePullRequestBySquash
+    Amazonka.CodeCommit.MergePullRequestByThreeWay
+    Amazonka.CodeCommit.OverridePullRequestApprovalRules
+    Amazonka.CodeCommit.PostCommentForComparedCommit
+    Amazonka.CodeCommit.PostCommentForPullRequest
+    Amazonka.CodeCommit.PostCommentReply
+    Amazonka.CodeCommit.PutCommentReaction
+    Amazonka.CodeCommit.PutFile
+    Amazonka.CodeCommit.PutRepositoryTriggers
+    Amazonka.CodeCommit.TagResource
+    Amazonka.CodeCommit.TestRepositoryTriggers
+    Amazonka.CodeCommit.Types
+    Amazonka.CodeCommit.Types.Approval
+    Amazonka.CodeCommit.Types.ApprovalRule
+    Amazonka.CodeCommit.Types.ApprovalRuleEventMetadata
+    Amazonka.CodeCommit.Types.ApprovalRuleOverriddenEventMetadata
+    Amazonka.CodeCommit.Types.ApprovalRuleTemplate
+    Amazonka.CodeCommit.Types.ApprovalState
+    Amazonka.CodeCommit.Types.ApprovalStateChangedEventMetadata
+    Amazonka.CodeCommit.Types.BatchAssociateApprovalRuleTemplateWithRepositoriesError
+    Amazonka.CodeCommit.Types.BatchDescribeMergeConflictsError
+    Amazonka.CodeCommit.Types.BatchDisassociateApprovalRuleTemplateFromRepositoriesError
+    Amazonka.CodeCommit.Types.BatchGetCommitsError
+    Amazonka.CodeCommit.Types.BlobMetadata
+    Amazonka.CodeCommit.Types.BranchInfo
+    Amazonka.CodeCommit.Types.ChangeTypeEnum
+    Amazonka.CodeCommit.Types.Comment
+    Amazonka.CodeCommit.Types.CommentsForComparedCommit
+    Amazonka.CodeCommit.Types.CommentsForPullRequest
+    Amazonka.CodeCommit.Types.Commit
+    Amazonka.CodeCommit.Types.Conflict
+    Amazonka.CodeCommit.Types.ConflictDetailLevelTypeEnum
+    Amazonka.CodeCommit.Types.ConflictMetadata
+    Amazonka.CodeCommit.Types.ConflictResolution
+    Amazonka.CodeCommit.Types.ConflictResolutionStrategyTypeEnum
+    Amazonka.CodeCommit.Types.DeleteFileEntry
+    Amazonka.CodeCommit.Types.Difference
+    Amazonka.CodeCommit.Types.Evaluation
+    Amazonka.CodeCommit.Types.File
+    Amazonka.CodeCommit.Types.FileMetadata
+    Amazonka.CodeCommit.Types.FileModes
+    Amazonka.CodeCommit.Types.FileModeTypeEnum
+    Amazonka.CodeCommit.Types.FileSizes
+    Amazonka.CodeCommit.Types.Folder
+    Amazonka.CodeCommit.Types.IsBinaryFile
+    Amazonka.CodeCommit.Types.Location
+    Amazonka.CodeCommit.Types.MergeHunk
+    Amazonka.CodeCommit.Types.MergeHunkDetail
+    Amazonka.CodeCommit.Types.MergeMetadata
+    Amazonka.CodeCommit.Types.MergeOperations
+    Amazonka.CodeCommit.Types.MergeOptionTypeEnum
+    Amazonka.CodeCommit.Types.ObjectTypeEnum
+    Amazonka.CodeCommit.Types.ObjectTypes
+    Amazonka.CodeCommit.Types.OrderEnum
+    Amazonka.CodeCommit.Types.OriginApprovalRuleTemplate
+    Amazonka.CodeCommit.Types.OverrideStatus
+    Amazonka.CodeCommit.Types.PullRequest
+    Amazonka.CodeCommit.Types.PullRequestCreatedEventMetadata
+    Amazonka.CodeCommit.Types.PullRequestEvent
+    Amazonka.CodeCommit.Types.PullRequestEventType
+    Amazonka.CodeCommit.Types.PullRequestMergedStateChangedEventMetadata
+    Amazonka.CodeCommit.Types.PullRequestSourceReferenceUpdatedEventMetadata
+    Amazonka.CodeCommit.Types.PullRequestStatusChangedEventMetadata
+    Amazonka.CodeCommit.Types.PullRequestStatusEnum
+    Amazonka.CodeCommit.Types.PullRequestTarget
+    Amazonka.CodeCommit.Types.PutFileEntry
+    Amazonka.CodeCommit.Types.ReactionForComment
+    Amazonka.CodeCommit.Types.ReactionValueFormats
+    Amazonka.CodeCommit.Types.RelativeFileVersionEnum
+    Amazonka.CodeCommit.Types.ReplaceContentEntry
+    Amazonka.CodeCommit.Types.ReplacementTypeEnum
+    Amazonka.CodeCommit.Types.RepositoryMetadata
+    Amazonka.CodeCommit.Types.RepositoryNameIdPair
+    Amazonka.CodeCommit.Types.RepositoryTrigger
+    Amazonka.CodeCommit.Types.RepositoryTriggerEventEnum
+    Amazonka.CodeCommit.Types.RepositoryTriggerExecutionFailure
+    Amazonka.CodeCommit.Types.SetFileModeEntry
+    Amazonka.CodeCommit.Types.SortByEnum
+    Amazonka.CodeCommit.Types.SourceFileSpecifier
+    Amazonka.CodeCommit.Types.SubModule
+    Amazonka.CodeCommit.Types.SymbolicLink
+    Amazonka.CodeCommit.Types.Target
+    Amazonka.CodeCommit.Types.UserInfo
+    Amazonka.CodeCommit.UntagResource
+    Amazonka.CodeCommit.UpdateApprovalRuleTemplateContent
+    Amazonka.CodeCommit.UpdateApprovalRuleTemplateDescription
+    Amazonka.CodeCommit.UpdateApprovalRuleTemplateName
+    Amazonka.CodeCommit.UpdateComment
+    Amazonka.CodeCommit.UpdateDefaultBranch
+    Amazonka.CodeCommit.UpdatePullRequestApprovalRuleContent
+    Amazonka.CodeCommit.UpdatePullRequestApprovalState
+    Amazonka.CodeCommit.UpdatePullRequestDescription
+    Amazonka.CodeCommit.UpdatePullRequestStatus
+    Amazonka.CodeCommit.UpdatePullRequestTitle
+    Amazonka.CodeCommit.UpdateRepositoryDescription
+    Amazonka.CodeCommit.UpdateRepositoryName
+    Amazonka.CodeCommit.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-codecommit-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.CodeCommit
-        , Test.AWS.Gen.CodeCommit
-        , Test.AWS.CodeCommit.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.CodeCommit
+    Test.Amazonka.CodeCommit.Internal
+    Test.Amazonka.Gen.CodeCommit
 
-    build-depends:
-          amazonka-core == 1.6.1.*
-        , amazonka-test == 1.6.1.*
-        , amazonka-codecommit
-        , base
-        , bytestring
-        , tasty
-        , tasty-hunit
-        , text
-        , time
-        , unordered-containers
+  build-depends:
+    , amazonka-codecommit
+    , amazonka-core         >=2.0 && <2.1
+    , amazonka-test         >=2.0 && <2.1
+    , base
+    , bytestring
+    , case-insensitive
+    , tasty
+    , tasty-hunit
+    , text
+    , time
+    , unordered-containers
diff --git a/fixture/AssociateApprovalRuleTemplateWithRepository.yaml b/fixture/AssociateApprovalRuleTemplateWithRepository.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/AssociateApprovalRuleTemplateWithRepository.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/AssociateApprovalRuleTemplateWithRepositoryResponse.proto b/fixture/AssociateApprovalRuleTemplateWithRepositoryResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/AssociateApprovalRuleTemplateWithRepositoryResponse.proto
diff --git a/fixture/BatchAssociateApprovalRuleTemplateWithRepositories.yaml b/fixture/BatchAssociateApprovalRuleTemplateWithRepositories.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/BatchAssociateApprovalRuleTemplateWithRepositories.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/BatchAssociateApprovalRuleTemplateWithRepositoriesResponse.proto b/fixture/BatchAssociateApprovalRuleTemplateWithRepositoriesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/BatchAssociateApprovalRuleTemplateWithRepositoriesResponse.proto
diff --git a/fixture/BatchDescribeMergeConflicts.yaml b/fixture/BatchDescribeMergeConflicts.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/BatchDescribeMergeConflicts.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/BatchDescribeMergeConflictsResponse.proto b/fixture/BatchDescribeMergeConflictsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/BatchDescribeMergeConflictsResponse.proto
diff --git a/fixture/BatchDisassociateApprovalRuleTemplateFromRepositories.yaml b/fixture/BatchDisassociateApprovalRuleTemplateFromRepositories.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/BatchDisassociateApprovalRuleTemplateFromRepositories.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse.proto b/fixture/BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse.proto
diff --git a/fixture/BatchGetCommits.yaml b/fixture/BatchGetCommits.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/BatchGetCommits.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/BatchGetCommitsResponse.proto b/fixture/BatchGetCommitsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/BatchGetCommitsResponse.proto
diff --git a/fixture/BatchGetRepositories.yaml b/fixture/BatchGetRepositories.yaml
--- a/fixture/BatchGetRepositories.yaml
+++ b/fixture/BatchGetRepositories.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/CreateApprovalRuleTemplate.yaml b/fixture/CreateApprovalRuleTemplate.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateApprovalRuleTemplate.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/CreateApprovalRuleTemplateResponse.proto b/fixture/CreateApprovalRuleTemplateResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateApprovalRuleTemplateResponse.proto
diff --git a/fixture/CreateBranch.yaml b/fixture/CreateBranch.yaml
--- a/fixture/CreateBranch.yaml
+++ b/fixture/CreateBranch.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/CreateCommit.yaml b/fixture/CreateCommit.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateCommit.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/CreateCommitResponse.proto b/fixture/CreateCommitResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateCommitResponse.proto
diff --git a/fixture/CreatePullRequestApprovalRule.yaml b/fixture/CreatePullRequestApprovalRule.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreatePullRequestApprovalRule.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/CreatePullRequestApprovalRuleResponse.proto b/fixture/CreatePullRequestApprovalRuleResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreatePullRequestApprovalRuleResponse.proto
diff --git a/fixture/CreateRepository.yaml b/fixture/CreateRepository.yaml
--- a/fixture/CreateRepository.yaml
+++ b/fixture/CreateRepository.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/CreateUnreferencedMergeCommit.yaml b/fixture/CreateUnreferencedMergeCommit.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateUnreferencedMergeCommit.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/CreateUnreferencedMergeCommitResponse.proto b/fixture/CreateUnreferencedMergeCommitResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateUnreferencedMergeCommitResponse.proto
diff --git a/fixture/DeleteApprovalRuleTemplate.yaml b/fixture/DeleteApprovalRuleTemplate.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApprovalRuleTemplate.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/DeleteApprovalRuleTemplateResponse.proto b/fixture/DeleteApprovalRuleTemplateResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteApprovalRuleTemplateResponse.proto
diff --git a/fixture/DeleteFile.yaml b/fixture/DeleteFile.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteFile.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/DeleteFileResponse.proto b/fixture/DeleteFileResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteFileResponse.proto
diff --git a/fixture/DeletePullRequestApprovalRule.yaml b/fixture/DeletePullRequestApprovalRule.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeletePullRequestApprovalRule.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/DeletePullRequestApprovalRuleResponse.proto b/fixture/DeletePullRequestApprovalRuleResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeletePullRequestApprovalRuleResponse.proto
diff --git a/fixture/DeleteRepository.yaml b/fixture/DeleteRepository.yaml
--- a/fixture/DeleteRepository.yaml
+++ b/fixture/DeleteRepository.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/DescribeMergeConflicts.yaml b/fixture/DescribeMergeConflicts.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeMergeConflicts.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/DescribeMergeConflictsResponse.proto b/fixture/DescribeMergeConflictsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeMergeConflictsResponse.proto
diff --git a/fixture/DisassociateApprovalRuleTemplateFromRepository.yaml b/fixture/DisassociateApprovalRuleTemplateFromRepository.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DisassociateApprovalRuleTemplateFromRepository.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/DisassociateApprovalRuleTemplateFromRepositoryResponse.proto b/fixture/DisassociateApprovalRuleTemplateFromRepositoryResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DisassociateApprovalRuleTemplateFromRepositoryResponse.proto
diff --git a/fixture/EvaluatePullRequestApprovalRules.yaml b/fixture/EvaluatePullRequestApprovalRules.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/EvaluatePullRequestApprovalRules.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/EvaluatePullRequestApprovalRulesResponse.proto b/fixture/EvaluatePullRequestApprovalRulesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/EvaluatePullRequestApprovalRulesResponse.proto
diff --git a/fixture/GetApprovalRuleTemplate.yaml b/fixture/GetApprovalRuleTemplate.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetApprovalRuleTemplate.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/GetApprovalRuleTemplateResponse.proto b/fixture/GetApprovalRuleTemplateResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetApprovalRuleTemplateResponse.proto
diff --git a/fixture/GetBranch.yaml b/fixture/GetBranch.yaml
--- a/fixture/GetBranch.yaml
+++ b/fixture/GetBranch.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/GetCommentReactions.yaml b/fixture/GetCommentReactions.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetCommentReactions.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/GetCommentReactionsResponse.proto b/fixture/GetCommentReactionsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetCommentReactionsResponse.proto
diff --git a/fixture/GetCommit.yaml b/fixture/GetCommit.yaml
--- a/fixture/GetCommit.yaml
+++ b/fixture/GetCommit.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/GetFile.yaml b/fixture/GetFile.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetFile.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/GetFileResponse.proto b/fixture/GetFileResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetFileResponse.proto
diff --git a/fixture/GetFolder.yaml b/fixture/GetFolder.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetFolder.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/GetFolderResponse.proto b/fixture/GetFolderResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetFolderResponse.proto
diff --git a/fixture/GetMergeCommit.yaml b/fixture/GetMergeCommit.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetMergeCommit.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/GetMergeCommitResponse.proto b/fixture/GetMergeCommitResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetMergeCommitResponse.proto
diff --git a/fixture/GetMergeOptions.yaml b/fixture/GetMergeOptions.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetMergeOptions.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/GetMergeOptionsResponse.proto b/fixture/GetMergeOptionsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetMergeOptionsResponse.proto
diff --git a/fixture/GetPullRequestApprovalStates.yaml b/fixture/GetPullRequestApprovalStates.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetPullRequestApprovalStates.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/GetPullRequestApprovalStatesResponse.proto b/fixture/GetPullRequestApprovalStatesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetPullRequestApprovalStatesResponse.proto
diff --git a/fixture/GetPullRequestOverrideState.yaml b/fixture/GetPullRequestOverrideState.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetPullRequestOverrideState.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/GetPullRequestOverrideStateResponse.proto b/fixture/GetPullRequestOverrideStateResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetPullRequestOverrideStateResponse.proto
diff --git a/fixture/GetRepository.yaml b/fixture/GetRepository.yaml
--- a/fixture/GetRepository.yaml
+++ b/fixture/GetRepository.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/GetRepositoryTriggers.yaml b/fixture/GetRepositoryTriggers.yaml
--- a/fixture/GetRepositoryTriggers.yaml
+++ b/fixture/GetRepositoryTriggers.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/ListApprovalRuleTemplates.yaml b/fixture/ListApprovalRuleTemplates.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListApprovalRuleTemplates.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/ListApprovalRuleTemplatesResponse.proto b/fixture/ListApprovalRuleTemplatesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListApprovalRuleTemplatesResponse.proto
diff --git a/fixture/ListAssociatedApprovalRuleTemplatesForRepository.yaml b/fixture/ListAssociatedApprovalRuleTemplatesForRepository.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssociatedApprovalRuleTemplatesForRepository.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/ListAssociatedApprovalRuleTemplatesForRepositoryResponse.proto b/fixture/ListAssociatedApprovalRuleTemplatesForRepositoryResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssociatedApprovalRuleTemplatesForRepositoryResponse.proto
diff --git a/fixture/ListBranches.yaml b/fixture/ListBranches.yaml
--- a/fixture/ListBranches.yaml
+++ b/fixture/ListBranches.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/ListRepositories.yaml b/fixture/ListRepositories.yaml
--- a/fixture/ListRepositories.yaml
+++ b/fixture/ListRepositories.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/ListRepositoriesForApprovalRuleTemplate.yaml b/fixture/ListRepositoriesForApprovalRuleTemplate.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListRepositoriesForApprovalRuleTemplate.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/ListRepositoriesForApprovalRuleTemplateResponse.proto b/fixture/ListRepositoriesForApprovalRuleTemplateResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListRepositoriesForApprovalRuleTemplateResponse.proto
diff --git a/fixture/ListTagsForResource.yaml b/fixture/ListTagsForResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListTagsForResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/ListTagsForResourceResponse.proto b/fixture/ListTagsForResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListTagsForResourceResponse.proto
diff --git a/fixture/MergeBranchesByFastForward.yaml b/fixture/MergeBranchesByFastForward.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/MergeBranchesByFastForward.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/MergeBranchesByFastForwardResponse.proto b/fixture/MergeBranchesByFastForwardResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/MergeBranchesByFastForwardResponse.proto
diff --git a/fixture/MergeBranchesBySquash.yaml b/fixture/MergeBranchesBySquash.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/MergeBranchesBySquash.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/MergeBranchesBySquashResponse.proto b/fixture/MergeBranchesBySquashResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/MergeBranchesBySquashResponse.proto
diff --git a/fixture/MergeBranchesByThreeWay.yaml b/fixture/MergeBranchesByThreeWay.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/MergeBranchesByThreeWay.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/MergeBranchesByThreeWayResponse.proto b/fixture/MergeBranchesByThreeWayResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/MergeBranchesByThreeWayResponse.proto
diff --git a/fixture/MergePullRequestBySquash.yaml b/fixture/MergePullRequestBySquash.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/MergePullRequestBySquash.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/MergePullRequestBySquashResponse.proto b/fixture/MergePullRequestBySquashResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/MergePullRequestBySquashResponse.proto
diff --git a/fixture/MergePullRequestByThreeWay.yaml b/fixture/MergePullRequestByThreeWay.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/MergePullRequestByThreeWay.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/MergePullRequestByThreeWayResponse.proto b/fixture/MergePullRequestByThreeWayResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/MergePullRequestByThreeWayResponse.proto
diff --git a/fixture/OverridePullRequestApprovalRules.yaml b/fixture/OverridePullRequestApprovalRules.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/OverridePullRequestApprovalRules.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/OverridePullRequestApprovalRulesResponse.proto b/fixture/OverridePullRequestApprovalRulesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/OverridePullRequestApprovalRulesResponse.proto
diff --git a/fixture/PutCommentReaction.yaml b/fixture/PutCommentReaction.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/PutCommentReaction.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/PutCommentReactionResponse.proto b/fixture/PutCommentReactionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/PutCommentReactionResponse.proto
diff --git a/fixture/PutRepositoryTriggers.yaml b/fixture/PutRepositoryTriggers.yaml
--- a/fixture/PutRepositoryTriggers.yaml
+++ b/fixture/PutRepositoryTriggers.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/TagResource.yaml b/fixture/TagResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/TagResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/TagResourceResponse.proto b/fixture/TagResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/TagResourceResponse.proto
diff --git a/fixture/TestRepositoryTriggers.yaml b/fixture/TestRepositoryTriggers.yaml
--- a/fixture/TestRepositoryTriggers.yaml
+++ b/fixture/TestRepositoryTriggers.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/UntagResource.yaml b/fixture/UntagResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UntagResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/UntagResourceResponse.proto b/fixture/UntagResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UntagResourceResponse.proto
diff --git a/fixture/UpdateApprovalRuleTemplateContent.yaml b/fixture/UpdateApprovalRuleTemplateContent.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateApprovalRuleTemplateContent.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/UpdateApprovalRuleTemplateContentResponse.proto b/fixture/UpdateApprovalRuleTemplateContentResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateApprovalRuleTemplateContentResponse.proto
diff --git a/fixture/UpdateApprovalRuleTemplateDescription.yaml b/fixture/UpdateApprovalRuleTemplateDescription.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateApprovalRuleTemplateDescription.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/UpdateApprovalRuleTemplateDescriptionResponse.proto b/fixture/UpdateApprovalRuleTemplateDescriptionResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateApprovalRuleTemplateDescriptionResponse.proto
diff --git a/fixture/UpdateApprovalRuleTemplateName.yaml b/fixture/UpdateApprovalRuleTemplateName.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateApprovalRuleTemplateName.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/UpdateApprovalRuleTemplateNameResponse.proto b/fixture/UpdateApprovalRuleTemplateNameResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateApprovalRuleTemplateNameResponse.proto
diff --git a/fixture/UpdateDefaultBranch.yaml b/fixture/UpdateDefaultBranch.yaml
--- a/fixture/UpdateDefaultBranch.yaml
+++ b/fixture/UpdateDefaultBranch.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/UpdatePullRequestApprovalRuleContent.yaml b/fixture/UpdatePullRequestApprovalRuleContent.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdatePullRequestApprovalRuleContent.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/UpdatePullRequestApprovalRuleContentResponse.proto b/fixture/UpdatePullRequestApprovalRuleContentResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdatePullRequestApprovalRuleContentResponse.proto
diff --git a/fixture/UpdatePullRequestApprovalState.yaml b/fixture/UpdatePullRequestApprovalState.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdatePullRequestApprovalState.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/UpdatePullRequestApprovalStateResponse.proto b/fixture/UpdatePullRequestApprovalStateResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdatePullRequestApprovalStateResponse.proto
diff --git a/fixture/UpdateRepositoryDescription.yaml b/fixture/UpdateRepositoryDescription.yaml
--- a/fixture/UpdateRepositoryDescription.yaml
+++ b/fixture/UpdateRepositoryDescription.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/UpdateRepositoryName.yaml b/fixture/UpdateRepositoryName.yaml
--- a/fixture/UpdateRepositoryName.yaml
+++ b/fixture/UpdateRepositoryName.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  codecommit.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/gen/Amazonka/CodeCommit.hs b/gen/Amazonka/CodeCommit.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit.hs
@@ -0,0 +1,1698 @@
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Amazonka.CodeCommit
+-- 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 @2015-04-13@ of the AWS service descriptions, licensed under Apache 2.0.
+--
+-- AWS CodeCommit
+--
+-- This is the /AWS CodeCommit API Reference/. This reference provides
+-- descriptions of the operations and data types for AWS CodeCommit API
+-- along with usage examples.
+--
+-- You can use the AWS CodeCommit API to work with the following objects:
+--
+-- Repositories, by calling the following:
+--
+-- -   BatchGetRepositories, which returns information about one or more
+--     repositories associated with your AWS account.
+--
+-- -   CreateRepository, which creates an AWS CodeCommit repository.
+--
+-- -   DeleteRepository, which deletes an AWS CodeCommit repository.
+--
+-- -   GetRepository, which returns information about a specified
+--     repository.
+--
+-- -   ListRepositories, which lists all AWS CodeCommit repositories
+--     associated with your AWS account.
+--
+-- -   UpdateRepositoryDescription, which sets or updates the description
+--     of the repository.
+--
+-- -   UpdateRepositoryName, which changes the name of the repository. If
+--     you change the name of a repository, no other users of that
+--     repository can access it until you send them the new HTTPS or SSH
+--     URL to use.
+--
+-- Branches, by calling the following:
+--
+-- -   CreateBranch, which creates a branch in a specified repository.
+--
+-- -   DeleteBranch, which deletes the specified branch in a repository
+--     unless it is the default branch.
+--
+-- -   GetBranch, which returns information about a specified branch.
+--
+-- -   ListBranches, which lists all branches for a specified repository.
+--
+-- -   UpdateDefaultBranch, which changes the default branch for a
+--     repository.
+--
+-- Files, by calling the following:
+--
+-- -   DeleteFile, which deletes the content of a specified file from a
+--     specified branch.
+--
+-- -   GetBlob, which returns the base-64 encoded content of an individual
+--     Git blob object in a repository.
+--
+-- -   GetFile, which returns the base-64 encoded content of a specified
+--     file.
+--
+-- -   GetFolder, which returns the contents of a specified folder or
+--     directory.
+--
+-- -   PutFile, which adds or modifies a single file in a specified
+--     repository and branch.
+--
+-- Commits, by calling the following:
+--
+-- -   BatchGetCommits, which returns information about one or more commits
+--     in a repository.
+--
+-- -   CreateCommit, which creates a commit for changes to a repository.
+--
+-- -   GetCommit, which returns information about a commit, including
+--     commit messages and author and committer information.
+--
+-- -   GetDifferences, which returns information about the differences in a
+--     valid commit specifier (such as a branch, tag, HEAD, commit ID, or
+--     other fully qualified reference).
+--
+-- Merges, by calling the following:
+--
+-- -   BatchDescribeMergeConflicts, which returns information about
+--     conflicts in a merge between commits in a repository.
+--
+-- -   CreateUnreferencedMergeCommit, which creates an unreferenced commit
+--     between two branches or commits for the purpose of comparing them
+--     and identifying any potential conflicts.
+--
+-- -   DescribeMergeConflicts, which returns information about merge
+--     conflicts between the base, source, and destination versions of a
+--     file in a potential merge.
+--
+-- -   GetMergeCommit, which returns information about the merge between a
+--     source and destination commit.
+--
+-- -   GetMergeConflicts, which returns information about merge conflicts
+--     between the source and destination branch in a pull request.
+--
+-- -   GetMergeOptions, which returns information about the available merge
+--     options between two branches or commit specifiers.
+--
+-- -   MergeBranchesByFastForward, which merges two branches using the
+--     fast-forward merge option.
+--
+-- -   MergeBranchesBySquash, which merges two branches using the squash
+--     merge option.
+--
+-- -   MergeBranchesByThreeWay, which merges two branches using the
+--     three-way merge option.
+--
+-- Pull requests, by calling the following:
+--
+-- -   CreatePullRequest, which creates a pull request in a specified
+--     repository.
+--
+-- -   CreatePullRequestApprovalRule, which creates an approval rule for a
+--     specified pull request.
+--
+-- -   DeletePullRequestApprovalRule, which deletes an approval rule for a
+--     specified pull request.
+--
+-- -   DescribePullRequestEvents, which returns information about one or
+--     more pull request events.
+--
+-- -   EvaluatePullRequestApprovalRules, which evaluates whether a pull
+--     request has met all the conditions specified in its associated
+--     approval rules.
+--
+-- -   GetCommentsForPullRequest, which returns information about comments
+--     on a specified pull request.
+--
+-- -   GetPullRequest, which returns information about a specified pull
+--     request.
+--
+-- -   GetPullRequestApprovalStates, which returns information about the
+--     approval states for a specified pull request.
+--
+-- -   GetPullRequestOverrideState, which returns information about whether
+--     approval rules have been set aside (overriden) for a pull request,
+--     and if so, the Amazon Resource Name (ARN) of the user or identity
+--     that overrode the rules and their requirements for the pull request.
+--
+-- -   ListPullRequests, which lists all pull requests for a repository.
+--
+-- -   MergePullRequestByFastForward, which merges the source destination
+--     branch of a pull request into the specified destination branch for
+--     that pull request using the fast-forward merge option.
+--
+-- -   MergePullRequestBySquash, which merges the source destination branch
+--     of a pull request into the specified destination branch for that
+--     pull request using the squash merge option.
+--
+-- -   MergePullRequestByThreeWay. which merges the source destination
+--     branch of a pull request into the specified destination branch for
+--     that pull request using the three-way merge option.
+--
+-- -   OverridePullRequestApprovalRules, which sets aside all approval rule
+--     requirements for a pull request.
+--
+-- -   PostCommentForPullRequest, which posts a comment to a pull request
+--     at the specified line, file, or request.
+--
+-- -   UpdatePullRequestApprovalRuleContent, which updates the structure of
+--     an approval rule for a pull request.
+--
+-- -   UpdatePullRequestApprovalState, which updates the state of an
+--     approval on a pull request.
+--
+-- -   UpdatePullRequestDescription, which updates the description of a
+--     pull request.
+--
+-- -   UpdatePullRequestStatus, which updates the status of a pull request.
+--
+-- -   UpdatePullRequestTitle, which updates the title of a pull request.
+--
+-- Approval rule templates, by calling the following:
+--
+-- -   AssociateApprovalRuleTemplateWithRepository, which associates a
+--     template with a specified repository. After the template is
+--     associated with a repository, AWS CodeCommit creates approval rules
+--     that match the template conditions on every pull request created in
+--     the specified repository.
+--
+-- -   BatchAssociateApprovalRuleTemplateWithRepositories, which associates
+--     a template with one or more specified repositories. After the
+--     template is associated with a repository, AWS CodeCommit creates
+--     approval rules that match the template conditions on every pull
+--     request created in the specified repositories.
+--
+-- -   BatchDisassociateApprovalRuleTemplateFromRepositories, which removes
+--     the association between a template and specified repositories so
+--     that approval rules based on the template are not automatically
+--     created when pull requests are created in those repositories.
+--
+-- -   CreateApprovalRuleTemplate, which creates a template for approval
+--     rules that can then be associated with one or more repositories in
+--     your AWS account.
+--
+-- -   DeleteApprovalRuleTemplate, which deletes the specified template. It
+--     does not remove approval rules on pull requests already created with
+--     the template.
+--
+-- -   DisassociateApprovalRuleTemplateFromRepository, which removes the
+--     association between a template and a repository so that approval
+--     rules based on the template are not automatically created when pull
+--     requests are created in the specified repository.
+--
+-- -   GetApprovalRuleTemplate, which returns information about an approval
+--     rule template.
+--
+-- -   ListApprovalRuleTemplates, which lists all approval rule templates
+--     in the AWS Region in your AWS account.
+--
+-- -   ListAssociatedApprovalRuleTemplatesForRepository, which lists all
+--     approval rule templates that are associated with a specified
+--     repository.
+--
+-- -   ListRepositoriesForApprovalRuleTemplate, which lists all
+--     repositories associated with the specified approval rule template.
+--
+-- -   UpdateApprovalRuleTemplateDescription, which updates the description
+--     of an approval rule template.
+--
+-- -   UpdateApprovalRuleTemplateName, which updates the name of an
+--     approval rule template.
+--
+-- -   UpdateApprovalRuleTemplateContent, which updates the content of an
+--     approval rule template.
+--
+-- Comments in a repository, by calling the following:
+--
+-- -   DeleteCommentContent, which deletes the content of a comment on a
+--     commit in a repository.
+--
+-- -   GetComment, which returns information about a comment on a commit.
+--
+-- -   GetCommentReactions, which returns information about emoji reactions
+--     to comments.
+--
+-- -   GetCommentsForComparedCommit, which returns information about
+--     comments on the comparison between two commit specifiers in a
+--     repository.
+--
+-- -   PostCommentForComparedCommit, which creates a comment on the
+--     comparison between two commit specifiers in a repository.
+--
+-- -   PostCommentReply, which creates a reply to a comment.
+--
+-- -   PutCommentReaction, which creates or updates an emoji reaction to a
+--     comment.
+--
+-- -   UpdateComment, which updates the content of a comment on a commit in
+--     a repository.
+--
+-- Tags used to tag resources in AWS CodeCommit (not Git tags), by calling
+-- the following:
+--
+-- -   ListTagsForResource, which gets information about AWS tags for a
+--     specified Amazon Resource Name (ARN) in AWS CodeCommit.
+--
+-- -   TagResource, which adds or updates tags for a resource in AWS
+--     CodeCommit.
+--
+-- -   UntagResource, which removes tags for a resource in AWS CodeCommit.
+--
+-- Triggers, by calling the following:
+--
+-- -   GetRepositoryTriggers, which returns information about triggers
+--     configured for a repository.
+--
+-- -   PutRepositoryTriggers, which replaces all triggers for a repository
+--     and can be used to create or delete triggers.
+--
+-- -   TestRepositoryTriggers, which tests the functionality of a
+--     repository trigger by sending data to the trigger target.
+--
+-- For information about how to use AWS CodeCommit, see the
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html AWS CodeCommit User Guide>.
+module Amazonka.CodeCommit
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    -- $errors
+
+    -- ** ActorDoesNotExistException
+    _ActorDoesNotExistException,
+
+    -- ** ApprovalRuleContentRequiredException
+    _ApprovalRuleContentRequiredException,
+
+    -- ** ApprovalRuleDoesNotExistException
+    _ApprovalRuleDoesNotExistException,
+
+    -- ** ApprovalRuleNameAlreadyExistsException
+    _ApprovalRuleNameAlreadyExistsException,
+
+    -- ** ApprovalRuleNameRequiredException
+    _ApprovalRuleNameRequiredException,
+
+    -- ** ApprovalRuleTemplateContentRequiredException
+    _ApprovalRuleTemplateContentRequiredException,
+
+    -- ** ApprovalRuleTemplateDoesNotExistException
+    _ApprovalRuleTemplateDoesNotExistException,
+
+    -- ** ApprovalRuleTemplateInUseException
+    _ApprovalRuleTemplateInUseException,
+
+    -- ** ApprovalRuleTemplateNameAlreadyExistsException
+    _ApprovalRuleTemplateNameAlreadyExistsException,
+
+    -- ** ApprovalRuleTemplateNameRequiredException
+    _ApprovalRuleTemplateNameRequiredException,
+
+    -- ** ApprovalStateRequiredException
+    _ApprovalStateRequiredException,
+
+    -- ** AuthorDoesNotExistException
+    _AuthorDoesNotExistException,
+
+    -- ** BeforeCommitIdAndAfterCommitIdAreSameException
+    _BeforeCommitIdAndAfterCommitIdAreSameException,
+
+    -- ** BlobIdDoesNotExistException
+    _BlobIdDoesNotExistException,
+
+    -- ** BlobIdRequiredException
+    _BlobIdRequiredException,
+
+    -- ** BranchDoesNotExistException
+    _BranchDoesNotExistException,
+
+    -- ** BranchNameExistsException
+    _BranchNameExistsException,
+
+    -- ** BranchNameIsTagNameException
+    _BranchNameIsTagNameException,
+
+    -- ** BranchNameRequiredException
+    _BranchNameRequiredException,
+
+    -- ** CannotDeleteApprovalRuleFromTemplateException
+    _CannotDeleteApprovalRuleFromTemplateException,
+
+    -- ** CannotModifyApprovalRuleFromTemplateException
+    _CannotModifyApprovalRuleFromTemplateException,
+
+    -- ** ClientRequestTokenRequiredException
+    _ClientRequestTokenRequiredException,
+
+    -- ** CommentContentRequiredException
+    _CommentContentRequiredException,
+
+    -- ** CommentContentSizeLimitExceededException
+    _CommentContentSizeLimitExceededException,
+
+    -- ** CommentDeletedException
+    _CommentDeletedException,
+
+    -- ** CommentDoesNotExistException
+    _CommentDoesNotExistException,
+
+    -- ** CommentIdRequiredException
+    _CommentIdRequiredException,
+
+    -- ** CommentNotCreatedByCallerException
+    _CommentNotCreatedByCallerException,
+
+    -- ** CommitDoesNotExistException
+    _CommitDoesNotExistException,
+
+    -- ** CommitIdDoesNotExistException
+    _CommitIdDoesNotExistException,
+
+    -- ** CommitIdRequiredException
+    _CommitIdRequiredException,
+
+    -- ** CommitIdsLimitExceededException
+    _CommitIdsLimitExceededException,
+
+    -- ** CommitIdsListRequiredException
+    _CommitIdsListRequiredException,
+
+    -- ** CommitMessageLengthExceededException
+    _CommitMessageLengthExceededException,
+
+    -- ** CommitRequiredException
+    _CommitRequiredException,
+
+    -- ** ConcurrentReferenceUpdateException
+    _ConcurrentReferenceUpdateException,
+
+    -- ** DefaultBranchCannotBeDeletedException
+    _DefaultBranchCannotBeDeletedException,
+
+    -- ** DirectoryNameConflictsWithFileNameException
+    _DirectoryNameConflictsWithFileNameException,
+
+    -- ** EncryptionIntegrityChecksFailedException
+    _EncryptionIntegrityChecksFailedException,
+
+    -- ** EncryptionKeyAccessDeniedException
+    _EncryptionKeyAccessDeniedException,
+
+    -- ** EncryptionKeyDisabledException
+    _EncryptionKeyDisabledException,
+
+    -- ** EncryptionKeyNotFoundException
+    _EncryptionKeyNotFoundException,
+
+    -- ** EncryptionKeyUnavailableException
+    _EncryptionKeyUnavailableException,
+
+    -- ** FileContentAndSourceFileSpecifiedException
+    _FileContentAndSourceFileSpecifiedException,
+
+    -- ** FileContentRequiredException
+    _FileContentRequiredException,
+
+    -- ** FileContentSizeLimitExceededException
+    _FileContentSizeLimitExceededException,
+
+    -- ** FileDoesNotExistException
+    _FileDoesNotExistException,
+
+    -- ** FileEntryRequiredException
+    _FileEntryRequiredException,
+
+    -- ** FileModeRequiredException
+    _FileModeRequiredException,
+
+    -- ** FileNameConflictsWithDirectoryNameException
+    _FileNameConflictsWithDirectoryNameException,
+
+    -- ** FilePathConflictsWithSubmodulePathException
+    _FilePathConflictsWithSubmodulePathException,
+
+    -- ** FileTooLargeException
+    _FileTooLargeException,
+
+    -- ** FolderContentSizeLimitExceededException
+    _FolderContentSizeLimitExceededException,
+
+    -- ** FolderDoesNotExistException
+    _FolderDoesNotExistException,
+
+    -- ** IdempotencyParameterMismatchException
+    _IdempotencyParameterMismatchException,
+
+    -- ** InvalidActorArnException
+    _InvalidActorArnException,
+
+    -- ** InvalidApprovalRuleContentException
+    _InvalidApprovalRuleContentException,
+
+    -- ** InvalidApprovalRuleNameException
+    _InvalidApprovalRuleNameException,
+
+    -- ** InvalidApprovalRuleTemplateContentException
+    _InvalidApprovalRuleTemplateContentException,
+
+    -- ** InvalidApprovalRuleTemplateDescriptionException
+    _InvalidApprovalRuleTemplateDescriptionException,
+
+    -- ** InvalidApprovalRuleTemplateNameException
+    _InvalidApprovalRuleTemplateNameException,
+
+    -- ** InvalidApprovalStateException
+    _InvalidApprovalStateException,
+
+    -- ** InvalidAuthorArnException
+    _InvalidAuthorArnException,
+
+    -- ** InvalidBlobIdException
+    _InvalidBlobIdException,
+
+    -- ** InvalidBranchNameException
+    _InvalidBranchNameException,
+
+    -- ** InvalidClientRequestTokenException
+    _InvalidClientRequestTokenException,
+
+    -- ** InvalidCommentIdException
+    _InvalidCommentIdException,
+
+    -- ** InvalidCommitException
+    _InvalidCommitException,
+
+    -- ** InvalidCommitIdException
+    _InvalidCommitIdException,
+
+    -- ** InvalidConflictDetailLevelException
+    _InvalidConflictDetailLevelException,
+
+    -- ** InvalidConflictResolutionException
+    _InvalidConflictResolutionException,
+
+    -- ** InvalidConflictResolutionStrategyException
+    _InvalidConflictResolutionStrategyException,
+
+    -- ** InvalidContinuationTokenException
+    _InvalidContinuationTokenException,
+
+    -- ** InvalidDeletionParameterException
+    _InvalidDeletionParameterException,
+
+    -- ** InvalidDescriptionException
+    _InvalidDescriptionException,
+
+    -- ** InvalidDestinationCommitSpecifierException
+    _InvalidDestinationCommitSpecifierException,
+
+    -- ** InvalidEmailException
+    _InvalidEmailException,
+
+    -- ** InvalidFileLocationException
+    _InvalidFileLocationException,
+
+    -- ** InvalidFileModeException
+    _InvalidFileModeException,
+
+    -- ** InvalidFilePositionException
+    _InvalidFilePositionException,
+
+    -- ** InvalidMaxConflictFilesException
+    _InvalidMaxConflictFilesException,
+
+    -- ** InvalidMaxMergeHunksException
+    _InvalidMaxMergeHunksException,
+
+    -- ** InvalidMaxResultsException
+    _InvalidMaxResultsException,
+
+    -- ** InvalidMergeOptionException
+    _InvalidMergeOptionException,
+
+    -- ** InvalidOrderException
+    _InvalidOrderException,
+
+    -- ** InvalidOverrideStatusException
+    _InvalidOverrideStatusException,
+
+    -- ** InvalidParentCommitIdException
+    _InvalidParentCommitIdException,
+
+    -- ** InvalidPathException
+    _InvalidPathException,
+
+    -- ** InvalidPullRequestEventTypeException
+    _InvalidPullRequestEventTypeException,
+
+    -- ** InvalidPullRequestIdException
+    _InvalidPullRequestIdException,
+
+    -- ** InvalidPullRequestStatusException
+    _InvalidPullRequestStatusException,
+
+    -- ** InvalidPullRequestStatusUpdateException
+    _InvalidPullRequestStatusUpdateException,
+
+    -- ** InvalidReactionUserArnException
+    _InvalidReactionUserArnException,
+
+    -- ** InvalidReactionValueException
+    _InvalidReactionValueException,
+
+    -- ** InvalidReferenceNameException
+    _InvalidReferenceNameException,
+
+    -- ** InvalidRelativeFileVersionEnumException
+    _InvalidRelativeFileVersionEnumException,
+
+    -- ** InvalidReplacementContentException
+    _InvalidReplacementContentException,
+
+    -- ** InvalidReplacementTypeException
+    _InvalidReplacementTypeException,
+
+    -- ** InvalidRepositoryDescriptionException
+    _InvalidRepositoryDescriptionException,
+
+    -- ** InvalidRepositoryNameException
+    _InvalidRepositoryNameException,
+
+    -- ** InvalidRepositoryTriggerBranchNameException
+    _InvalidRepositoryTriggerBranchNameException,
+
+    -- ** InvalidRepositoryTriggerCustomDataException
+    _InvalidRepositoryTriggerCustomDataException,
+
+    -- ** InvalidRepositoryTriggerDestinationArnException
+    _InvalidRepositoryTriggerDestinationArnException,
+
+    -- ** InvalidRepositoryTriggerEventsException
+    _InvalidRepositoryTriggerEventsException,
+
+    -- ** InvalidRepositoryTriggerNameException
+    _InvalidRepositoryTriggerNameException,
+
+    -- ** InvalidRepositoryTriggerRegionException
+    _InvalidRepositoryTriggerRegionException,
+
+    -- ** InvalidResourceArnException
+    _InvalidResourceArnException,
+
+    -- ** InvalidRevisionIdException
+    _InvalidRevisionIdException,
+
+    -- ** InvalidRuleContentSha256Exception
+    _InvalidRuleContentSha256Exception,
+
+    -- ** InvalidSortByException
+    _InvalidSortByException,
+
+    -- ** InvalidSourceCommitSpecifierException
+    _InvalidSourceCommitSpecifierException,
+
+    -- ** InvalidSystemTagUsageException
+    _InvalidSystemTagUsageException,
+
+    -- ** InvalidTagKeysListException
+    _InvalidTagKeysListException,
+
+    -- ** InvalidTagsMapException
+    _InvalidTagsMapException,
+
+    -- ** InvalidTargetBranchException
+    _InvalidTargetBranchException,
+
+    -- ** InvalidTargetException
+    _InvalidTargetException,
+
+    -- ** InvalidTargetsException
+    _InvalidTargetsException,
+
+    -- ** InvalidTitleException
+    _InvalidTitleException,
+
+    -- ** ManualMergeRequiredException
+    _ManualMergeRequiredException,
+
+    -- ** MaximumBranchesExceededException
+    _MaximumBranchesExceededException,
+
+    -- ** MaximumConflictResolutionEntriesExceededException
+    _MaximumConflictResolutionEntriesExceededException,
+
+    -- ** MaximumFileContentToLoadExceededException
+    _MaximumFileContentToLoadExceededException,
+
+    -- ** MaximumFileEntriesExceededException
+    _MaximumFileEntriesExceededException,
+
+    -- ** MaximumItemsToCompareExceededException
+    _MaximumItemsToCompareExceededException,
+
+    -- ** MaximumNumberOfApprovalsExceededException
+    _MaximumNumberOfApprovalsExceededException,
+
+    -- ** MaximumOpenPullRequestsExceededException
+    _MaximumOpenPullRequestsExceededException,
+
+    -- ** MaximumRepositoryNamesExceededException
+    _MaximumRepositoryNamesExceededException,
+
+    -- ** MaximumRepositoryTriggersExceededException
+    _MaximumRepositoryTriggersExceededException,
+
+    -- ** MaximumRuleTemplatesAssociatedWithRepositoryException
+    _MaximumRuleTemplatesAssociatedWithRepositoryException,
+
+    -- ** MergeOptionRequiredException
+    _MergeOptionRequiredException,
+
+    -- ** MultipleConflictResolutionEntriesException
+    _MultipleConflictResolutionEntriesException,
+
+    -- ** MultipleRepositoriesInPullRequestException
+    _MultipleRepositoriesInPullRequestException,
+
+    -- ** NameLengthExceededException
+    _NameLengthExceededException,
+
+    -- ** NoChangeException
+    _NoChangeException,
+
+    -- ** NumberOfRuleTemplatesExceededException
+    _NumberOfRuleTemplatesExceededException,
+
+    -- ** NumberOfRulesExceededException
+    _NumberOfRulesExceededException,
+
+    -- ** OverrideAlreadySetException
+    _OverrideAlreadySetException,
+
+    -- ** OverrideStatusRequiredException
+    _OverrideStatusRequiredException,
+
+    -- ** ParentCommitDoesNotExistException
+    _ParentCommitDoesNotExistException,
+
+    -- ** ParentCommitIdOutdatedException
+    _ParentCommitIdOutdatedException,
+
+    -- ** ParentCommitIdRequiredException
+    _ParentCommitIdRequiredException,
+
+    -- ** PathDoesNotExistException
+    _PathDoesNotExistException,
+
+    -- ** PathRequiredException
+    _PathRequiredException,
+
+    -- ** PullRequestAlreadyClosedException
+    _PullRequestAlreadyClosedException,
+
+    -- ** PullRequestApprovalRulesNotSatisfiedException
+    _PullRequestApprovalRulesNotSatisfiedException,
+
+    -- ** PullRequestCannotBeApprovedByAuthorException
+    _PullRequestCannotBeApprovedByAuthorException,
+
+    -- ** PullRequestDoesNotExistException
+    _PullRequestDoesNotExistException,
+
+    -- ** PullRequestIdRequiredException
+    _PullRequestIdRequiredException,
+
+    -- ** PullRequestStatusRequiredException
+    _PullRequestStatusRequiredException,
+
+    -- ** PutFileEntryConflictException
+    _PutFileEntryConflictException,
+
+    -- ** ReactionLimitExceededException
+    _ReactionLimitExceededException,
+
+    -- ** ReactionValueRequiredException
+    _ReactionValueRequiredException,
+
+    -- ** ReferenceDoesNotExistException
+    _ReferenceDoesNotExistException,
+
+    -- ** ReferenceNameRequiredException
+    _ReferenceNameRequiredException,
+
+    -- ** ReferenceTypeNotSupportedException
+    _ReferenceTypeNotSupportedException,
+
+    -- ** ReplacementContentRequiredException
+    _ReplacementContentRequiredException,
+
+    -- ** ReplacementTypeRequiredException
+    _ReplacementTypeRequiredException,
+
+    -- ** RepositoryDoesNotExistException
+    _RepositoryDoesNotExistException,
+
+    -- ** RepositoryLimitExceededException
+    _RepositoryLimitExceededException,
+
+    -- ** RepositoryNameExistsException
+    _RepositoryNameExistsException,
+
+    -- ** RepositoryNameRequiredException
+    _RepositoryNameRequiredException,
+
+    -- ** RepositoryNamesRequiredException
+    _RepositoryNamesRequiredException,
+
+    -- ** RepositoryNotAssociatedWithPullRequestException
+    _RepositoryNotAssociatedWithPullRequestException,
+
+    -- ** RepositoryTriggerBranchNameListRequiredException
+    _RepositoryTriggerBranchNameListRequiredException,
+
+    -- ** RepositoryTriggerDestinationArnRequiredException
+    _RepositoryTriggerDestinationArnRequiredException,
+
+    -- ** RepositoryTriggerEventsListRequiredException
+    _RepositoryTriggerEventsListRequiredException,
+
+    -- ** RepositoryTriggerNameRequiredException
+    _RepositoryTriggerNameRequiredException,
+
+    -- ** RepositoryTriggersListRequiredException
+    _RepositoryTriggersListRequiredException,
+
+    -- ** ResourceArnRequiredException
+    _ResourceArnRequiredException,
+
+    -- ** RestrictedSourceFileException
+    _RestrictedSourceFileException,
+
+    -- ** RevisionIdRequiredException
+    _RevisionIdRequiredException,
+
+    -- ** RevisionNotCurrentException
+    _RevisionNotCurrentException,
+
+    -- ** SameFileContentException
+    _SameFileContentException,
+
+    -- ** SamePathRequestException
+    _SamePathRequestException,
+
+    -- ** SourceAndDestinationAreSameException
+    _SourceAndDestinationAreSameException,
+
+    -- ** SourceFileOrContentRequiredException
+    _SourceFileOrContentRequiredException,
+
+    -- ** TagKeysListRequiredException
+    _TagKeysListRequiredException,
+
+    -- ** TagPolicyException
+    _TagPolicyException,
+
+    -- ** TagsMapRequiredException
+    _TagsMapRequiredException,
+
+    -- ** TargetRequiredException
+    _TargetRequiredException,
+
+    -- ** TargetsRequiredException
+    _TargetsRequiredException,
+
+    -- ** TipOfSourceReferenceIsDifferentException
+    _TipOfSourceReferenceIsDifferentException,
+
+    -- ** TipsDivergenceExceededException
+    _TipsDivergenceExceededException,
+
+    -- ** TitleRequiredException
+    _TitleRequiredException,
+
+    -- ** TooManyTagsException
+    _TooManyTagsException,
+
+    -- * Waiters
+    -- $waiters
+
+    -- * Operations
+    -- $operations
+
+    -- ** AssociateApprovalRuleTemplateWithRepository
+    AssociateApprovalRuleTemplateWithRepository (AssociateApprovalRuleTemplateWithRepository'),
+    newAssociateApprovalRuleTemplateWithRepository,
+    AssociateApprovalRuleTemplateWithRepositoryResponse (AssociateApprovalRuleTemplateWithRepositoryResponse'),
+    newAssociateApprovalRuleTemplateWithRepositoryResponse,
+
+    -- ** BatchAssociateApprovalRuleTemplateWithRepositories
+    BatchAssociateApprovalRuleTemplateWithRepositories (BatchAssociateApprovalRuleTemplateWithRepositories'),
+    newBatchAssociateApprovalRuleTemplateWithRepositories,
+    BatchAssociateApprovalRuleTemplateWithRepositoriesResponse (BatchAssociateApprovalRuleTemplateWithRepositoriesResponse'),
+    newBatchAssociateApprovalRuleTemplateWithRepositoriesResponse,
+
+    -- ** BatchDescribeMergeConflicts
+    BatchDescribeMergeConflicts (BatchDescribeMergeConflicts'),
+    newBatchDescribeMergeConflicts,
+    BatchDescribeMergeConflictsResponse (BatchDescribeMergeConflictsResponse'),
+    newBatchDescribeMergeConflictsResponse,
+
+    -- ** BatchDisassociateApprovalRuleTemplateFromRepositories
+    BatchDisassociateApprovalRuleTemplateFromRepositories (BatchDisassociateApprovalRuleTemplateFromRepositories'),
+    newBatchDisassociateApprovalRuleTemplateFromRepositories,
+    BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse (BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse'),
+    newBatchDisassociateApprovalRuleTemplateFromRepositoriesResponse,
+
+    -- ** BatchGetCommits
+    BatchGetCommits (BatchGetCommits'),
+    newBatchGetCommits,
+    BatchGetCommitsResponse (BatchGetCommitsResponse'),
+    newBatchGetCommitsResponse,
+
+    -- ** BatchGetRepositories
+    BatchGetRepositories (BatchGetRepositories'),
+    newBatchGetRepositories,
+    BatchGetRepositoriesResponse (BatchGetRepositoriesResponse'),
+    newBatchGetRepositoriesResponse,
+
+    -- ** CreateApprovalRuleTemplate
+    CreateApprovalRuleTemplate (CreateApprovalRuleTemplate'),
+    newCreateApprovalRuleTemplate,
+    CreateApprovalRuleTemplateResponse (CreateApprovalRuleTemplateResponse'),
+    newCreateApprovalRuleTemplateResponse,
+
+    -- ** CreateBranch
+    CreateBranch (CreateBranch'),
+    newCreateBranch,
+    CreateBranchResponse (CreateBranchResponse'),
+    newCreateBranchResponse,
+
+    -- ** CreateCommit
+    CreateCommit (CreateCommit'),
+    newCreateCommit,
+    CreateCommitResponse (CreateCommitResponse'),
+    newCreateCommitResponse,
+
+    -- ** CreatePullRequest
+    CreatePullRequest (CreatePullRequest'),
+    newCreatePullRequest,
+    CreatePullRequestResponse (CreatePullRequestResponse'),
+    newCreatePullRequestResponse,
+
+    -- ** CreatePullRequestApprovalRule
+    CreatePullRequestApprovalRule (CreatePullRequestApprovalRule'),
+    newCreatePullRequestApprovalRule,
+    CreatePullRequestApprovalRuleResponse (CreatePullRequestApprovalRuleResponse'),
+    newCreatePullRequestApprovalRuleResponse,
+
+    -- ** CreateRepository
+    CreateRepository (CreateRepository'),
+    newCreateRepository,
+    CreateRepositoryResponse (CreateRepositoryResponse'),
+    newCreateRepositoryResponse,
+
+    -- ** CreateUnreferencedMergeCommit
+    CreateUnreferencedMergeCommit (CreateUnreferencedMergeCommit'),
+    newCreateUnreferencedMergeCommit,
+    CreateUnreferencedMergeCommitResponse (CreateUnreferencedMergeCommitResponse'),
+    newCreateUnreferencedMergeCommitResponse,
+
+    -- ** DeleteApprovalRuleTemplate
+    DeleteApprovalRuleTemplate (DeleteApprovalRuleTemplate'),
+    newDeleteApprovalRuleTemplate,
+    DeleteApprovalRuleTemplateResponse (DeleteApprovalRuleTemplateResponse'),
+    newDeleteApprovalRuleTemplateResponse,
+
+    -- ** DeleteBranch
+    DeleteBranch (DeleteBranch'),
+    newDeleteBranch,
+    DeleteBranchResponse (DeleteBranchResponse'),
+    newDeleteBranchResponse,
+
+    -- ** DeleteCommentContent
+    DeleteCommentContent (DeleteCommentContent'),
+    newDeleteCommentContent,
+    DeleteCommentContentResponse (DeleteCommentContentResponse'),
+    newDeleteCommentContentResponse,
+
+    -- ** DeleteFile
+    DeleteFile (DeleteFile'),
+    newDeleteFile,
+    DeleteFileResponse (DeleteFileResponse'),
+    newDeleteFileResponse,
+
+    -- ** DeletePullRequestApprovalRule
+    DeletePullRequestApprovalRule (DeletePullRequestApprovalRule'),
+    newDeletePullRequestApprovalRule,
+    DeletePullRequestApprovalRuleResponse (DeletePullRequestApprovalRuleResponse'),
+    newDeletePullRequestApprovalRuleResponse,
+
+    -- ** DeleteRepository
+    DeleteRepository (DeleteRepository'),
+    newDeleteRepository,
+    DeleteRepositoryResponse (DeleteRepositoryResponse'),
+    newDeleteRepositoryResponse,
+
+    -- ** DescribeMergeConflicts
+    DescribeMergeConflicts (DescribeMergeConflicts'),
+    newDescribeMergeConflicts,
+    DescribeMergeConflictsResponse (DescribeMergeConflictsResponse'),
+    newDescribeMergeConflictsResponse,
+
+    -- ** DescribePullRequestEvents (Paginated)
+    DescribePullRequestEvents (DescribePullRequestEvents'),
+    newDescribePullRequestEvents,
+    DescribePullRequestEventsResponse (DescribePullRequestEventsResponse'),
+    newDescribePullRequestEventsResponse,
+
+    -- ** DisassociateApprovalRuleTemplateFromRepository
+    DisassociateApprovalRuleTemplateFromRepository (DisassociateApprovalRuleTemplateFromRepository'),
+    newDisassociateApprovalRuleTemplateFromRepository,
+    DisassociateApprovalRuleTemplateFromRepositoryResponse (DisassociateApprovalRuleTemplateFromRepositoryResponse'),
+    newDisassociateApprovalRuleTemplateFromRepositoryResponse,
+
+    -- ** EvaluatePullRequestApprovalRules
+    EvaluatePullRequestApprovalRules (EvaluatePullRequestApprovalRules'),
+    newEvaluatePullRequestApprovalRules,
+    EvaluatePullRequestApprovalRulesResponse (EvaluatePullRequestApprovalRulesResponse'),
+    newEvaluatePullRequestApprovalRulesResponse,
+
+    -- ** GetApprovalRuleTemplate
+    GetApprovalRuleTemplate (GetApprovalRuleTemplate'),
+    newGetApprovalRuleTemplate,
+    GetApprovalRuleTemplateResponse (GetApprovalRuleTemplateResponse'),
+    newGetApprovalRuleTemplateResponse,
+
+    -- ** GetBlob
+    GetBlob (GetBlob'),
+    newGetBlob,
+    GetBlobResponse (GetBlobResponse'),
+    newGetBlobResponse,
+
+    -- ** GetBranch
+    GetBranch (GetBranch'),
+    newGetBranch,
+    GetBranchResponse (GetBranchResponse'),
+    newGetBranchResponse,
+
+    -- ** GetComment
+    GetComment (GetComment'),
+    newGetComment,
+    GetCommentResponse (GetCommentResponse'),
+    newGetCommentResponse,
+
+    -- ** GetCommentReactions
+    GetCommentReactions (GetCommentReactions'),
+    newGetCommentReactions,
+    GetCommentReactionsResponse (GetCommentReactionsResponse'),
+    newGetCommentReactionsResponse,
+
+    -- ** GetCommentsForComparedCommit (Paginated)
+    GetCommentsForComparedCommit (GetCommentsForComparedCommit'),
+    newGetCommentsForComparedCommit,
+    GetCommentsForComparedCommitResponse (GetCommentsForComparedCommitResponse'),
+    newGetCommentsForComparedCommitResponse,
+
+    -- ** GetCommentsForPullRequest (Paginated)
+    GetCommentsForPullRequest (GetCommentsForPullRequest'),
+    newGetCommentsForPullRequest,
+    GetCommentsForPullRequestResponse (GetCommentsForPullRequestResponse'),
+    newGetCommentsForPullRequestResponse,
+
+    -- ** GetCommit
+    GetCommit (GetCommit'),
+    newGetCommit,
+    GetCommitResponse (GetCommitResponse'),
+    newGetCommitResponse,
+
+    -- ** GetDifferences (Paginated)
+    GetDifferences (GetDifferences'),
+    newGetDifferences,
+    GetDifferencesResponse (GetDifferencesResponse'),
+    newGetDifferencesResponse,
+
+    -- ** GetFile
+    GetFile (GetFile'),
+    newGetFile,
+    GetFileResponse (GetFileResponse'),
+    newGetFileResponse,
+
+    -- ** GetFolder
+    GetFolder (GetFolder'),
+    newGetFolder,
+    GetFolderResponse (GetFolderResponse'),
+    newGetFolderResponse,
+
+    -- ** GetMergeCommit
+    GetMergeCommit (GetMergeCommit'),
+    newGetMergeCommit,
+    GetMergeCommitResponse (GetMergeCommitResponse'),
+    newGetMergeCommitResponse,
+
+    -- ** GetMergeConflicts
+    GetMergeConflicts (GetMergeConflicts'),
+    newGetMergeConflicts,
+    GetMergeConflictsResponse (GetMergeConflictsResponse'),
+    newGetMergeConflictsResponse,
+
+    -- ** GetMergeOptions
+    GetMergeOptions (GetMergeOptions'),
+    newGetMergeOptions,
+    GetMergeOptionsResponse (GetMergeOptionsResponse'),
+    newGetMergeOptionsResponse,
+
+    -- ** GetPullRequest
+    GetPullRequest (GetPullRequest'),
+    newGetPullRequest,
+    GetPullRequestResponse (GetPullRequestResponse'),
+    newGetPullRequestResponse,
+
+    -- ** GetPullRequestApprovalStates
+    GetPullRequestApprovalStates (GetPullRequestApprovalStates'),
+    newGetPullRequestApprovalStates,
+    GetPullRequestApprovalStatesResponse (GetPullRequestApprovalStatesResponse'),
+    newGetPullRequestApprovalStatesResponse,
+
+    -- ** GetPullRequestOverrideState
+    GetPullRequestOverrideState (GetPullRequestOverrideState'),
+    newGetPullRequestOverrideState,
+    GetPullRequestOverrideStateResponse (GetPullRequestOverrideStateResponse'),
+    newGetPullRequestOverrideStateResponse,
+
+    -- ** GetRepository
+    GetRepository (GetRepository'),
+    newGetRepository,
+    GetRepositoryResponse (GetRepositoryResponse'),
+    newGetRepositoryResponse,
+
+    -- ** GetRepositoryTriggers
+    GetRepositoryTriggers (GetRepositoryTriggers'),
+    newGetRepositoryTriggers,
+    GetRepositoryTriggersResponse (GetRepositoryTriggersResponse'),
+    newGetRepositoryTriggersResponse,
+
+    -- ** ListApprovalRuleTemplates
+    ListApprovalRuleTemplates (ListApprovalRuleTemplates'),
+    newListApprovalRuleTemplates,
+    ListApprovalRuleTemplatesResponse (ListApprovalRuleTemplatesResponse'),
+    newListApprovalRuleTemplatesResponse,
+
+    -- ** ListAssociatedApprovalRuleTemplatesForRepository
+    ListAssociatedApprovalRuleTemplatesForRepository (ListAssociatedApprovalRuleTemplatesForRepository'),
+    newListAssociatedApprovalRuleTemplatesForRepository,
+    ListAssociatedApprovalRuleTemplatesForRepositoryResponse (ListAssociatedApprovalRuleTemplatesForRepositoryResponse'),
+    newListAssociatedApprovalRuleTemplatesForRepositoryResponse,
+
+    -- ** ListBranches (Paginated)
+    ListBranches (ListBranches'),
+    newListBranches,
+    ListBranchesResponse (ListBranchesResponse'),
+    newListBranchesResponse,
+
+    -- ** ListPullRequests (Paginated)
+    ListPullRequests (ListPullRequests'),
+    newListPullRequests,
+    ListPullRequestsResponse (ListPullRequestsResponse'),
+    newListPullRequestsResponse,
+
+    -- ** ListRepositories (Paginated)
+    ListRepositories (ListRepositories'),
+    newListRepositories,
+    ListRepositoriesResponse (ListRepositoriesResponse'),
+    newListRepositoriesResponse,
+
+    -- ** ListRepositoriesForApprovalRuleTemplate
+    ListRepositoriesForApprovalRuleTemplate (ListRepositoriesForApprovalRuleTemplate'),
+    newListRepositoriesForApprovalRuleTemplate,
+    ListRepositoriesForApprovalRuleTemplateResponse (ListRepositoriesForApprovalRuleTemplateResponse'),
+    newListRepositoriesForApprovalRuleTemplateResponse,
+
+    -- ** ListTagsForResource
+    ListTagsForResource (ListTagsForResource'),
+    newListTagsForResource,
+    ListTagsForResourceResponse (ListTagsForResourceResponse'),
+    newListTagsForResourceResponse,
+
+    -- ** MergeBranchesByFastForward
+    MergeBranchesByFastForward (MergeBranchesByFastForward'),
+    newMergeBranchesByFastForward,
+    MergeBranchesByFastForwardResponse (MergeBranchesByFastForwardResponse'),
+    newMergeBranchesByFastForwardResponse,
+
+    -- ** MergeBranchesBySquash
+    MergeBranchesBySquash (MergeBranchesBySquash'),
+    newMergeBranchesBySquash,
+    MergeBranchesBySquashResponse (MergeBranchesBySquashResponse'),
+    newMergeBranchesBySquashResponse,
+
+    -- ** MergeBranchesByThreeWay
+    MergeBranchesByThreeWay (MergeBranchesByThreeWay'),
+    newMergeBranchesByThreeWay,
+    MergeBranchesByThreeWayResponse (MergeBranchesByThreeWayResponse'),
+    newMergeBranchesByThreeWayResponse,
+
+    -- ** MergePullRequestByFastForward
+    MergePullRequestByFastForward (MergePullRequestByFastForward'),
+    newMergePullRequestByFastForward,
+    MergePullRequestByFastForwardResponse (MergePullRequestByFastForwardResponse'),
+    newMergePullRequestByFastForwardResponse,
+
+    -- ** MergePullRequestBySquash
+    MergePullRequestBySquash (MergePullRequestBySquash'),
+    newMergePullRequestBySquash,
+    MergePullRequestBySquashResponse (MergePullRequestBySquashResponse'),
+    newMergePullRequestBySquashResponse,
+
+    -- ** MergePullRequestByThreeWay
+    MergePullRequestByThreeWay (MergePullRequestByThreeWay'),
+    newMergePullRequestByThreeWay,
+    MergePullRequestByThreeWayResponse (MergePullRequestByThreeWayResponse'),
+    newMergePullRequestByThreeWayResponse,
+
+    -- ** OverridePullRequestApprovalRules
+    OverridePullRequestApprovalRules (OverridePullRequestApprovalRules'),
+    newOverridePullRequestApprovalRules,
+    OverridePullRequestApprovalRulesResponse (OverridePullRequestApprovalRulesResponse'),
+    newOverridePullRequestApprovalRulesResponse,
+
+    -- ** PostCommentForComparedCommit
+    PostCommentForComparedCommit (PostCommentForComparedCommit'),
+    newPostCommentForComparedCommit,
+    PostCommentForComparedCommitResponse (PostCommentForComparedCommitResponse'),
+    newPostCommentForComparedCommitResponse,
+
+    -- ** PostCommentForPullRequest
+    PostCommentForPullRequest (PostCommentForPullRequest'),
+    newPostCommentForPullRequest,
+    PostCommentForPullRequestResponse (PostCommentForPullRequestResponse'),
+    newPostCommentForPullRequestResponse,
+
+    -- ** PostCommentReply
+    PostCommentReply (PostCommentReply'),
+    newPostCommentReply,
+    PostCommentReplyResponse (PostCommentReplyResponse'),
+    newPostCommentReplyResponse,
+
+    -- ** PutCommentReaction
+    PutCommentReaction (PutCommentReaction'),
+    newPutCommentReaction,
+    PutCommentReactionResponse (PutCommentReactionResponse'),
+    newPutCommentReactionResponse,
+
+    -- ** PutFile
+    PutFile (PutFile'),
+    newPutFile,
+    PutFileResponse (PutFileResponse'),
+    newPutFileResponse,
+
+    -- ** PutRepositoryTriggers
+    PutRepositoryTriggers (PutRepositoryTriggers'),
+    newPutRepositoryTriggers,
+    PutRepositoryTriggersResponse (PutRepositoryTriggersResponse'),
+    newPutRepositoryTriggersResponse,
+
+    -- ** TagResource
+    TagResource (TagResource'),
+    newTagResource,
+    TagResourceResponse (TagResourceResponse'),
+    newTagResourceResponse,
+
+    -- ** TestRepositoryTriggers
+    TestRepositoryTriggers (TestRepositoryTriggers'),
+    newTestRepositoryTriggers,
+    TestRepositoryTriggersResponse (TestRepositoryTriggersResponse'),
+    newTestRepositoryTriggersResponse,
+
+    -- ** UntagResource
+    UntagResource (UntagResource'),
+    newUntagResource,
+    UntagResourceResponse (UntagResourceResponse'),
+    newUntagResourceResponse,
+
+    -- ** UpdateApprovalRuleTemplateContent
+    UpdateApprovalRuleTemplateContent (UpdateApprovalRuleTemplateContent'),
+    newUpdateApprovalRuleTemplateContent,
+    UpdateApprovalRuleTemplateContentResponse (UpdateApprovalRuleTemplateContentResponse'),
+    newUpdateApprovalRuleTemplateContentResponse,
+
+    -- ** UpdateApprovalRuleTemplateDescription
+    UpdateApprovalRuleTemplateDescription (UpdateApprovalRuleTemplateDescription'),
+    newUpdateApprovalRuleTemplateDescription,
+    UpdateApprovalRuleTemplateDescriptionResponse (UpdateApprovalRuleTemplateDescriptionResponse'),
+    newUpdateApprovalRuleTemplateDescriptionResponse,
+
+    -- ** UpdateApprovalRuleTemplateName
+    UpdateApprovalRuleTemplateName (UpdateApprovalRuleTemplateName'),
+    newUpdateApprovalRuleTemplateName,
+    UpdateApprovalRuleTemplateNameResponse (UpdateApprovalRuleTemplateNameResponse'),
+    newUpdateApprovalRuleTemplateNameResponse,
+
+    -- ** UpdateComment
+    UpdateComment (UpdateComment'),
+    newUpdateComment,
+    UpdateCommentResponse (UpdateCommentResponse'),
+    newUpdateCommentResponse,
+
+    -- ** UpdateDefaultBranch
+    UpdateDefaultBranch (UpdateDefaultBranch'),
+    newUpdateDefaultBranch,
+    UpdateDefaultBranchResponse (UpdateDefaultBranchResponse'),
+    newUpdateDefaultBranchResponse,
+
+    -- ** UpdatePullRequestApprovalRuleContent
+    UpdatePullRequestApprovalRuleContent (UpdatePullRequestApprovalRuleContent'),
+    newUpdatePullRequestApprovalRuleContent,
+    UpdatePullRequestApprovalRuleContentResponse (UpdatePullRequestApprovalRuleContentResponse'),
+    newUpdatePullRequestApprovalRuleContentResponse,
+
+    -- ** UpdatePullRequestApprovalState
+    UpdatePullRequestApprovalState (UpdatePullRequestApprovalState'),
+    newUpdatePullRequestApprovalState,
+    UpdatePullRequestApprovalStateResponse (UpdatePullRequestApprovalStateResponse'),
+    newUpdatePullRequestApprovalStateResponse,
+
+    -- ** UpdatePullRequestDescription
+    UpdatePullRequestDescription (UpdatePullRequestDescription'),
+    newUpdatePullRequestDescription,
+    UpdatePullRequestDescriptionResponse (UpdatePullRequestDescriptionResponse'),
+    newUpdatePullRequestDescriptionResponse,
+
+    -- ** UpdatePullRequestStatus
+    UpdatePullRequestStatus (UpdatePullRequestStatus'),
+    newUpdatePullRequestStatus,
+    UpdatePullRequestStatusResponse (UpdatePullRequestStatusResponse'),
+    newUpdatePullRequestStatusResponse,
+
+    -- ** UpdatePullRequestTitle
+    UpdatePullRequestTitle (UpdatePullRequestTitle'),
+    newUpdatePullRequestTitle,
+    UpdatePullRequestTitleResponse (UpdatePullRequestTitleResponse'),
+    newUpdatePullRequestTitleResponse,
+
+    -- ** UpdateRepositoryDescription
+    UpdateRepositoryDescription (UpdateRepositoryDescription'),
+    newUpdateRepositoryDescription,
+    UpdateRepositoryDescriptionResponse (UpdateRepositoryDescriptionResponse'),
+    newUpdateRepositoryDescriptionResponse,
+
+    -- ** UpdateRepositoryName
+    UpdateRepositoryName (UpdateRepositoryName'),
+    newUpdateRepositoryName,
+    UpdateRepositoryNameResponse (UpdateRepositoryNameResponse'),
+    newUpdateRepositoryNameResponse,
+
+    -- * Types
+
+    -- ** ApprovalState
+    ApprovalState (..),
+
+    -- ** ChangeTypeEnum
+    ChangeTypeEnum (..),
+
+    -- ** ConflictDetailLevelTypeEnum
+    ConflictDetailLevelTypeEnum (..),
+
+    -- ** ConflictResolutionStrategyTypeEnum
+    ConflictResolutionStrategyTypeEnum (..),
+
+    -- ** FileModeTypeEnum
+    FileModeTypeEnum (..),
+
+    -- ** MergeOptionTypeEnum
+    MergeOptionTypeEnum (..),
+
+    -- ** ObjectTypeEnum
+    ObjectTypeEnum (..),
+
+    -- ** OrderEnum
+    OrderEnum (..),
+
+    -- ** OverrideStatus
+    OverrideStatus (..),
+
+    -- ** PullRequestEventType
+    PullRequestEventType (..),
+
+    -- ** PullRequestStatusEnum
+    PullRequestStatusEnum (..),
+
+    -- ** RelativeFileVersionEnum
+    RelativeFileVersionEnum (..),
+
+    -- ** ReplacementTypeEnum
+    ReplacementTypeEnum (..),
+
+    -- ** RepositoryTriggerEventEnum
+    RepositoryTriggerEventEnum (..),
+
+    -- ** SortByEnum
+    SortByEnum (..),
+
+    -- ** Approval
+    Approval (Approval'),
+    newApproval,
+
+    -- ** ApprovalRule
+    ApprovalRule (ApprovalRule'),
+    newApprovalRule,
+
+    -- ** ApprovalRuleEventMetadata
+    ApprovalRuleEventMetadata (ApprovalRuleEventMetadata'),
+    newApprovalRuleEventMetadata,
+
+    -- ** ApprovalRuleOverriddenEventMetadata
+    ApprovalRuleOverriddenEventMetadata (ApprovalRuleOverriddenEventMetadata'),
+    newApprovalRuleOverriddenEventMetadata,
+
+    -- ** ApprovalRuleTemplate
+    ApprovalRuleTemplate (ApprovalRuleTemplate'),
+    newApprovalRuleTemplate,
+
+    -- ** ApprovalStateChangedEventMetadata
+    ApprovalStateChangedEventMetadata (ApprovalStateChangedEventMetadata'),
+    newApprovalStateChangedEventMetadata,
+
+    -- ** BatchAssociateApprovalRuleTemplateWithRepositoriesError
+    BatchAssociateApprovalRuleTemplateWithRepositoriesError (BatchAssociateApprovalRuleTemplateWithRepositoriesError'),
+    newBatchAssociateApprovalRuleTemplateWithRepositoriesError,
+
+    -- ** BatchDescribeMergeConflictsError
+    BatchDescribeMergeConflictsError (BatchDescribeMergeConflictsError'),
+    newBatchDescribeMergeConflictsError,
+
+    -- ** BatchDisassociateApprovalRuleTemplateFromRepositoriesError
+    BatchDisassociateApprovalRuleTemplateFromRepositoriesError (BatchDisassociateApprovalRuleTemplateFromRepositoriesError'),
+    newBatchDisassociateApprovalRuleTemplateFromRepositoriesError,
+
+    -- ** BatchGetCommitsError
+    BatchGetCommitsError (BatchGetCommitsError'),
+    newBatchGetCommitsError,
+
+    -- ** BlobMetadata
+    BlobMetadata (BlobMetadata'),
+    newBlobMetadata,
+
+    -- ** BranchInfo
+    BranchInfo (BranchInfo'),
+    newBranchInfo,
+
+    -- ** Comment
+    Comment (Comment'),
+    newComment,
+
+    -- ** CommentsForComparedCommit
+    CommentsForComparedCommit (CommentsForComparedCommit'),
+    newCommentsForComparedCommit,
+
+    -- ** CommentsForPullRequest
+    CommentsForPullRequest (CommentsForPullRequest'),
+    newCommentsForPullRequest,
+
+    -- ** Commit
+    Commit (Commit'),
+    newCommit,
+
+    -- ** Conflict
+    Conflict (Conflict'),
+    newConflict,
+
+    -- ** ConflictMetadata
+    ConflictMetadata (ConflictMetadata'),
+    newConflictMetadata,
+
+    -- ** ConflictResolution
+    ConflictResolution (ConflictResolution'),
+    newConflictResolution,
+
+    -- ** DeleteFileEntry
+    DeleteFileEntry (DeleteFileEntry'),
+    newDeleteFileEntry,
+
+    -- ** Difference
+    Difference (Difference'),
+    newDifference,
+
+    -- ** Evaluation
+    Evaluation (Evaluation'),
+    newEvaluation,
+
+    -- ** File
+    File (File'),
+    newFile,
+
+    -- ** FileMetadata
+    FileMetadata (FileMetadata'),
+    newFileMetadata,
+
+    -- ** FileModes
+    FileModes (FileModes'),
+    newFileModes,
+
+    -- ** FileSizes
+    FileSizes (FileSizes'),
+    newFileSizes,
+
+    -- ** Folder
+    Folder (Folder'),
+    newFolder,
+
+    -- ** IsBinaryFile
+    IsBinaryFile (IsBinaryFile'),
+    newIsBinaryFile,
+
+    -- ** Location
+    Location (Location'),
+    newLocation,
+
+    -- ** MergeHunk
+    MergeHunk (MergeHunk'),
+    newMergeHunk,
+
+    -- ** MergeHunkDetail
+    MergeHunkDetail (MergeHunkDetail'),
+    newMergeHunkDetail,
+
+    -- ** MergeMetadata
+    MergeMetadata (MergeMetadata'),
+    newMergeMetadata,
+
+    -- ** MergeOperations
+    MergeOperations (MergeOperations'),
+    newMergeOperations,
+
+    -- ** ObjectTypes
+    ObjectTypes (ObjectTypes'),
+    newObjectTypes,
+
+    -- ** OriginApprovalRuleTemplate
+    OriginApprovalRuleTemplate (OriginApprovalRuleTemplate'),
+    newOriginApprovalRuleTemplate,
+
+    -- ** PullRequest
+    PullRequest (PullRequest'),
+    newPullRequest,
+
+    -- ** PullRequestCreatedEventMetadata
+    PullRequestCreatedEventMetadata (PullRequestCreatedEventMetadata'),
+    newPullRequestCreatedEventMetadata,
+
+    -- ** PullRequestEvent
+    PullRequestEvent (PullRequestEvent'),
+    newPullRequestEvent,
+
+    -- ** PullRequestMergedStateChangedEventMetadata
+    PullRequestMergedStateChangedEventMetadata (PullRequestMergedStateChangedEventMetadata'),
+    newPullRequestMergedStateChangedEventMetadata,
+
+    -- ** PullRequestSourceReferenceUpdatedEventMetadata
+    PullRequestSourceReferenceUpdatedEventMetadata (PullRequestSourceReferenceUpdatedEventMetadata'),
+    newPullRequestSourceReferenceUpdatedEventMetadata,
+
+    -- ** PullRequestStatusChangedEventMetadata
+    PullRequestStatusChangedEventMetadata (PullRequestStatusChangedEventMetadata'),
+    newPullRequestStatusChangedEventMetadata,
+
+    -- ** PullRequestTarget
+    PullRequestTarget (PullRequestTarget'),
+    newPullRequestTarget,
+
+    -- ** PutFileEntry
+    PutFileEntry (PutFileEntry'),
+    newPutFileEntry,
+
+    -- ** ReactionForComment
+    ReactionForComment (ReactionForComment'),
+    newReactionForComment,
+
+    -- ** ReactionValueFormats
+    ReactionValueFormats (ReactionValueFormats'),
+    newReactionValueFormats,
+
+    -- ** ReplaceContentEntry
+    ReplaceContentEntry (ReplaceContentEntry'),
+    newReplaceContentEntry,
+
+    -- ** RepositoryMetadata
+    RepositoryMetadata (RepositoryMetadata'),
+    newRepositoryMetadata,
+
+    -- ** RepositoryNameIdPair
+    RepositoryNameIdPair (RepositoryNameIdPair'),
+    newRepositoryNameIdPair,
+
+    -- ** RepositoryTrigger
+    RepositoryTrigger (RepositoryTrigger'),
+    newRepositoryTrigger,
+
+    -- ** RepositoryTriggerExecutionFailure
+    RepositoryTriggerExecutionFailure (RepositoryTriggerExecutionFailure'),
+    newRepositoryTriggerExecutionFailure,
+
+    -- ** SetFileModeEntry
+    SetFileModeEntry (SetFileModeEntry'),
+    newSetFileModeEntry,
+
+    -- ** SourceFileSpecifier
+    SourceFileSpecifier (SourceFileSpecifier'),
+    newSourceFileSpecifier,
+
+    -- ** SubModule
+    SubModule (SubModule'),
+    newSubModule,
+
+    -- ** SymbolicLink
+    SymbolicLink (SymbolicLink'),
+    newSymbolicLink,
+
+    -- ** Target
+    Target (Target'),
+    newTarget,
+
+    -- ** UserInfo
+    UserInfo (UserInfo'),
+    newUserInfo,
+  )
+where
+
+import Amazonka.CodeCommit.AssociateApprovalRuleTemplateWithRepository
+import Amazonka.CodeCommit.BatchAssociateApprovalRuleTemplateWithRepositories
+import Amazonka.CodeCommit.BatchDescribeMergeConflicts
+import Amazonka.CodeCommit.BatchDisassociateApprovalRuleTemplateFromRepositories
+import Amazonka.CodeCommit.BatchGetCommits
+import Amazonka.CodeCommit.BatchGetRepositories
+import Amazonka.CodeCommit.CreateApprovalRuleTemplate
+import Amazonka.CodeCommit.CreateBranch
+import Amazonka.CodeCommit.CreateCommit
+import Amazonka.CodeCommit.CreatePullRequest
+import Amazonka.CodeCommit.CreatePullRequestApprovalRule
+import Amazonka.CodeCommit.CreateRepository
+import Amazonka.CodeCommit.CreateUnreferencedMergeCommit
+import Amazonka.CodeCommit.DeleteApprovalRuleTemplate
+import Amazonka.CodeCommit.DeleteBranch
+import Amazonka.CodeCommit.DeleteCommentContent
+import Amazonka.CodeCommit.DeleteFile
+import Amazonka.CodeCommit.DeletePullRequestApprovalRule
+import Amazonka.CodeCommit.DeleteRepository
+import Amazonka.CodeCommit.DescribeMergeConflicts
+import Amazonka.CodeCommit.DescribePullRequestEvents
+import Amazonka.CodeCommit.DisassociateApprovalRuleTemplateFromRepository
+import Amazonka.CodeCommit.EvaluatePullRequestApprovalRules
+import Amazonka.CodeCommit.GetApprovalRuleTemplate
+import Amazonka.CodeCommit.GetBlob
+import Amazonka.CodeCommit.GetBranch
+import Amazonka.CodeCommit.GetComment
+import Amazonka.CodeCommit.GetCommentReactions
+import Amazonka.CodeCommit.GetCommentsForComparedCommit
+import Amazonka.CodeCommit.GetCommentsForPullRequest
+import Amazonka.CodeCommit.GetCommit
+import Amazonka.CodeCommit.GetDifferences
+import Amazonka.CodeCommit.GetFile
+import Amazonka.CodeCommit.GetFolder
+import Amazonka.CodeCommit.GetMergeCommit
+import Amazonka.CodeCommit.GetMergeConflicts
+import Amazonka.CodeCommit.GetMergeOptions
+import Amazonka.CodeCommit.GetPullRequest
+import Amazonka.CodeCommit.GetPullRequestApprovalStates
+import Amazonka.CodeCommit.GetPullRequestOverrideState
+import Amazonka.CodeCommit.GetRepository
+import Amazonka.CodeCommit.GetRepositoryTriggers
+import Amazonka.CodeCommit.Lens
+import Amazonka.CodeCommit.ListApprovalRuleTemplates
+import Amazonka.CodeCommit.ListAssociatedApprovalRuleTemplatesForRepository
+import Amazonka.CodeCommit.ListBranches
+import Amazonka.CodeCommit.ListPullRequests
+import Amazonka.CodeCommit.ListRepositories
+import Amazonka.CodeCommit.ListRepositoriesForApprovalRuleTemplate
+import Amazonka.CodeCommit.ListTagsForResource
+import Amazonka.CodeCommit.MergeBranchesByFastForward
+import Amazonka.CodeCommit.MergeBranchesBySquash
+import Amazonka.CodeCommit.MergeBranchesByThreeWay
+import Amazonka.CodeCommit.MergePullRequestByFastForward
+import Amazonka.CodeCommit.MergePullRequestBySquash
+import Amazonka.CodeCommit.MergePullRequestByThreeWay
+import Amazonka.CodeCommit.OverridePullRequestApprovalRules
+import Amazonka.CodeCommit.PostCommentForComparedCommit
+import Amazonka.CodeCommit.PostCommentForPullRequest
+import Amazonka.CodeCommit.PostCommentReply
+import Amazonka.CodeCommit.PutCommentReaction
+import Amazonka.CodeCommit.PutFile
+import Amazonka.CodeCommit.PutRepositoryTriggers
+import Amazonka.CodeCommit.TagResource
+import Amazonka.CodeCommit.TestRepositoryTriggers
+import Amazonka.CodeCommit.Types
+import Amazonka.CodeCommit.UntagResource
+import Amazonka.CodeCommit.UpdateApprovalRuleTemplateContent
+import Amazonka.CodeCommit.UpdateApprovalRuleTemplateDescription
+import Amazonka.CodeCommit.UpdateApprovalRuleTemplateName
+import Amazonka.CodeCommit.UpdateComment
+import Amazonka.CodeCommit.UpdateDefaultBranch
+import Amazonka.CodeCommit.UpdatePullRequestApprovalRuleContent
+import Amazonka.CodeCommit.UpdatePullRequestApprovalState
+import Amazonka.CodeCommit.UpdatePullRequestDescription
+import Amazonka.CodeCommit.UpdatePullRequestStatus
+import Amazonka.CodeCommit.UpdatePullRequestTitle
+import Amazonka.CodeCommit.UpdateRepositoryDescription
+import Amazonka.CodeCommit.UpdateRepositoryName
+import Amazonka.CodeCommit.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 'CodeCommit'.
+
+-- $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/CodeCommit/AssociateApprovalRuleTemplateWithRepository.hs b/gen/Amazonka/CodeCommit/AssociateApprovalRuleTemplateWithRepository.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/AssociateApprovalRuleTemplateWithRepository.hs
@@ -0,0 +1,197 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.AssociateApprovalRuleTemplateWithRepository
+-- 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 association between an approval rule template and a specified
+-- repository. Then, the next time a pull request is created in the
+-- repository where the destination reference (if specified) matches the
+-- destination reference (branch) for the pull request, an approval rule
+-- that matches the template conditions is automatically created for that
+-- pull request. If no destination references are specified in the
+-- template, an approval rule that matches the template contents is created
+-- for all pull requests in that repository.
+module Amazonka.CodeCommit.AssociateApprovalRuleTemplateWithRepository
+  ( -- * Creating a Request
+    AssociateApprovalRuleTemplateWithRepository (..),
+    newAssociateApprovalRuleTemplateWithRepository,
+
+    -- * Request Lenses
+    associateApprovalRuleTemplateWithRepository_approvalRuleTemplateName,
+    associateApprovalRuleTemplateWithRepository_repositoryName,
+
+    -- * Destructuring the Response
+    AssociateApprovalRuleTemplateWithRepositoryResponse (..),
+    newAssociateApprovalRuleTemplateWithRepositoryResponse,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newAssociateApprovalRuleTemplateWithRepository' smart constructor.
+data AssociateApprovalRuleTemplateWithRepository = AssociateApprovalRuleTemplateWithRepository'
+  { -- | The name for the approval rule template.
+    approvalRuleTemplateName :: Prelude.Text,
+    -- | The name of the repository that you want to associate with the template.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssociateApprovalRuleTemplateWithRepository' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleTemplateName', 'associateApprovalRuleTemplateWithRepository_approvalRuleTemplateName' - The name for the approval rule template.
+--
+-- 'repositoryName', 'associateApprovalRuleTemplateWithRepository_repositoryName' - The name of the repository that you want to associate with the template.
+newAssociateApprovalRuleTemplateWithRepository ::
+  -- | 'approvalRuleTemplateName'
+  Prelude.Text ->
+  -- | 'repositoryName'
+  Prelude.Text ->
+  AssociateApprovalRuleTemplateWithRepository
+newAssociateApprovalRuleTemplateWithRepository
+  pApprovalRuleTemplateName_
+  pRepositoryName_ =
+    AssociateApprovalRuleTemplateWithRepository'
+      { approvalRuleTemplateName =
+          pApprovalRuleTemplateName_,
+        repositoryName =
+          pRepositoryName_
+      }
+
+-- | The name for the approval rule template.
+associateApprovalRuleTemplateWithRepository_approvalRuleTemplateName :: Lens.Lens' AssociateApprovalRuleTemplateWithRepository Prelude.Text
+associateApprovalRuleTemplateWithRepository_approvalRuleTemplateName = Lens.lens (\AssociateApprovalRuleTemplateWithRepository' {approvalRuleTemplateName} -> approvalRuleTemplateName) (\s@AssociateApprovalRuleTemplateWithRepository' {} a -> s {approvalRuleTemplateName = a} :: AssociateApprovalRuleTemplateWithRepository)
+
+-- | The name of the repository that you want to associate with the template.
+associateApprovalRuleTemplateWithRepository_repositoryName :: Lens.Lens' AssociateApprovalRuleTemplateWithRepository Prelude.Text
+associateApprovalRuleTemplateWithRepository_repositoryName = Lens.lens (\AssociateApprovalRuleTemplateWithRepository' {repositoryName} -> repositoryName) (\s@AssociateApprovalRuleTemplateWithRepository' {} a -> s {repositoryName = a} :: AssociateApprovalRuleTemplateWithRepository)
+
+instance
+  Core.AWSRequest
+    AssociateApprovalRuleTemplateWithRepository
+  where
+  type
+    AWSResponse
+      AssociateApprovalRuleTemplateWithRepository =
+      AssociateApprovalRuleTemplateWithRepositoryResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveNull
+      AssociateApprovalRuleTemplateWithRepositoryResponse'
+
+instance
+  Prelude.Hashable
+    AssociateApprovalRuleTemplateWithRepository
+  where
+  hashWithSalt
+    _salt
+    AssociateApprovalRuleTemplateWithRepository' {..} =
+      _salt
+        `Prelude.hashWithSalt` approvalRuleTemplateName
+        `Prelude.hashWithSalt` repositoryName
+
+instance
+  Prelude.NFData
+    AssociateApprovalRuleTemplateWithRepository
+  where
+  rnf AssociateApprovalRuleTemplateWithRepository' {..} =
+    Prelude.rnf approvalRuleTemplateName
+      `Prelude.seq` Prelude.rnf repositoryName
+
+instance
+  Data.ToHeaders
+    AssociateApprovalRuleTemplateWithRepository
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.AssociateApprovalRuleTemplateWithRepository" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    AssociateApprovalRuleTemplateWithRepository
+  where
+  toJSON
+    AssociateApprovalRuleTemplateWithRepository' {..} =
+      Data.object
+        ( Prelude.catMaybes
+            [ Prelude.Just
+                ( "approvalRuleTemplateName"
+                    Data..= approvalRuleTemplateName
+                ),
+              Prelude.Just
+                ("repositoryName" Data..= repositoryName)
+            ]
+        )
+
+instance
+  Data.ToPath
+    AssociateApprovalRuleTemplateWithRepository
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    AssociateApprovalRuleTemplateWithRepository
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newAssociateApprovalRuleTemplateWithRepositoryResponse' smart constructor.
+data AssociateApprovalRuleTemplateWithRepositoryResponse = AssociateApprovalRuleTemplateWithRepositoryResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssociateApprovalRuleTemplateWithRepositoryResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newAssociateApprovalRuleTemplateWithRepositoryResponse ::
+  AssociateApprovalRuleTemplateWithRepositoryResponse
+newAssociateApprovalRuleTemplateWithRepositoryResponse =
+  AssociateApprovalRuleTemplateWithRepositoryResponse'
+
+instance
+  Prelude.NFData
+    AssociateApprovalRuleTemplateWithRepositoryResponse
+  where
+  rnf _ = ()
diff --git a/gen/Amazonka/CodeCommit/BatchAssociateApprovalRuleTemplateWithRepositories.hs b/gen/Amazonka/CodeCommit/BatchAssociateApprovalRuleTemplateWithRepositories.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/BatchAssociateApprovalRuleTemplateWithRepositories.hs
@@ -0,0 +1,260 @@
+{-# 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.CodeCommit.BatchAssociateApprovalRuleTemplateWithRepositories
+-- 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 association between an approval rule template and one or more
+-- specified repositories.
+module Amazonka.CodeCommit.BatchAssociateApprovalRuleTemplateWithRepositories
+  ( -- * Creating a Request
+    BatchAssociateApprovalRuleTemplateWithRepositories (..),
+    newBatchAssociateApprovalRuleTemplateWithRepositories,
+
+    -- * Request Lenses
+    batchAssociateApprovalRuleTemplateWithRepositories_approvalRuleTemplateName,
+    batchAssociateApprovalRuleTemplateWithRepositories_repositoryNames,
+
+    -- * Destructuring the Response
+    BatchAssociateApprovalRuleTemplateWithRepositoriesResponse (..),
+    newBatchAssociateApprovalRuleTemplateWithRepositoriesResponse,
+
+    -- * Response Lenses
+    batchAssociateApprovalRuleTemplateWithRepositoriesResponse_httpStatus,
+    batchAssociateApprovalRuleTemplateWithRepositoriesResponse_associatedRepositoryNames,
+    batchAssociateApprovalRuleTemplateWithRepositoriesResponse_errors,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newBatchAssociateApprovalRuleTemplateWithRepositories' smart constructor.
+data BatchAssociateApprovalRuleTemplateWithRepositories = BatchAssociateApprovalRuleTemplateWithRepositories'
+  { -- | The name of the template you want to associate with one or more
+    -- repositories.
+    approvalRuleTemplateName :: Prelude.Text,
+    -- | The names of the repositories you want to associate with the template.
+    --
+    -- The length constraint limit is for each string in the array. The array
+    -- itself can be empty.
+    repositoryNames :: [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchAssociateApprovalRuleTemplateWithRepositories' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleTemplateName', 'batchAssociateApprovalRuleTemplateWithRepositories_approvalRuleTemplateName' - The name of the template you want to associate with one or more
+-- repositories.
+--
+-- 'repositoryNames', 'batchAssociateApprovalRuleTemplateWithRepositories_repositoryNames' - The names of the repositories you want to associate with the template.
+--
+-- The length constraint limit is for each string in the array. The array
+-- itself can be empty.
+newBatchAssociateApprovalRuleTemplateWithRepositories ::
+  -- | 'approvalRuleTemplateName'
+  Prelude.Text ->
+  BatchAssociateApprovalRuleTemplateWithRepositories
+newBatchAssociateApprovalRuleTemplateWithRepositories
+  pApprovalRuleTemplateName_ =
+    BatchAssociateApprovalRuleTemplateWithRepositories'
+      { approvalRuleTemplateName =
+          pApprovalRuleTemplateName_,
+        repositoryNames =
+          Prelude.mempty
+      }
+
+-- | The name of the template you want to associate with one or more
+-- repositories.
+batchAssociateApprovalRuleTemplateWithRepositories_approvalRuleTemplateName :: Lens.Lens' BatchAssociateApprovalRuleTemplateWithRepositories Prelude.Text
+batchAssociateApprovalRuleTemplateWithRepositories_approvalRuleTemplateName = Lens.lens (\BatchAssociateApprovalRuleTemplateWithRepositories' {approvalRuleTemplateName} -> approvalRuleTemplateName) (\s@BatchAssociateApprovalRuleTemplateWithRepositories' {} a -> s {approvalRuleTemplateName = a} :: BatchAssociateApprovalRuleTemplateWithRepositories)
+
+-- | The names of the repositories you want to associate with the template.
+--
+-- The length constraint limit is for each string in the array. The array
+-- itself can be empty.
+batchAssociateApprovalRuleTemplateWithRepositories_repositoryNames :: Lens.Lens' BatchAssociateApprovalRuleTemplateWithRepositories [Prelude.Text]
+batchAssociateApprovalRuleTemplateWithRepositories_repositoryNames = Lens.lens (\BatchAssociateApprovalRuleTemplateWithRepositories' {repositoryNames} -> repositoryNames) (\s@BatchAssociateApprovalRuleTemplateWithRepositories' {} a -> s {repositoryNames = a} :: BatchAssociateApprovalRuleTemplateWithRepositories) Prelude.. Lens.coerced
+
+instance
+  Core.AWSRequest
+    BatchAssociateApprovalRuleTemplateWithRepositories
+  where
+  type
+    AWSResponse
+      BatchAssociateApprovalRuleTemplateWithRepositories =
+      BatchAssociateApprovalRuleTemplateWithRepositoriesResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          BatchAssociateApprovalRuleTemplateWithRepositoriesResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> ( x
+                            Data..?> "associatedRepositoryNames"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "errors" Core..!@ Prelude.mempty)
+      )
+
+instance
+  Prelude.Hashable
+    BatchAssociateApprovalRuleTemplateWithRepositories
+  where
+  hashWithSalt
+    _salt
+    BatchAssociateApprovalRuleTemplateWithRepositories' {..} =
+      _salt
+        `Prelude.hashWithSalt` approvalRuleTemplateName
+        `Prelude.hashWithSalt` repositoryNames
+
+instance
+  Prelude.NFData
+    BatchAssociateApprovalRuleTemplateWithRepositories
+  where
+  rnf
+    BatchAssociateApprovalRuleTemplateWithRepositories' {..} =
+      Prelude.rnf approvalRuleTemplateName
+        `Prelude.seq` Prelude.rnf repositoryNames
+
+instance
+  Data.ToHeaders
+    BatchAssociateApprovalRuleTemplateWithRepositories
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.BatchAssociateApprovalRuleTemplateWithRepositories" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    BatchAssociateApprovalRuleTemplateWithRepositories
+  where
+  toJSON
+    BatchAssociateApprovalRuleTemplateWithRepositories' {..} =
+      Data.object
+        ( Prelude.catMaybes
+            [ Prelude.Just
+                ( "approvalRuleTemplateName"
+                    Data..= approvalRuleTemplateName
+                ),
+              Prelude.Just
+                ("repositoryNames" Data..= repositoryNames)
+            ]
+        )
+
+instance
+  Data.ToPath
+    BatchAssociateApprovalRuleTemplateWithRepositories
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    BatchAssociateApprovalRuleTemplateWithRepositories
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newBatchAssociateApprovalRuleTemplateWithRepositoriesResponse' smart constructor.
+data BatchAssociateApprovalRuleTemplateWithRepositoriesResponse = BatchAssociateApprovalRuleTemplateWithRepositoriesResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | A list of names of the repositories that have been associated with the
+    -- template.
+    associatedRepositoryNames :: [Prelude.Text],
+    -- | A list of any errors that might have occurred while attempting to create
+    -- the association between the template and the repositories.
+    errors :: [BatchAssociateApprovalRuleTemplateWithRepositoriesError]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchAssociateApprovalRuleTemplateWithRepositoriesResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'batchAssociateApprovalRuleTemplateWithRepositoriesResponse_httpStatus' - The response's http status code.
+--
+-- 'associatedRepositoryNames', 'batchAssociateApprovalRuleTemplateWithRepositoriesResponse_associatedRepositoryNames' - A list of names of the repositories that have been associated with the
+-- template.
+--
+-- 'errors', 'batchAssociateApprovalRuleTemplateWithRepositoriesResponse_errors' - A list of any errors that might have occurred while attempting to create
+-- the association between the template and the repositories.
+newBatchAssociateApprovalRuleTemplateWithRepositoriesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  BatchAssociateApprovalRuleTemplateWithRepositoriesResponse
+newBatchAssociateApprovalRuleTemplateWithRepositoriesResponse
+  pHttpStatus_ =
+    BatchAssociateApprovalRuleTemplateWithRepositoriesResponse'
+      { httpStatus =
+          pHttpStatus_,
+        associatedRepositoryNames =
+          Prelude.mempty,
+        errors =
+          Prelude.mempty
+      }
+
+-- | The response's http status code.
+batchAssociateApprovalRuleTemplateWithRepositoriesResponse_httpStatus :: Lens.Lens' BatchAssociateApprovalRuleTemplateWithRepositoriesResponse Prelude.Int
+batchAssociateApprovalRuleTemplateWithRepositoriesResponse_httpStatus = Lens.lens (\BatchAssociateApprovalRuleTemplateWithRepositoriesResponse' {httpStatus} -> httpStatus) (\s@BatchAssociateApprovalRuleTemplateWithRepositoriesResponse' {} a -> s {httpStatus = a} :: BatchAssociateApprovalRuleTemplateWithRepositoriesResponse)
+
+-- | A list of names of the repositories that have been associated with the
+-- template.
+batchAssociateApprovalRuleTemplateWithRepositoriesResponse_associatedRepositoryNames :: Lens.Lens' BatchAssociateApprovalRuleTemplateWithRepositoriesResponse [Prelude.Text]
+batchAssociateApprovalRuleTemplateWithRepositoriesResponse_associatedRepositoryNames = Lens.lens (\BatchAssociateApprovalRuleTemplateWithRepositoriesResponse' {associatedRepositoryNames} -> associatedRepositoryNames) (\s@BatchAssociateApprovalRuleTemplateWithRepositoriesResponse' {} a -> s {associatedRepositoryNames = a} :: BatchAssociateApprovalRuleTemplateWithRepositoriesResponse) Prelude.. Lens.coerced
+
+-- | A list of any errors that might have occurred while attempting to create
+-- the association between the template and the repositories.
+batchAssociateApprovalRuleTemplateWithRepositoriesResponse_errors :: Lens.Lens' BatchAssociateApprovalRuleTemplateWithRepositoriesResponse [BatchAssociateApprovalRuleTemplateWithRepositoriesError]
+batchAssociateApprovalRuleTemplateWithRepositoriesResponse_errors = Lens.lens (\BatchAssociateApprovalRuleTemplateWithRepositoriesResponse' {errors} -> errors) (\s@BatchAssociateApprovalRuleTemplateWithRepositoriesResponse' {} a -> s {errors = a} :: BatchAssociateApprovalRuleTemplateWithRepositoriesResponse) Prelude.. Lens.coerced
+
+instance
+  Prelude.NFData
+    BatchAssociateApprovalRuleTemplateWithRepositoriesResponse
+  where
+  rnf
+    BatchAssociateApprovalRuleTemplateWithRepositoriesResponse' {..} =
+      Prelude.rnf httpStatus
+        `Prelude.seq` Prelude.rnf associatedRepositoryNames
+        `Prelude.seq` Prelude.rnf errors
diff --git a/gen/Amazonka/CodeCommit/BatchDescribeMergeConflicts.hs b/gen/Amazonka/CodeCommit/BatchDescribeMergeConflicts.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/BatchDescribeMergeConflicts.hs
@@ -0,0 +1,437 @@
+{-# 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.CodeCommit.BatchDescribeMergeConflicts
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about one or more merge conflicts in the attempted
+-- merge of two commit specifiers using the squash or three-way merge
+-- strategy.
+module Amazonka.CodeCommit.BatchDescribeMergeConflicts
+  ( -- * Creating a Request
+    BatchDescribeMergeConflicts (..),
+    newBatchDescribeMergeConflicts,
+
+    -- * Request Lenses
+    batchDescribeMergeConflicts_conflictDetailLevel,
+    batchDescribeMergeConflicts_conflictResolutionStrategy,
+    batchDescribeMergeConflicts_filePaths,
+    batchDescribeMergeConflicts_maxConflictFiles,
+    batchDescribeMergeConflicts_maxMergeHunks,
+    batchDescribeMergeConflicts_nextToken,
+    batchDescribeMergeConflicts_repositoryName,
+    batchDescribeMergeConflicts_destinationCommitSpecifier,
+    batchDescribeMergeConflicts_sourceCommitSpecifier,
+    batchDescribeMergeConflicts_mergeOption,
+
+    -- * Destructuring the Response
+    BatchDescribeMergeConflictsResponse (..),
+    newBatchDescribeMergeConflictsResponse,
+
+    -- * Response Lenses
+    batchDescribeMergeConflictsResponse_baseCommitId,
+    batchDescribeMergeConflictsResponse_errors,
+    batchDescribeMergeConflictsResponse_nextToken,
+    batchDescribeMergeConflictsResponse_httpStatus,
+    batchDescribeMergeConflictsResponse_conflicts,
+    batchDescribeMergeConflictsResponse_destinationCommitId,
+    batchDescribeMergeConflictsResponse_sourceCommitId,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newBatchDescribeMergeConflicts' smart constructor.
+data BatchDescribeMergeConflicts = BatchDescribeMergeConflicts'
+  { -- | The level of conflict detail to use. If unspecified, the default
+    -- FILE_LEVEL is used, which returns a not-mergeable result if the same
+    -- file has differences in both branches. If LINE_LEVEL is specified, a
+    -- conflict is considered not mergeable if the same file in both branches
+    -- has differences on the same line.
+    conflictDetailLevel :: Prelude.Maybe ConflictDetailLevelTypeEnum,
+    -- | Specifies which branch to use when resolving conflicts, or whether to
+    -- attempt automatically merging two versions of a file. The default is
+    -- NONE, which requires any conflicts to be resolved manually before the
+    -- merge operation is successful.
+    conflictResolutionStrategy :: Prelude.Maybe ConflictResolutionStrategyTypeEnum,
+    -- | The path of the target files used to describe the conflicts. If not
+    -- specified, the default is all conflict files.
+    filePaths :: Prelude.Maybe [Prelude.Text],
+    -- | The maximum number of files to include in the output.
+    maxConflictFiles :: Prelude.Maybe Prelude.Int,
+    -- | The maximum number of merge hunks to include in the output.
+    maxMergeHunks :: Prelude.Maybe Prelude.Int,
+    -- | An enumeration token that, when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository that contains the merge conflicts you want to
+    -- review.
+    repositoryName :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    destinationCommitSpecifier :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    sourceCommitSpecifier :: Prelude.Text,
+    -- | The merge option or strategy you want to use to merge the code.
+    mergeOption :: MergeOptionTypeEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchDescribeMergeConflicts' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'conflictDetailLevel', 'batchDescribeMergeConflicts_conflictDetailLevel' - The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+--
+-- 'conflictResolutionStrategy', 'batchDescribeMergeConflicts_conflictResolutionStrategy' - Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+--
+-- 'filePaths', 'batchDescribeMergeConflicts_filePaths' - The path of the target files used to describe the conflicts. If not
+-- specified, the default is all conflict files.
+--
+-- 'maxConflictFiles', 'batchDescribeMergeConflicts_maxConflictFiles' - The maximum number of files to include in the output.
+--
+-- 'maxMergeHunks', 'batchDescribeMergeConflicts_maxMergeHunks' - The maximum number of merge hunks to include in the output.
+--
+-- 'nextToken', 'batchDescribeMergeConflicts_nextToken' - An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+--
+-- 'repositoryName', 'batchDescribeMergeConflicts_repositoryName' - The name of the repository that contains the merge conflicts you want to
+-- review.
+--
+-- 'destinationCommitSpecifier', 'batchDescribeMergeConflicts_destinationCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'sourceCommitSpecifier', 'batchDescribeMergeConflicts_sourceCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'mergeOption', 'batchDescribeMergeConflicts_mergeOption' - The merge option or strategy you want to use to merge the code.
+newBatchDescribeMergeConflicts ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'destinationCommitSpecifier'
+  Prelude.Text ->
+  -- | 'sourceCommitSpecifier'
+  Prelude.Text ->
+  -- | 'mergeOption'
+  MergeOptionTypeEnum ->
+  BatchDescribeMergeConflicts
+newBatchDescribeMergeConflicts
+  pRepositoryName_
+  pDestinationCommitSpecifier_
+  pSourceCommitSpecifier_
+  pMergeOption_ =
+    BatchDescribeMergeConflicts'
+      { conflictDetailLevel =
+          Prelude.Nothing,
+        conflictResolutionStrategy = Prelude.Nothing,
+        filePaths = Prelude.Nothing,
+        maxConflictFiles = Prelude.Nothing,
+        maxMergeHunks = Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        destinationCommitSpecifier =
+          pDestinationCommitSpecifier_,
+        sourceCommitSpecifier =
+          pSourceCommitSpecifier_,
+        mergeOption = pMergeOption_
+      }
+
+-- | The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+batchDescribeMergeConflicts_conflictDetailLevel :: Lens.Lens' BatchDescribeMergeConflicts (Prelude.Maybe ConflictDetailLevelTypeEnum)
+batchDescribeMergeConflicts_conflictDetailLevel = Lens.lens (\BatchDescribeMergeConflicts' {conflictDetailLevel} -> conflictDetailLevel) (\s@BatchDescribeMergeConflicts' {} a -> s {conflictDetailLevel = a} :: BatchDescribeMergeConflicts)
+
+-- | Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+batchDescribeMergeConflicts_conflictResolutionStrategy :: Lens.Lens' BatchDescribeMergeConflicts (Prelude.Maybe ConflictResolutionStrategyTypeEnum)
+batchDescribeMergeConflicts_conflictResolutionStrategy = Lens.lens (\BatchDescribeMergeConflicts' {conflictResolutionStrategy} -> conflictResolutionStrategy) (\s@BatchDescribeMergeConflicts' {} a -> s {conflictResolutionStrategy = a} :: BatchDescribeMergeConflicts)
+
+-- | The path of the target files used to describe the conflicts. If not
+-- specified, the default is all conflict files.
+batchDescribeMergeConflicts_filePaths :: Lens.Lens' BatchDescribeMergeConflicts (Prelude.Maybe [Prelude.Text])
+batchDescribeMergeConflicts_filePaths = Lens.lens (\BatchDescribeMergeConflicts' {filePaths} -> filePaths) (\s@BatchDescribeMergeConflicts' {} a -> s {filePaths = a} :: BatchDescribeMergeConflicts) Prelude.. Lens.mapping Lens.coerced
+
+-- | The maximum number of files to include in the output.
+batchDescribeMergeConflicts_maxConflictFiles :: Lens.Lens' BatchDescribeMergeConflicts (Prelude.Maybe Prelude.Int)
+batchDescribeMergeConflicts_maxConflictFiles = Lens.lens (\BatchDescribeMergeConflicts' {maxConflictFiles} -> maxConflictFiles) (\s@BatchDescribeMergeConflicts' {} a -> s {maxConflictFiles = a} :: BatchDescribeMergeConflicts)
+
+-- | The maximum number of merge hunks to include in the output.
+batchDescribeMergeConflicts_maxMergeHunks :: Lens.Lens' BatchDescribeMergeConflicts (Prelude.Maybe Prelude.Int)
+batchDescribeMergeConflicts_maxMergeHunks = Lens.lens (\BatchDescribeMergeConflicts' {maxMergeHunks} -> maxMergeHunks) (\s@BatchDescribeMergeConflicts' {} a -> s {maxMergeHunks = a} :: BatchDescribeMergeConflicts)
+
+-- | An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+batchDescribeMergeConflicts_nextToken :: Lens.Lens' BatchDescribeMergeConflicts (Prelude.Maybe Prelude.Text)
+batchDescribeMergeConflicts_nextToken = Lens.lens (\BatchDescribeMergeConflicts' {nextToken} -> nextToken) (\s@BatchDescribeMergeConflicts' {} a -> s {nextToken = a} :: BatchDescribeMergeConflicts)
+
+-- | The name of the repository that contains the merge conflicts you want to
+-- review.
+batchDescribeMergeConflicts_repositoryName :: Lens.Lens' BatchDescribeMergeConflicts Prelude.Text
+batchDescribeMergeConflicts_repositoryName = Lens.lens (\BatchDescribeMergeConflicts' {repositoryName} -> repositoryName) (\s@BatchDescribeMergeConflicts' {} a -> s {repositoryName = a} :: BatchDescribeMergeConflicts)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+batchDescribeMergeConflicts_destinationCommitSpecifier :: Lens.Lens' BatchDescribeMergeConflicts Prelude.Text
+batchDescribeMergeConflicts_destinationCommitSpecifier = Lens.lens (\BatchDescribeMergeConflicts' {destinationCommitSpecifier} -> destinationCommitSpecifier) (\s@BatchDescribeMergeConflicts' {} a -> s {destinationCommitSpecifier = a} :: BatchDescribeMergeConflicts)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+batchDescribeMergeConflicts_sourceCommitSpecifier :: Lens.Lens' BatchDescribeMergeConflicts Prelude.Text
+batchDescribeMergeConflicts_sourceCommitSpecifier = Lens.lens (\BatchDescribeMergeConflicts' {sourceCommitSpecifier} -> sourceCommitSpecifier) (\s@BatchDescribeMergeConflicts' {} a -> s {sourceCommitSpecifier = a} :: BatchDescribeMergeConflicts)
+
+-- | The merge option or strategy you want to use to merge the code.
+batchDescribeMergeConflicts_mergeOption :: Lens.Lens' BatchDescribeMergeConflicts MergeOptionTypeEnum
+batchDescribeMergeConflicts_mergeOption = Lens.lens (\BatchDescribeMergeConflicts' {mergeOption} -> mergeOption) (\s@BatchDescribeMergeConflicts' {} a -> s {mergeOption = a} :: BatchDescribeMergeConflicts)
+
+instance Core.AWSRequest BatchDescribeMergeConflicts where
+  type
+    AWSResponse BatchDescribeMergeConflicts =
+      BatchDescribeMergeConflictsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          BatchDescribeMergeConflictsResponse'
+            Prelude.<$> (x Data..?> "baseCommitId")
+            Prelude.<*> (x Data..?> "errors" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..?> "conflicts" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..:> "destinationCommitId")
+            Prelude.<*> (x Data..:> "sourceCommitId")
+      )
+
+instance Prelude.Hashable BatchDescribeMergeConflicts where
+  hashWithSalt _salt BatchDescribeMergeConflicts' {..} =
+    _salt
+      `Prelude.hashWithSalt` conflictDetailLevel
+      `Prelude.hashWithSalt` conflictResolutionStrategy
+      `Prelude.hashWithSalt` filePaths
+      `Prelude.hashWithSalt` maxConflictFiles
+      `Prelude.hashWithSalt` maxMergeHunks
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` destinationCommitSpecifier
+      `Prelude.hashWithSalt` sourceCommitSpecifier
+      `Prelude.hashWithSalt` mergeOption
+
+instance Prelude.NFData BatchDescribeMergeConflicts where
+  rnf BatchDescribeMergeConflicts' {..} =
+    Prelude.rnf conflictDetailLevel
+      `Prelude.seq` Prelude.rnf conflictResolutionStrategy
+      `Prelude.seq` Prelude.rnf filePaths
+      `Prelude.seq` Prelude.rnf maxConflictFiles
+      `Prelude.seq` Prelude.rnf maxMergeHunks
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf destinationCommitSpecifier
+      `Prelude.seq` Prelude.rnf sourceCommitSpecifier
+      `Prelude.seq` Prelude.rnf mergeOption
+
+instance Data.ToHeaders BatchDescribeMergeConflicts where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.BatchDescribeMergeConflicts" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON BatchDescribeMergeConflicts where
+  toJSON BatchDescribeMergeConflicts' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("conflictDetailLevel" Data..=)
+              Prelude.<$> conflictDetailLevel,
+            ("conflictResolutionStrategy" Data..=)
+              Prelude.<$> conflictResolutionStrategy,
+            ("filePaths" Data..=) Prelude.<$> filePaths,
+            ("maxConflictFiles" Data..=)
+              Prelude.<$> maxConflictFiles,
+            ("maxMergeHunks" Data..=) Prelude.<$> maxMergeHunks,
+            ("nextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ( "destinationCommitSpecifier"
+                  Data..= destinationCommitSpecifier
+              ),
+            Prelude.Just
+              ( "sourceCommitSpecifier"
+                  Data..= sourceCommitSpecifier
+              ),
+            Prelude.Just ("mergeOption" Data..= mergeOption)
+          ]
+      )
+
+instance Data.ToPath BatchDescribeMergeConflicts where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery BatchDescribeMergeConflicts where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newBatchDescribeMergeConflictsResponse' smart constructor.
+data BatchDescribeMergeConflictsResponse = BatchDescribeMergeConflictsResponse'
+  { -- | The commit ID of the merge base.
+    baseCommitId :: Prelude.Maybe Prelude.Text,
+    -- | A list of any errors returned while describing the merge conflicts for
+    -- each file.
+    errors :: Prelude.Maybe [BatchDescribeMergeConflictsError],
+    -- | An enumeration token that can be used in a request to return the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | A list of conflicts for each file, including the conflict metadata and
+    -- the hunks of the differences between the files.
+    conflicts :: [Conflict],
+    -- | The commit ID of the destination commit specifier that was used in the
+    -- merge evaluation.
+    destinationCommitId :: Prelude.Text,
+    -- | The commit ID of the source commit specifier that was used in the merge
+    -- evaluation.
+    sourceCommitId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchDescribeMergeConflictsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'baseCommitId', 'batchDescribeMergeConflictsResponse_baseCommitId' - The commit ID of the merge base.
+--
+-- 'errors', 'batchDescribeMergeConflictsResponse_errors' - A list of any errors returned while describing the merge conflicts for
+-- each file.
+--
+-- 'nextToken', 'batchDescribeMergeConflictsResponse_nextToken' - An enumeration token that can be used in a request to return the next
+-- batch of the results.
+--
+-- 'httpStatus', 'batchDescribeMergeConflictsResponse_httpStatus' - The response's http status code.
+--
+-- 'conflicts', 'batchDescribeMergeConflictsResponse_conflicts' - A list of conflicts for each file, including the conflict metadata and
+-- the hunks of the differences between the files.
+--
+-- 'destinationCommitId', 'batchDescribeMergeConflictsResponse_destinationCommitId' - The commit ID of the destination commit specifier that was used in the
+-- merge evaluation.
+--
+-- 'sourceCommitId', 'batchDescribeMergeConflictsResponse_sourceCommitId' - The commit ID of the source commit specifier that was used in the merge
+-- evaluation.
+newBatchDescribeMergeConflictsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'destinationCommitId'
+  Prelude.Text ->
+  -- | 'sourceCommitId'
+  Prelude.Text ->
+  BatchDescribeMergeConflictsResponse
+newBatchDescribeMergeConflictsResponse
+  pHttpStatus_
+  pDestinationCommitId_
+  pSourceCommitId_ =
+    BatchDescribeMergeConflictsResponse'
+      { baseCommitId =
+          Prelude.Nothing,
+        errors = Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        httpStatus = pHttpStatus_,
+        conflicts = Prelude.mempty,
+        destinationCommitId =
+          pDestinationCommitId_,
+        sourceCommitId = pSourceCommitId_
+      }
+
+-- | The commit ID of the merge base.
+batchDescribeMergeConflictsResponse_baseCommitId :: Lens.Lens' BatchDescribeMergeConflictsResponse (Prelude.Maybe Prelude.Text)
+batchDescribeMergeConflictsResponse_baseCommitId = Lens.lens (\BatchDescribeMergeConflictsResponse' {baseCommitId} -> baseCommitId) (\s@BatchDescribeMergeConflictsResponse' {} a -> s {baseCommitId = a} :: BatchDescribeMergeConflictsResponse)
+
+-- | A list of any errors returned while describing the merge conflicts for
+-- each file.
+batchDescribeMergeConflictsResponse_errors :: Lens.Lens' BatchDescribeMergeConflictsResponse (Prelude.Maybe [BatchDescribeMergeConflictsError])
+batchDescribeMergeConflictsResponse_errors = Lens.lens (\BatchDescribeMergeConflictsResponse' {errors} -> errors) (\s@BatchDescribeMergeConflictsResponse' {} a -> s {errors = a} :: BatchDescribeMergeConflictsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | An enumeration token that can be used in a request to return the next
+-- batch of the results.
+batchDescribeMergeConflictsResponse_nextToken :: Lens.Lens' BatchDescribeMergeConflictsResponse (Prelude.Maybe Prelude.Text)
+batchDescribeMergeConflictsResponse_nextToken = Lens.lens (\BatchDescribeMergeConflictsResponse' {nextToken} -> nextToken) (\s@BatchDescribeMergeConflictsResponse' {} a -> s {nextToken = a} :: BatchDescribeMergeConflictsResponse)
+
+-- | The response's http status code.
+batchDescribeMergeConflictsResponse_httpStatus :: Lens.Lens' BatchDescribeMergeConflictsResponse Prelude.Int
+batchDescribeMergeConflictsResponse_httpStatus = Lens.lens (\BatchDescribeMergeConflictsResponse' {httpStatus} -> httpStatus) (\s@BatchDescribeMergeConflictsResponse' {} a -> s {httpStatus = a} :: BatchDescribeMergeConflictsResponse)
+
+-- | A list of conflicts for each file, including the conflict metadata and
+-- the hunks of the differences between the files.
+batchDescribeMergeConflictsResponse_conflicts :: Lens.Lens' BatchDescribeMergeConflictsResponse [Conflict]
+batchDescribeMergeConflictsResponse_conflicts = Lens.lens (\BatchDescribeMergeConflictsResponse' {conflicts} -> conflicts) (\s@BatchDescribeMergeConflictsResponse' {} a -> s {conflicts = a} :: BatchDescribeMergeConflictsResponse) Prelude.. Lens.coerced
+
+-- | The commit ID of the destination commit specifier that was used in the
+-- merge evaluation.
+batchDescribeMergeConflictsResponse_destinationCommitId :: Lens.Lens' BatchDescribeMergeConflictsResponse Prelude.Text
+batchDescribeMergeConflictsResponse_destinationCommitId = Lens.lens (\BatchDescribeMergeConflictsResponse' {destinationCommitId} -> destinationCommitId) (\s@BatchDescribeMergeConflictsResponse' {} a -> s {destinationCommitId = a} :: BatchDescribeMergeConflictsResponse)
+
+-- | The commit ID of the source commit specifier that was used in the merge
+-- evaluation.
+batchDescribeMergeConflictsResponse_sourceCommitId :: Lens.Lens' BatchDescribeMergeConflictsResponse Prelude.Text
+batchDescribeMergeConflictsResponse_sourceCommitId = Lens.lens (\BatchDescribeMergeConflictsResponse' {sourceCommitId} -> sourceCommitId) (\s@BatchDescribeMergeConflictsResponse' {} a -> s {sourceCommitId = a} :: BatchDescribeMergeConflictsResponse)
+
+instance
+  Prelude.NFData
+    BatchDescribeMergeConflictsResponse
+  where
+  rnf BatchDescribeMergeConflictsResponse' {..} =
+    Prelude.rnf baseCommitId
+      `Prelude.seq` Prelude.rnf errors
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf conflicts
+      `Prelude.seq` Prelude.rnf destinationCommitId
+      `Prelude.seq` Prelude.rnf sourceCommitId
diff --git a/gen/Amazonka/CodeCommit/BatchDisassociateApprovalRuleTemplateFromRepositories.hs b/gen/Amazonka/CodeCommit/BatchDisassociateApprovalRuleTemplateFromRepositories.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/BatchDisassociateApprovalRuleTemplateFromRepositories.hs
@@ -0,0 +1,263 @@
+{-# 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.CodeCommit.BatchDisassociateApprovalRuleTemplateFromRepositories
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes the association between an approval rule template and one or
+-- more specified repositories.
+module Amazonka.CodeCommit.BatchDisassociateApprovalRuleTemplateFromRepositories
+  ( -- * Creating a Request
+    BatchDisassociateApprovalRuleTemplateFromRepositories (..),
+    newBatchDisassociateApprovalRuleTemplateFromRepositories,
+
+    -- * Request Lenses
+    batchDisassociateApprovalRuleTemplateFromRepositories_approvalRuleTemplateName,
+    batchDisassociateApprovalRuleTemplateFromRepositories_repositoryNames,
+
+    -- * Destructuring the Response
+    BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse (..),
+    newBatchDisassociateApprovalRuleTemplateFromRepositoriesResponse,
+
+    -- * Response Lenses
+    batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_httpStatus,
+    batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_disassociatedRepositoryNames,
+    batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_errors,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newBatchDisassociateApprovalRuleTemplateFromRepositories' smart constructor.
+data BatchDisassociateApprovalRuleTemplateFromRepositories = BatchDisassociateApprovalRuleTemplateFromRepositories'
+  { -- | The name of the template that you want to disassociate from one or more
+    -- repositories.
+    approvalRuleTemplateName :: Prelude.Text,
+    -- | The repository names that you want to disassociate from the approval
+    -- rule template.
+    --
+    -- The length constraint limit is for each string in the array. The array
+    -- itself can be empty.
+    repositoryNames :: [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchDisassociateApprovalRuleTemplateFromRepositories' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleTemplateName', 'batchDisassociateApprovalRuleTemplateFromRepositories_approvalRuleTemplateName' - The name of the template that you want to disassociate from one or more
+-- repositories.
+--
+-- 'repositoryNames', 'batchDisassociateApprovalRuleTemplateFromRepositories_repositoryNames' - The repository names that you want to disassociate from the approval
+-- rule template.
+--
+-- The length constraint limit is for each string in the array. The array
+-- itself can be empty.
+newBatchDisassociateApprovalRuleTemplateFromRepositories ::
+  -- | 'approvalRuleTemplateName'
+  Prelude.Text ->
+  BatchDisassociateApprovalRuleTemplateFromRepositories
+newBatchDisassociateApprovalRuleTemplateFromRepositories
+  pApprovalRuleTemplateName_ =
+    BatchDisassociateApprovalRuleTemplateFromRepositories'
+      { approvalRuleTemplateName =
+          pApprovalRuleTemplateName_,
+        repositoryNames =
+          Prelude.mempty
+      }
+
+-- | The name of the template that you want to disassociate from one or more
+-- repositories.
+batchDisassociateApprovalRuleTemplateFromRepositories_approvalRuleTemplateName :: Lens.Lens' BatchDisassociateApprovalRuleTemplateFromRepositories Prelude.Text
+batchDisassociateApprovalRuleTemplateFromRepositories_approvalRuleTemplateName = Lens.lens (\BatchDisassociateApprovalRuleTemplateFromRepositories' {approvalRuleTemplateName} -> approvalRuleTemplateName) (\s@BatchDisassociateApprovalRuleTemplateFromRepositories' {} a -> s {approvalRuleTemplateName = a} :: BatchDisassociateApprovalRuleTemplateFromRepositories)
+
+-- | The repository names that you want to disassociate from the approval
+-- rule template.
+--
+-- The length constraint limit is for each string in the array. The array
+-- itself can be empty.
+batchDisassociateApprovalRuleTemplateFromRepositories_repositoryNames :: Lens.Lens' BatchDisassociateApprovalRuleTemplateFromRepositories [Prelude.Text]
+batchDisassociateApprovalRuleTemplateFromRepositories_repositoryNames = Lens.lens (\BatchDisassociateApprovalRuleTemplateFromRepositories' {repositoryNames} -> repositoryNames) (\s@BatchDisassociateApprovalRuleTemplateFromRepositories' {} a -> s {repositoryNames = a} :: BatchDisassociateApprovalRuleTemplateFromRepositories) Prelude.. Lens.coerced
+
+instance
+  Core.AWSRequest
+    BatchDisassociateApprovalRuleTemplateFromRepositories
+  where
+  type
+    AWSResponse
+      BatchDisassociateApprovalRuleTemplateFromRepositories =
+      BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> ( x
+                            Data..?> "disassociatedRepositoryNames"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "errors" Core..!@ Prelude.mempty)
+      )
+
+instance
+  Prelude.Hashable
+    BatchDisassociateApprovalRuleTemplateFromRepositories
+  where
+  hashWithSalt
+    _salt
+    BatchDisassociateApprovalRuleTemplateFromRepositories' {..} =
+      _salt
+        `Prelude.hashWithSalt` approvalRuleTemplateName
+        `Prelude.hashWithSalt` repositoryNames
+
+instance
+  Prelude.NFData
+    BatchDisassociateApprovalRuleTemplateFromRepositories
+  where
+  rnf
+    BatchDisassociateApprovalRuleTemplateFromRepositories' {..} =
+      Prelude.rnf approvalRuleTemplateName
+        `Prelude.seq` Prelude.rnf repositoryNames
+
+instance
+  Data.ToHeaders
+    BatchDisassociateApprovalRuleTemplateFromRepositories
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.BatchDisassociateApprovalRuleTemplateFromRepositories" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    BatchDisassociateApprovalRuleTemplateFromRepositories
+  where
+  toJSON
+    BatchDisassociateApprovalRuleTemplateFromRepositories' {..} =
+      Data.object
+        ( Prelude.catMaybes
+            [ Prelude.Just
+                ( "approvalRuleTemplateName"
+                    Data..= approvalRuleTemplateName
+                ),
+              Prelude.Just
+                ("repositoryNames" Data..= repositoryNames)
+            ]
+        )
+
+instance
+  Data.ToPath
+    BatchDisassociateApprovalRuleTemplateFromRepositories
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    BatchDisassociateApprovalRuleTemplateFromRepositories
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newBatchDisassociateApprovalRuleTemplateFromRepositoriesResponse' smart constructor.
+data BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse = BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | A list of repository names that have had their association with the
+    -- template removed.
+    disassociatedRepositoryNames :: [Prelude.Text],
+    -- | A list of any errors that might have occurred while attempting to remove
+    -- the association between the template and the repositories.
+    errors :: [BatchDisassociateApprovalRuleTemplateFromRepositoriesError]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_httpStatus' - The response's http status code.
+--
+-- 'disassociatedRepositoryNames', 'batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_disassociatedRepositoryNames' - A list of repository names that have had their association with the
+-- template removed.
+--
+-- 'errors', 'batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_errors' - A list of any errors that might have occurred while attempting to remove
+-- the association between the template and the repositories.
+newBatchDisassociateApprovalRuleTemplateFromRepositoriesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse
+newBatchDisassociateApprovalRuleTemplateFromRepositoriesResponse
+  pHttpStatus_ =
+    BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse'
+      { httpStatus =
+          pHttpStatus_,
+        disassociatedRepositoryNames =
+          Prelude.mempty,
+        errors =
+          Prelude.mempty
+      }
+
+-- | The response's http status code.
+batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_httpStatus :: Lens.Lens' BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse Prelude.Int
+batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_httpStatus = Lens.lens (\BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse' {httpStatus} -> httpStatus) (\s@BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse' {} a -> s {httpStatus = a} :: BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse)
+
+-- | A list of repository names that have had their association with the
+-- template removed.
+batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_disassociatedRepositoryNames :: Lens.Lens' BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse [Prelude.Text]
+batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_disassociatedRepositoryNames = Lens.lens (\BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse' {disassociatedRepositoryNames} -> disassociatedRepositoryNames) (\s@BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse' {} a -> s {disassociatedRepositoryNames = a} :: BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse) Prelude.. Lens.coerced
+
+-- | A list of any errors that might have occurred while attempting to remove
+-- the association between the template and the repositories.
+batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_errors :: Lens.Lens' BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse [BatchDisassociateApprovalRuleTemplateFromRepositoriesError]
+batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_errors = Lens.lens (\BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse' {errors} -> errors) (\s@BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse' {} a -> s {errors = a} :: BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse) Prelude.. Lens.coerced
+
+instance
+  Prelude.NFData
+    BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse
+  where
+  rnf
+    BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse' {..} =
+      Prelude.rnf httpStatus
+        `Prelude.seq` Prelude.rnf disassociatedRepositoryNames
+        `Prelude.seq` Prelude.rnf errors
diff --git a/gen/Amazonka/CodeCommit/BatchGetCommits.hs b/gen/Amazonka/CodeCommit/BatchGetCommits.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/BatchGetCommits.hs
@@ -0,0 +1,220 @@
+{-# 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.CodeCommit.BatchGetCommits
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about the contents of one or more commits in a
+-- repository.
+module Amazonka.CodeCommit.BatchGetCommits
+  ( -- * Creating a Request
+    BatchGetCommits (..),
+    newBatchGetCommits,
+
+    -- * Request Lenses
+    batchGetCommits_commitIds,
+    batchGetCommits_repositoryName,
+
+    -- * Destructuring the Response
+    BatchGetCommitsResponse (..),
+    newBatchGetCommitsResponse,
+
+    -- * Response Lenses
+    batchGetCommitsResponse_commits,
+    batchGetCommitsResponse_errors,
+    batchGetCommitsResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newBatchGetCommits' smart constructor.
+data BatchGetCommits = BatchGetCommits'
+  { -- | The full commit IDs of the commits to get information about.
+    --
+    -- You must supply the full SHA IDs of each commit. You cannot use
+    -- shortened SHA IDs.
+    commitIds :: [Prelude.Text],
+    -- | The name of the repository that contains the commits.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchGetCommits' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commitIds', 'batchGetCommits_commitIds' - The full commit IDs of the commits to get information about.
+--
+-- You must supply the full SHA IDs of each commit. You cannot use
+-- shortened SHA IDs.
+--
+-- 'repositoryName', 'batchGetCommits_repositoryName' - The name of the repository that contains the commits.
+newBatchGetCommits ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  BatchGetCommits
+newBatchGetCommits pRepositoryName_ =
+  BatchGetCommits'
+    { commitIds = Prelude.mempty,
+      repositoryName = pRepositoryName_
+    }
+
+-- | The full commit IDs of the commits to get information about.
+--
+-- You must supply the full SHA IDs of each commit. You cannot use
+-- shortened SHA IDs.
+batchGetCommits_commitIds :: Lens.Lens' BatchGetCommits [Prelude.Text]
+batchGetCommits_commitIds = Lens.lens (\BatchGetCommits' {commitIds} -> commitIds) (\s@BatchGetCommits' {} a -> s {commitIds = a} :: BatchGetCommits) Prelude.. Lens.coerced
+
+-- | The name of the repository that contains the commits.
+batchGetCommits_repositoryName :: Lens.Lens' BatchGetCommits Prelude.Text
+batchGetCommits_repositoryName = Lens.lens (\BatchGetCommits' {repositoryName} -> repositoryName) (\s@BatchGetCommits' {} a -> s {repositoryName = a} :: BatchGetCommits)
+
+instance Core.AWSRequest BatchGetCommits where
+  type
+    AWSResponse BatchGetCommits =
+      BatchGetCommitsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          BatchGetCommitsResponse'
+            Prelude.<$> (x Data..?> "commits" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "errors" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable BatchGetCommits where
+  hashWithSalt _salt BatchGetCommits' {..} =
+    _salt
+      `Prelude.hashWithSalt` commitIds
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData BatchGetCommits where
+  rnf BatchGetCommits' {..} =
+    Prelude.rnf commitIds
+      `Prelude.seq` Prelude.rnf repositoryName
+
+instance Data.ToHeaders BatchGetCommits where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.BatchGetCommits" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON BatchGetCommits where
+  toJSON BatchGetCommits' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("commitIds" Data..= commitIds),
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName)
+          ]
+      )
+
+instance Data.ToPath BatchGetCommits where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery BatchGetCommits where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newBatchGetCommitsResponse' smart constructor.
+data BatchGetCommitsResponse = BatchGetCommitsResponse'
+  { -- | An array of commit data type objects, each of which contains information
+    -- about a specified commit.
+    commits :: Prelude.Maybe [Commit],
+    -- | Returns any commit IDs for which information could not be found. For
+    -- example, if one of the commit IDs was a shortened SHA ID or that commit
+    -- was not found in the specified repository, the ID returns an error
+    -- object with more information.
+    errors :: Prelude.Maybe [BatchGetCommitsError],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchGetCommitsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commits', 'batchGetCommitsResponse_commits' - An array of commit data type objects, each of which contains information
+-- about a specified commit.
+--
+-- 'errors', 'batchGetCommitsResponse_errors' - Returns any commit IDs for which information could not be found. For
+-- example, if one of the commit IDs was a shortened SHA ID or that commit
+-- was not found in the specified repository, the ID returns an error
+-- object with more information.
+--
+-- 'httpStatus', 'batchGetCommitsResponse_httpStatus' - The response's http status code.
+newBatchGetCommitsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  BatchGetCommitsResponse
+newBatchGetCommitsResponse pHttpStatus_ =
+  BatchGetCommitsResponse'
+    { commits = Prelude.Nothing,
+      errors = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | An array of commit data type objects, each of which contains information
+-- about a specified commit.
+batchGetCommitsResponse_commits :: Lens.Lens' BatchGetCommitsResponse (Prelude.Maybe [Commit])
+batchGetCommitsResponse_commits = Lens.lens (\BatchGetCommitsResponse' {commits} -> commits) (\s@BatchGetCommitsResponse' {} a -> s {commits = a} :: BatchGetCommitsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Returns any commit IDs for which information could not be found. For
+-- example, if one of the commit IDs was a shortened SHA ID or that commit
+-- was not found in the specified repository, the ID returns an error
+-- object with more information.
+batchGetCommitsResponse_errors :: Lens.Lens' BatchGetCommitsResponse (Prelude.Maybe [BatchGetCommitsError])
+batchGetCommitsResponse_errors = Lens.lens (\BatchGetCommitsResponse' {errors} -> errors) (\s@BatchGetCommitsResponse' {} a -> s {errors = a} :: BatchGetCommitsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+batchGetCommitsResponse_httpStatus :: Lens.Lens' BatchGetCommitsResponse Prelude.Int
+batchGetCommitsResponse_httpStatus = Lens.lens (\BatchGetCommitsResponse' {httpStatus} -> httpStatus) (\s@BatchGetCommitsResponse' {} a -> s {httpStatus = a} :: BatchGetCommitsResponse)
+
+instance Prelude.NFData BatchGetCommitsResponse where
+  rnf BatchGetCommitsResponse' {..} =
+    Prelude.rnf commits
+      `Prelude.seq` Prelude.rnf errors
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/BatchGetRepositories.hs b/gen/Amazonka/CodeCommit/BatchGetRepositories.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/BatchGetRepositories.hs
@@ -0,0 +1,210 @@
+{-# 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.CodeCommit.BatchGetRepositories
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about one or more repositories.
+--
+-- The description field for a repository accepts all HTML characters and
+-- all valid Unicode characters. Applications that do not HTML-encode the
+-- description and display it in a webpage can expose users to potentially
+-- malicious code. Make sure that you HTML-encode the description field in
+-- any application that uses this API to display the repository description
+-- on a webpage.
+module Amazonka.CodeCommit.BatchGetRepositories
+  ( -- * Creating a Request
+    BatchGetRepositories (..),
+    newBatchGetRepositories,
+
+    -- * Request Lenses
+    batchGetRepositories_repositoryNames,
+
+    -- * Destructuring the Response
+    BatchGetRepositoriesResponse (..),
+    newBatchGetRepositoriesResponse,
+
+    -- * Response Lenses
+    batchGetRepositoriesResponse_repositories,
+    batchGetRepositoriesResponse_repositoriesNotFound,
+    batchGetRepositoriesResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a batch get repositories operation.
+--
+-- /See:/ 'newBatchGetRepositories' smart constructor.
+data BatchGetRepositories = BatchGetRepositories'
+  { -- | The names of the repositories to get information about.
+    --
+    -- The length constraint limit is for each string in the array. The array
+    -- itself can be empty.
+    repositoryNames :: [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchGetRepositories' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryNames', 'batchGetRepositories_repositoryNames' - The names of the repositories to get information about.
+--
+-- The length constraint limit is for each string in the array. The array
+-- itself can be empty.
+newBatchGetRepositories ::
+  BatchGetRepositories
+newBatchGetRepositories =
+  BatchGetRepositories'
+    { repositoryNames =
+        Prelude.mempty
+    }
+
+-- | The names of the repositories to get information about.
+--
+-- The length constraint limit is for each string in the array. The array
+-- itself can be empty.
+batchGetRepositories_repositoryNames :: Lens.Lens' BatchGetRepositories [Prelude.Text]
+batchGetRepositories_repositoryNames = Lens.lens (\BatchGetRepositories' {repositoryNames} -> repositoryNames) (\s@BatchGetRepositories' {} a -> s {repositoryNames = a} :: BatchGetRepositories) Prelude.. Lens.coerced
+
+instance Core.AWSRequest BatchGetRepositories where
+  type
+    AWSResponse BatchGetRepositories =
+      BatchGetRepositoriesResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          BatchGetRepositoriesResponse'
+            Prelude.<$> (x Data..?> "repositories" Core..!@ Prelude.mempty)
+            Prelude.<*> ( x
+                            Data..?> "repositoriesNotFound"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable BatchGetRepositories where
+  hashWithSalt _salt BatchGetRepositories' {..} =
+    _salt `Prelude.hashWithSalt` repositoryNames
+
+instance Prelude.NFData BatchGetRepositories where
+  rnf BatchGetRepositories' {..} =
+    Prelude.rnf repositoryNames
+
+instance Data.ToHeaders BatchGetRepositories where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.BatchGetRepositories" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON BatchGetRepositories where
+  toJSON BatchGetRepositories' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("repositoryNames" Data..= repositoryNames)
+          ]
+      )
+
+instance Data.ToPath BatchGetRepositories where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery BatchGetRepositories where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a batch get repositories operation.
+--
+-- /See:/ 'newBatchGetRepositoriesResponse' smart constructor.
+data BatchGetRepositoriesResponse = BatchGetRepositoriesResponse'
+  { -- | A list of repositories returned by the batch get repositories operation.
+    repositories :: Prelude.Maybe [RepositoryMetadata],
+    -- | Returns a list of repository names for which information could not be
+    -- found.
+    repositoriesNotFound :: 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 'BatchGetRepositoriesResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositories', 'batchGetRepositoriesResponse_repositories' - A list of repositories returned by the batch get repositories operation.
+--
+-- 'repositoriesNotFound', 'batchGetRepositoriesResponse_repositoriesNotFound' - Returns a list of repository names for which information could not be
+-- found.
+--
+-- 'httpStatus', 'batchGetRepositoriesResponse_httpStatus' - The response's http status code.
+newBatchGetRepositoriesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  BatchGetRepositoriesResponse
+newBatchGetRepositoriesResponse pHttpStatus_ =
+  BatchGetRepositoriesResponse'
+    { repositories =
+        Prelude.Nothing,
+      repositoriesNotFound = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | A list of repositories returned by the batch get repositories operation.
+batchGetRepositoriesResponse_repositories :: Lens.Lens' BatchGetRepositoriesResponse (Prelude.Maybe [RepositoryMetadata])
+batchGetRepositoriesResponse_repositories = Lens.lens (\BatchGetRepositoriesResponse' {repositories} -> repositories) (\s@BatchGetRepositoriesResponse' {} a -> s {repositories = a} :: BatchGetRepositoriesResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Returns a list of repository names for which information could not be
+-- found.
+batchGetRepositoriesResponse_repositoriesNotFound :: Lens.Lens' BatchGetRepositoriesResponse (Prelude.Maybe [Prelude.Text])
+batchGetRepositoriesResponse_repositoriesNotFound = Lens.lens (\BatchGetRepositoriesResponse' {repositoriesNotFound} -> repositoriesNotFound) (\s@BatchGetRepositoriesResponse' {} a -> s {repositoriesNotFound = a} :: BatchGetRepositoriesResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+batchGetRepositoriesResponse_httpStatus :: Lens.Lens' BatchGetRepositoriesResponse Prelude.Int
+batchGetRepositoriesResponse_httpStatus = Lens.lens (\BatchGetRepositoriesResponse' {httpStatus} -> httpStatus) (\s@BatchGetRepositoriesResponse' {} a -> s {httpStatus = a} :: BatchGetRepositoriesResponse)
+
+instance Prelude.NFData BatchGetRepositoriesResponse where
+  rnf BatchGetRepositoriesResponse' {..} =
+    Prelude.rnf repositories
+      `Prelude.seq` Prelude.rnf repositoriesNotFound
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/CreateApprovalRuleTemplate.hs b/gen/Amazonka/CodeCommit/CreateApprovalRuleTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/CreateApprovalRuleTemplate.hs
@@ -0,0 +1,340 @@
+{-# 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.CodeCommit.CreateApprovalRuleTemplate
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a template for approval rules that can then be associated with
+-- one or more repositories in your AWS account. When you associate a
+-- template with a repository, AWS CodeCommit creates an approval rule that
+-- matches the conditions of the template for all pull requests that meet
+-- the conditions of the template. For more information, see
+-- AssociateApprovalRuleTemplateWithRepository.
+module Amazonka.CodeCommit.CreateApprovalRuleTemplate
+  ( -- * Creating a Request
+    CreateApprovalRuleTemplate (..),
+    newCreateApprovalRuleTemplate,
+
+    -- * Request Lenses
+    createApprovalRuleTemplate_approvalRuleTemplateDescription,
+    createApprovalRuleTemplate_approvalRuleTemplateName,
+    createApprovalRuleTemplate_approvalRuleTemplateContent,
+
+    -- * Destructuring the Response
+    CreateApprovalRuleTemplateResponse (..),
+    newCreateApprovalRuleTemplateResponse,
+
+    -- * Response Lenses
+    createApprovalRuleTemplateResponse_httpStatus,
+    createApprovalRuleTemplateResponse_approvalRuleTemplate,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newCreateApprovalRuleTemplate' smart constructor.
+data CreateApprovalRuleTemplate = CreateApprovalRuleTemplate'
+  { -- | The description of the approval rule template. Consider providing a
+    -- description that explains what this template does and when it might be
+    -- appropriate to associate it with repositories.
+    approvalRuleTemplateDescription :: Prelude.Maybe Prelude.Text,
+    -- | The name of the approval rule template. Provide descriptive names,
+    -- because this name is applied to the approval rules created automatically
+    -- in associated repositories.
+    approvalRuleTemplateName :: Prelude.Text,
+    -- | The content of the approval rule that is created on pull requests in
+    -- associated repositories. If you specify one or more destination
+    -- references (branches), approval rules are created in an associated
+    -- repository only if their destination references (branches) match those
+    -- specified in the template.
+    --
+    -- When you create the content of the approval rule template, you can
+    -- specify approvers in an approval pool in one of two ways:
+    --
+    -- -   __CodeCommitApprovers__: This option only requires an AWS account
+    --     and a resource. It can be used for both IAM users and federated
+    --     access users whose name matches the provided resource name. This is
+    --     a very powerful option that offers a great deal of flexibility. For
+    --     example, if you specify the AWS account /123456789012/ and
+    --     /Mary_Major/, all of the following are counted as approvals coming
+    --     from that user:
+    --
+    --     -   An IAM user in the account
+    --         (arn:aws:iam::/123456789012/:user\//Mary_Major/)
+    --
+    --     -   A federated user identified in IAM as Mary_Major
+    --         (arn:aws:sts::/123456789012/:federated-user\//Mary_Major/)
+    --
+    --     This option does not recognize an active session of someone assuming
+    --     the role of CodeCommitReview with a role session name of
+    --     /Mary_Major/
+    --     (arn:aws:sts::/123456789012/:assumed-role\/CodeCommitReview\//Mary_Major/)
+    --     unless you include a wildcard (*Mary_Major).
+    --
+    -- -   __Fully qualified ARN__: This option allows you to specify the fully
+    --     qualified Amazon Resource Name (ARN) of the IAM user or role.
+    --
+    -- For more information about IAM ARNs, wildcards, and formats, see
+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
+    -- in the /IAM User Guide/.
+    approvalRuleTemplateContent :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateApprovalRuleTemplate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleTemplateDescription', 'createApprovalRuleTemplate_approvalRuleTemplateDescription' - The description of the approval rule template. Consider providing a
+-- description that explains what this template does and when it might be
+-- appropriate to associate it with repositories.
+--
+-- 'approvalRuleTemplateName', 'createApprovalRuleTemplate_approvalRuleTemplateName' - The name of the approval rule template. Provide descriptive names,
+-- because this name is applied to the approval rules created automatically
+-- in associated repositories.
+--
+-- 'approvalRuleTemplateContent', 'createApprovalRuleTemplate_approvalRuleTemplateContent' - The content of the approval rule that is created on pull requests in
+-- associated repositories. If you specify one or more destination
+-- references (branches), approval rules are created in an associated
+-- repository only if their destination references (branches) match those
+-- specified in the template.
+--
+-- When you create the content of the approval rule template, you can
+-- specify approvers in an approval pool in one of two ways:
+--
+-- -   __CodeCommitApprovers__: This option only requires an AWS account
+--     and a resource. It can be used for both IAM users and federated
+--     access users whose name matches the provided resource name. This is
+--     a very powerful option that offers a great deal of flexibility. For
+--     example, if you specify the AWS account /123456789012/ and
+--     /Mary_Major/, all of the following are counted as approvals coming
+--     from that user:
+--
+--     -   An IAM user in the account
+--         (arn:aws:iam::/123456789012/:user\//Mary_Major/)
+--
+--     -   A federated user identified in IAM as Mary_Major
+--         (arn:aws:sts::/123456789012/:federated-user\//Mary_Major/)
+--
+--     This option does not recognize an active session of someone assuming
+--     the role of CodeCommitReview with a role session name of
+--     /Mary_Major/
+--     (arn:aws:sts::/123456789012/:assumed-role\/CodeCommitReview\//Mary_Major/)
+--     unless you include a wildcard (*Mary_Major).
+--
+-- -   __Fully qualified ARN__: This option allows you to specify the fully
+--     qualified Amazon Resource Name (ARN) of the IAM user or role.
+--
+-- For more information about IAM ARNs, wildcards, and formats, see
+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
+-- in the /IAM User Guide/.
+newCreateApprovalRuleTemplate ::
+  -- | 'approvalRuleTemplateName'
+  Prelude.Text ->
+  -- | 'approvalRuleTemplateContent'
+  Prelude.Text ->
+  CreateApprovalRuleTemplate
+newCreateApprovalRuleTemplate
+  pApprovalRuleTemplateName_
+  pApprovalRuleTemplateContent_ =
+    CreateApprovalRuleTemplate'
+      { approvalRuleTemplateDescription =
+          Prelude.Nothing,
+        approvalRuleTemplateName =
+          pApprovalRuleTemplateName_,
+        approvalRuleTemplateContent =
+          pApprovalRuleTemplateContent_
+      }
+
+-- | The description of the approval rule template. Consider providing a
+-- description that explains what this template does and when it might be
+-- appropriate to associate it with repositories.
+createApprovalRuleTemplate_approvalRuleTemplateDescription :: Lens.Lens' CreateApprovalRuleTemplate (Prelude.Maybe Prelude.Text)
+createApprovalRuleTemplate_approvalRuleTemplateDescription = Lens.lens (\CreateApprovalRuleTemplate' {approvalRuleTemplateDescription} -> approvalRuleTemplateDescription) (\s@CreateApprovalRuleTemplate' {} a -> s {approvalRuleTemplateDescription = a} :: CreateApprovalRuleTemplate)
+
+-- | The name of the approval rule template. Provide descriptive names,
+-- because this name is applied to the approval rules created automatically
+-- in associated repositories.
+createApprovalRuleTemplate_approvalRuleTemplateName :: Lens.Lens' CreateApprovalRuleTemplate Prelude.Text
+createApprovalRuleTemplate_approvalRuleTemplateName = Lens.lens (\CreateApprovalRuleTemplate' {approvalRuleTemplateName} -> approvalRuleTemplateName) (\s@CreateApprovalRuleTemplate' {} a -> s {approvalRuleTemplateName = a} :: CreateApprovalRuleTemplate)
+
+-- | The content of the approval rule that is created on pull requests in
+-- associated repositories. If you specify one or more destination
+-- references (branches), approval rules are created in an associated
+-- repository only if their destination references (branches) match those
+-- specified in the template.
+--
+-- When you create the content of the approval rule template, you can
+-- specify approvers in an approval pool in one of two ways:
+--
+-- -   __CodeCommitApprovers__: This option only requires an AWS account
+--     and a resource. It can be used for both IAM users and federated
+--     access users whose name matches the provided resource name. This is
+--     a very powerful option that offers a great deal of flexibility. For
+--     example, if you specify the AWS account /123456789012/ and
+--     /Mary_Major/, all of the following are counted as approvals coming
+--     from that user:
+--
+--     -   An IAM user in the account
+--         (arn:aws:iam::/123456789012/:user\//Mary_Major/)
+--
+--     -   A federated user identified in IAM as Mary_Major
+--         (arn:aws:sts::/123456789012/:federated-user\//Mary_Major/)
+--
+--     This option does not recognize an active session of someone assuming
+--     the role of CodeCommitReview with a role session name of
+--     /Mary_Major/
+--     (arn:aws:sts::/123456789012/:assumed-role\/CodeCommitReview\//Mary_Major/)
+--     unless you include a wildcard (*Mary_Major).
+--
+-- -   __Fully qualified ARN__: This option allows you to specify the fully
+--     qualified Amazon Resource Name (ARN) of the IAM user or role.
+--
+-- For more information about IAM ARNs, wildcards, and formats, see
+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
+-- in the /IAM User Guide/.
+createApprovalRuleTemplate_approvalRuleTemplateContent :: Lens.Lens' CreateApprovalRuleTemplate Prelude.Text
+createApprovalRuleTemplate_approvalRuleTemplateContent = Lens.lens (\CreateApprovalRuleTemplate' {approvalRuleTemplateContent} -> approvalRuleTemplateContent) (\s@CreateApprovalRuleTemplate' {} a -> s {approvalRuleTemplateContent = a} :: CreateApprovalRuleTemplate)
+
+instance Core.AWSRequest CreateApprovalRuleTemplate where
+  type
+    AWSResponse CreateApprovalRuleTemplate =
+      CreateApprovalRuleTemplateResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateApprovalRuleTemplateResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "approvalRuleTemplate")
+      )
+
+instance Prelude.Hashable CreateApprovalRuleTemplate where
+  hashWithSalt _salt CreateApprovalRuleTemplate' {..} =
+    _salt
+      `Prelude.hashWithSalt` approvalRuleTemplateDescription
+      `Prelude.hashWithSalt` approvalRuleTemplateName
+      `Prelude.hashWithSalt` approvalRuleTemplateContent
+
+instance Prelude.NFData CreateApprovalRuleTemplate where
+  rnf CreateApprovalRuleTemplate' {..} =
+    Prelude.rnf approvalRuleTemplateDescription
+      `Prelude.seq` Prelude.rnf approvalRuleTemplateName
+      `Prelude.seq` Prelude.rnf approvalRuleTemplateContent
+
+instance Data.ToHeaders CreateApprovalRuleTemplate where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.CreateApprovalRuleTemplate" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateApprovalRuleTemplate where
+  toJSON CreateApprovalRuleTemplate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("approvalRuleTemplateDescription" Data..=)
+              Prelude.<$> approvalRuleTemplateDescription,
+            Prelude.Just
+              ( "approvalRuleTemplateName"
+                  Data..= approvalRuleTemplateName
+              ),
+            Prelude.Just
+              ( "approvalRuleTemplateContent"
+                  Data..= approvalRuleTemplateContent
+              )
+          ]
+      )
+
+instance Data.ToPath CreateApprovalRuleTemplate where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateApprovalRuleTemplate where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateApprovalRuleTemplateResponse' smart constructor.
+data CreateApprovalRuleTemplateResponse = CreateApprovalRuleTemplateResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The content and structure of the created approval rule template.
+    approvalRuleTemplate :: ApprovalRuleTemplate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateApprovalRuleTemplateResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'createApprovalRuleTemplateResponse_httpStatus' - The response's http status code.
+--
+-- 'approvalRuleTemplate', 'createApprovalRuleTemplateResponse_approvalRuleTemplate' - The content and structure of the created approval rule template.
+newCreateApprovalRuleTemplateResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'approvalRuleTemplate'
+  ApprovalRuleTemplate ->
+  CreateApprovalRuleTemplateResponse
+newCreateApprovalRuleTemplateResponse
+  pHttpStatus_
+  pApprovalRuleTemplate_ =
+    CreateApprovalRuleTemplateResponse'
+      { httpStatus =
+          pHttpStatus_,
+        approvalRuleTemplate =
+          pApprovalRuleTemplate_
+      }
+
+-- | The response's http status code.
+createApprovalRuleTemplateResponse_httpStatus :: Lens.Lens' CreateApprovalRuleTemplateResponse Prelude.Int
+createApprovalRuleTemplateResponse_httpStatus = Lens.lens (\CreateApprovalRuleTemplateResponse' {httpStatus} -> httpStatus) (\s@CreateApprovalRuleTemplateResponse' {} a -> s {httpStatus = a} :: CreateApprovalRuleTemplateResponse)
+
+-- | The content and structure of the created approval rule template.
+createApprovalRuleTemplateResponse_approvalRuleTemplate :: Lens.Lens' CreateApprovalRuleTemplateResponse ApprovalRuleTemplate
+createApprovalRuleTemplateResponse_approvalRuleTemplate = Lens.lens (\CreateApprovalRuleTemplateResponse' {approvalRuleTemplate} -> approvalRuleTemplate) (\s@CreateApprovalRuleTemplateResponse' {} a -> s {approvalRuleTemplate = a} :: CreateApprovalRuleTemplateResponse)
+
+instance
+  Prelude.NFData
+    CreateApprovalRuleTemplateResponse
+  where
+  rnf CreateApprovalRuleTemplateResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf approvalRuleTemplate
diff --git a/gen/Amazonka/CodeCommit/CreateBranch.hs b/gen/Amazonka/CodeCommit/CreateBranch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/CreateBranch.hs
@@ -0,0 +1,173 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.CreateBranch
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a branch in a repository and points the branch to a commit.
+--
+-- Calling the create branch operation does not set a repository\'s default
+-- branch. To do this, call the update default branch operation.
+module Amazonka.CodeCommit.CreateBranch
+  ( -- * Creating a Request
+    CreateBranch (..),
+    newCreateBranch,
+
+    -- * Request Lenses
+    createBranch_repositoryName,
+    createBranch_branchName,
+    createBranch_commitId,
+
+    -- * Destructuring the Response
+    CreateBranchResponse (..),
+    newCreateBranchResponse,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a create branch operation.
+--
+-- /See:/ 'newCreateBranch' smart constructor.
+data CreateBranch = CreateBranch'
+  { -- | The name of the repository in which you want to create the new branch.
+    repositoryName :: Prelude.Text,
+    -- | The name of the new branch to create.
+    branchName :: Prelude.Text,
+    -- | The ID of the commit to point the new branch to.
+    commitId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateBranch' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryName', 'createBranch_repositoryName' - The name of the repository in which you want to create the new branch.
+--
+-- 'branchName', 'createBranch_branchName' - The name of the new branch to create.
+--
+-- 'commitId', 'createBranch_commitId' - The ID of the commit to point the new branch to.
+newCreateBranch ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'branchName'
+  Prelude.Text ->
+  -- | 'commitId'
+  Prelude.Text ->
+  CreateBranch
+newCreateBranch
+  pRepositoryName_
+  pBranchName_
+  pCommitId_ =
+    CreateBranch'
+      { repositoryName = pRepositoryName_,
+        branchName = pBranchName_,
+        commitId = pCommitId_
+      }
+
+-- | The name of the repository in which you want to create the new branch.
+createBranch_repositoryName :: Lens.Lens' CreateBranch Prelude.Text
+createBranch_repositoryName = Lens.lens (\CreateBranch' {repositoryName} -> repositoryName) (\s@CreateBranch' {} a -> s {repositoryName = a} :: CreateBranch)
+
+-- | The name of the new branch to create.
+createBranch_branchName :: Lens.Lens' CreateBranch Prelude.Text
+createBranch_branchName = Lens.lens (\CreateBranch' {branchName} -> branchName) (\s@CreateBranch' {} a -> s {branchName = a} :: CreateBranch)
+
+-- | The ID of the commit to point the new branch to.
+createBranch_commitId :: Lens.Lens' CreateBranch Prelude.Text
+createBranch_commitId = Lens.lens (\CreateBranch' {commitId} -> commitId) (\s@CreateBranch' {} a -> s {commitId = a} :: CreateBranch)
+
+instance Core.AWSRequest CreateBranch where
+  type AWSResponse CreateBranch = CreateBranchResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response = Response.receiveNull CreateBranchResponse'
+
+instance Prelude.Hashable CreateBranch where
+  hashWithSalt _salt CreateBranch' {..} =
+    _salt
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` branchName
+      `Prelude.hashWithSalt` commitId
+
+instance Prelude.NFData CreateBranch where
+  rnf CreateBranch' {..} =
+    Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf branchName
+      `Prelude.seq` Prelude.rnf commitId
+
+instance Data.ToHeaders CreateBranch where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.CreateBranch" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateBranch where
+  toJSON CreateBranch' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just ("branchName" Data..= branchName),
+            Prelude.Just ("commitId" Data..= commitId)
+          ]
+      )
+
+instance Data.ToPath CreateBranch where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateBranch where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateBranchResponse' smart constructor.
+data CreateBranchResponse = CreateBranchResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateBranchResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newCreateBranchResponse ::
+  CreateBranchResponse
+newCreateBranchResponse = CreateBranchResponse'
+
+instance Prelude.NFData CreateBranchResponse where
+  rnf _ = ()
diff --git a/gen/Amazonka/CodeCommit/CreateCommit.hs b/gen/Amazonka/CodeCommit/CreateCommit.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/CreateCommit.hs
@@ -0,0 +1,367 @@
+{-# 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.CodeCommit.CreateCommit
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a commit for a repository on the tip of a specified branch.
+module Amazonka.CodeCommit.CreateCommit
+  ( -- * Creating a Request
+    CreateCommit (..),
+    newCreateCommit,
+
+    -- * Request Lenses
+    createCommit_authorName,
+    createCommit_commitMessage,
+    createCommit_deleteFiles,
+    createCommit_email,
+    createCommit_keepEmptyFolders,
+    createCommit_parentCommitId,
+    createCommit_putFiles,
+    createCommit_setFileModes,
+    createCommit_repositoryName,
+    createCommit_branchName,
+
+    -- * Destructuring the Response
+    CreateCommitResponse (..),
+    newCreateCommitResponse,
+
+    -- * Response Lenses
+    createCommitResponse_commitId,
+    createCommitResponse_filesAdded,
+    createCommitResponse_filesDeleted,
+    createCommitResponse_filesUpdated,
+    createCommitResponse_treeId,
+    createCommitResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newCreateCommit' smart constructor.
+data CreateCommit = CreateCommit'
+  { -- | The name of the author who created the commit. This information is used
+    -- as both the author and committer for the commit.
+    authorName :: Prelude.Maybe Prelude.Text,
+    -- | The commit message you want to include in the commit. Commit messages
+    -- are limited to 256 KB. If no message is specified, a default message is
+    -- used.
+    commitMessage :: Prelude.Maybe Prelude.Text,
+    -- | The files to delete in this commit. These files still exist in earlier
+    -- commits.
+    deleteFiles :: Prelude.Maybe [DeleteFileEntry],
+    -- | The email address of the person who created the commit.
+    email :: Prelude.Maybe Prelude.Text,
+    -- | If the commit contains deletions, whether to keep a folder or folder
+    -- structure if the changes leave the folders empty. If true, a ..gitkeep
+    -- file is created for empty folders. The default is false.
+    keepEmptyFolders :: Prelude.Maybe Prelude.Bool,
+    -- | The ID of the commit that is the parent of the commit you create. Not
+    -- required if this is an empty repository.
+    parentCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The files to add or update in this commit.
+    putFiles :: Prelude.Maybe [PutFileEntry],
+    -- | The file modes to update for files in this commit.
+    setFileModes :: Prelude.Maybe [SetFileModeEntry],
+    -- | The name of the repository where you create the commit.
+    repositoryName :: Prelude.Text,
+    -- | The name of the branch where you create the commit.
+    branchName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateCommit' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authorName', 'createCommit_authorName' - The name of the author who created the commit. This information is used
+-- as both the author and committer for the commit.
+--
+-- 'commitMessage', 'createCommit_commitMessage' - The commit message you want to include in the commit. Commit messages
+-- are limited to 256 KB. If no message is specified, a default message is
+-- used.
+--
+-- 'deleteFiles', 'createCommit_deleteFiles' - The files to delete in this commit. These files still exist in earlier
+-- commits.
+--
+-- 'email', 'createCommit_email' - The email address of the person who created the commit.
+--
+-- 'keepEmptyFolders', 'createCommit_keepEmptyFolders' - If the commit contains deletions, whether to keep a folder or folder
+-- structure if the changes leave the folders empty. If true, a ..gitkeep
+-- file is created for empty folders. The default is false.
+--
+-- 'parentCommitId', 'createCommit_parentCommitId' - The ID of the commit that is the parent of the commit you create. Not
+-- required if this is an empty repository.
+--
+-- 'putFiles', 'createCommit_putFiles' - The files to add or update in this commit.
+--
+-- 'setFileModes', 'createCommit_setFileModes' - The file modes to update for files in this commit.
+--
+-- 'repositoryName', 'createCommit_repositoryName' - The name of the repository where you create the commit.
+--
+-- 'branchName', 'createCommit_branchName' - The name of the branch where you create the commit.
+newCreateCommit ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'branchName'
+  Prelude.Text ->
+  CreateCommit
+newCreateCommit pRepositoryName_ pBranchName_ =
+  CreateCommit'
+    { authorName = Prelude.Nothing,
+      commitMessage = Prelude.Nothing,
+      deleteFiles = Prelude.Nothing,
+      email = Prelude.Nothing,
+      keepEmptyFolders = Prelude.Nothing,
+      parentCommitId = Prelude.Nothing,
+      putFiles = Prelude.Nothing,
+      setFileModes = Prelude.Nothing,
+      repositoryName = pRepositoryName_,
+      branchName = pBranchName_
+    }
+
+-- | The name of the author who created the commit. This information is used
+-- as both the author and committer for the commit.
+createCommit_authorName :: Lens.Lens' CreateCommit (Prelude.Maybe Prelude.Text)
+createCommit_authorName = Lens.lens (\CreateCommit' {authorName} -> authorName) (\s@CreateCommit' {} a -> s {authorName = a} :: CreateCommit)
+
+-- | The commit message you want to include in the commit. Commit messages
+-- are limited to 256 KB. If no message is specified, a default message is
+-- used.
+createCommit_commitMessage :: Lens.Lens' CreateCommit (Prelude.Maybe Prelude.Text)
+createCommit_commitMessage = Lens.lens (\CreateCommit' {commitMessage} -> commitMessage) (\s@CreateCommit' {} a -> s {commitMessage = a} :: CreateCommit)
+
+-- | The files to delete in this commit. These files still exist in earlier
+-- commits.
+createCommit_deleteFiles :: Lens.Lens' CreateCommit (Prelude.Maybe [DeleteFileEntry])
+createCommit_deleteFiles = Lens.lens (\CreateCommit' {deleteFiles} -> deleteFiles) (\s@CreateCommit' {} a -> s {deleteFiles = a} :: CreateCommit) Prelude.. Lens.mapping Lens.coerced
+
+-- | The email address of the person who created the commit.
+createCommit_email :: Lens.Lens' CreateCommit (Prelude.Maybe Prelude.Text)
+createCommit_email = Lens.lens (\CreateCommit' {email} -> email) (\s@CreateCommit' {} a -> s {email = a} :: CreateCommit)
+
+-- | If the commit contains deletions, whether to keep a folder or folder
+-- structure if the changes leave the folders empty. If true, a ..gitkeep
+-- file is created for empty folders. The default is false.
+createCommit_keepEmptyFolders :: Lens.Lens' CreateCommit (Prelude.Maybe Prelude.Bool)
+createCommit_keepEmptyFolders = Lens.lens (\CreateCommit' {keepEmptyFolders} -> keepEmptyFolders) (\s@CreateCommit' {} a -> s {keepEmptyFolders = a} :: CreateCommit)
+
+-- | The ID of the commit that is the parent of the commit you create. Not
+-- required if this is an empty repository.
+createCommit_parentCommitId :: Lens.Lens' CreateCommit (Prelude.Maybe Prelude.Text)
+createCommit_parentCommitId = Lens.lens (\CreateCommit' {parentCommitId} -> parentCommitId) (\s@CreateCommit' {} a -> s {parentCommitId = a} :: CreateCommit)
+
+-- | The files to add or update in this commit.
+createCommit_putFiles :: Lens.Lens' CreateCommit (Prelude.Maybe [PutFileEntry])
+createCommit_putFiles = Lens.lens (\CreateCommit' {putFiles} -> putFiles) (\s@CreateCommit' {} a -> s {putFiles = a} :: CreateCommit) Prelude.. Lens.mapping Lens.coerced
+
+-- | The file modes to update for files in this commit.
+createCommit_setFileModes :: Lens.Lens' CreateCommit (Prelude.Maybe [SetFileModeEntry])
+createCommit_setFileModes = Lens.lens (\CreateCommit' {setFileModes} -> setFileModes) (\s@CreateCommit' {} a -> s {setFileModes = a} :: CreateCommit) Prelude.. Lens.mapping Lens.coerced
+
+-- | The name of the repository where you create the commit.
+createCommit_repositoryName :: Lens.Lens' CreateCommit Prelude.Text
+createCommit_repositoryName = Lens.lens (\CreateCommit' {repositoryName} -> repositoryName) (\s@CreateCommit' {} a -> s {repositoryName = a} :: CreateCommit)
+
+-- | The name of the branch where you create the commit.
+createCommit_branchName :: Lens.Lens' CreateCommit Prelude.Text
+createCommit_branchName = Lens.lens (\CreateCommit' {branchName} -> branchName) (\s@CreateCommit' {} a -> s {branchName = a} :: CreateCommit)
+
+instance Core.AWSRequest CreateCommit where
+  type AWSResponse CreateCommit = CreateCommitResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateCommitResponse'
+            Prelude.<$> (x Data..?> "commitId")
+            Prelude.<*> (x Data..?> "filesAdded" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "filesDeleted" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "filesUpdated" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "treeId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateCommit where
+  hashWithSalt _salt CreateCommit' {..} =
+    _salt
+      `Prelude.hashWithSalt` authorName
+      `Prelude.hashWithSalt` commitMessage
+      `Prelude.hashWithSalt` deleteFiles
+      `Prelude.hashWithSalt` email
+      `Prelude.hashWithSalt` keepEmptyFolders
+      `Prelude.hashWithSalt` parentCommitId
+      `Prelude.hashWithSalt` putFiles
+      `Prelude.hashWithSalt` setFileModes
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` branchName
+
+instance Prelude.NFData CreateCommit where
+  rnf CreateCommit' {..} =
+    Prelude.rnf authorName
+      `Prelude.seq` Prelude.rnf commitMessage
+      `Prelude.seq` Prelude.rnf deleteFiles
+      `Prelude.seq` Prelude.rnf email
+      `Prelude.seq` Prelude.rnf keepEmptyFolders
+      `Prelude.seq` Prelude.rnf parentCommitId
+      `Prelude.seq` Prelude.rnf putFiles
+      `Prelude.seq` Prelude.rnf setFileModes
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf branchName
+
+instance Data.ToHeaders CreateCommit where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.CreateCommit" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateCommit where
+  toJSON CreateCommit' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("authorName" Data..=) Prelude.<$> authorName,
+            ("commitMessage" Data..=) Prelude.<$> commitMessage,
+            ("deleteFiles" Data..=) Prelude.<$> deleteFiles,
+            ("email" Data..=) Prelude.<$> email,
+            ("keepEmptyFolders" Data..=)
+              Prelude.<$> keepEmptyFolders,
+            ("parentCommitId" Data..=)
+              Prelude.<$> parentCommitId,
+            ("putFiles" Data..=) Prelude.<$> putFiles,
+            ("setFileModes" Data..=) Prelude.<$> setFileModes,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just ("branchName" Data..= branchName)
+          ]
+      )
+
+instance Data.ToPath CreateCommit where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateCommit where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateCommitResponse' smart constructor.
+data CreateCommitResponse = CreateCommitResponse'
+  { -- | The full commit ID of the commit that contains your committed file
+    -- changes.
+    commitId :: Prelude.Maybe Prelude.Text,
+    -- | The files added as part of the committed file changes.
+    filesAdded :: Prelude.Maybe [FileMetadata],
+    -- | The files deleted as part of the committed file changes.
+    filesDeleted :: Prelude.Maybe [FileMetadata],
+    -- | The files updated as part of the commited file changes.
+    filesUpdated :: Prelude.Maybe [FileMetadata],
+    -- | The full SHA-1 pointer of the tree information for the commit that
+    -- contains the commited file changes.
+    treeId :: 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 'CreateCommitResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commitId', 'createCommitResponse_commitId' - The full commit ID of the commit that contains your committed file
+-- changes.
+--
+-- 'filesAdded', 'createCommitResponse_filesAdded' - The files added as part of the committed file changes.
+--
+-- 'filesDeleted', 'createCommitResponse_filesDeleted' - The files deleted as part of the committed file changes.
+--
+-- 'filesUpdated', 'createCommitResponse_filesUpdated' - The files updated as part of the commited file changes.
+--
+-- 'treeId', 'createCommitResponse_treeId' - The full SHA-1 pointer of the tree information for the commit that
+-- contains the commited file changes.
+--
+-- 'httpStatus', 'createCommitResponse_httpStatus' - The response's http status code.
+newCreateCommitResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateCommitResponse
+newCreateCommitResponse pHttpStatus_ =
+  CreateCommitResponse'
+    { commitId = Prelude.Nothing,
+      filesAdded = Prelude.Nothing,
+      filesDeleted = Prelude.Nothing,
+      filesUpdated = Prelude.Nothing,
+      treeId = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The full commit ID of the commit that contains your committed file
+-- changes.
+createCommitResponse_commitId :: Lens.Lens' CreateCommitResponse (Prelude.Maybe Prelude.Text)
+createCommitResponse_commitId = Lens.lens (\CreateCommitResponse' {commitId} -> commitId) (\s@CreateCommitResponse' {} a -> s {commitId = a} :: CreateCommitResponse)
+
+-- | The files added as part of the committed file changes.
+createCommitResponse_filesAdded :: Lens.Lens' CreateCommitResponse (Prelude.Maybe [FileMetadata])
+createCommitResponse_filesAdded = Lens.lens (\CreateCommitResponse' {filesAdded} -> filesAdded) (\s@CreateCommitResponse' {} a -> s {filesAdded = a} :: CreateCommitResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The files deleted as part of the committed file changes.
+createCommitResponse_filesDeleted :: Lens.Lens' CreateCommitResponse (Prelude.Maybe [FileMetadata])
+createCommitResponse_filesDeleted = Lens.lens (\CreateCommitResponse' {filesDeleted} -> filesDeleted) (\s@CreateCommitResponse' {} a -> s {filesDeleted = a} :: CreateCommitResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The files updated as part of the commited file changes.
+createCommitResponse_filesUpdated :: Lens.Lens' CreateCommitResponse (Prelude.Maybe [FileMetadata])
+createCommitResponse_filesUpdated = Lens.lens (\CreateCommitResponse' {filesUpdated} -> filesUpdated) (\s@CreateCommitResponse' {} a -> s {filesUpdated = a} :: CreateCommitResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The full SHA-1 pointer of the tree information for the commit that
+-- contains the commited file changes.
+createCommitResponse_treeId :: Lens.Lens' CreateCommitResponse (Prelude.Maybe Prelude.Text)
+createCommitResponse_treeId = Lens.lens (\CreateCommitResponse' {treeId} -> treeId) (\s@CreateCommitResponse' {} a -> s {treeId = a} :: CreateCommitResponse)
+
+-- | The response's http status code.
+createCommitResponse_httpStatus :: Lens.Lens' CreateCommitResponse Prelude.Int
+createCommitResponse_httpStatus = Lens.lens (\CreateCommitResponse' {httpStatus} -> httpStatus) (\s@CreateCommitResponse' {} a -> s {httpStatus = a} :: CreateCommitResponse)
+
+instance Prelude.NFData CreateCommitResponse where
+  rnf CreateCommitResponse' {..} =
+    Prelude.rnf commitId
+      `Prelude.seq` Prelude.rnf filesAdded
+      `Prelude.seq` Prelude.rnf filesDeleted
+      `Prelude.seq` Prelude.rnf filesUpdated
+      `Prelude.seq` Prelude.rnf treeId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/CreatePullRequest.hs b/gen/Amazonka/CodeCommit/CreatePullRequest.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/CreatePullRequest.hs
@@ -0,0 +1,251 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.CreatePullRequest
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a pull request in the specified repository.
+module Amazonka.CodeCommit.CreatePullRequest
+  ( -- * Creating a Request
+    CreatePullRequest (..),
+    newCreatePullRequest,
+
+    -- * Request Lenses
+    createPullRequest_clientRequestToken,
+    createPullRequest_description,
+    createPullRequest_title,
+    createPullRequest_targets,
+
+    -- * Destructuring the Response
+    CreatePullRequestResponse (..),
+    newCreatePullRequestResponse,
+
+    -- * Response Lenses
+    createPullRequestResponse_httpStatus,
+    createPullRequestResponse_pullRequest,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newCreatePullRequest' smart constructor.
+data CreatePullRequest = CreatePullRequest'
+  { -- | A unique, client-generated idempotency token that, when provided in a
+    -- request, ensures the request cannot be repeated with a changed
+    -- parameter. If a request is received with the same parameters and a token
+    -- is included, the request returns information about the initial request
+    -- that used that token.
+    --
+    -- The AWS SDKs prepopulate client request tokens. If you are using an AWS
+    -- SDK, an idempotency token is created for you.
+    clientRequestToken :: Prelude.Maybe Prelude.Text,
+    -- | A description of the pull request.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The title of the pull request. This title is used to identify the pull
+    -- request to other users in the repository.
+    title :: Prelude.Text,
+    -- | The targets for the pull request, including the source of the code to be
+    -- reviewed (the source branch) and the destination where the creator of
+    -- the pull request intends the code to be merged after the pull request is
+    -- closed (the destination branch).
+    targets :: [Target]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreatePullRequest' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'clientRequestToken', 'createPullRequest_clientRequestToken' - A unique, client-generated idempotency token that, when provided in a
+-- request, ensures the request cannot be repeated with a changed
+-- parameter. If a request is received with the same parameters and a token
+-- is included, the request returns information about the initial request
+-- that used that token.
+--
+-- The AWS SDKs prepopulate client request tokens. If you are using an AWS
+-- SDK, an idempotency token is created for you.
+--
+-- 'description', 'createPullRequest_description' - A description of the pull request.
+--
+-- 'title', 'createPullRequest_title' - The title of the pull request. This title is used to identify the pull
+-- request to other users in the repository.
+--
+-- 'targets', 'createPullRequest_targets' - The targets for the pull request, including the source of the code to be
+-- reviewed (the source branch) and the destination where the creator of
+-- the pull request intends the code to be merged after the pull request is
+-- closed (the destination branch).
+newCreatePullRequest ::
+  -- | 'title'
+  Prelude.Text ->
+  CreatePullRequest
+newCreatePullRequest pTitle_ =
+  CreatePullRequest'
+    { clientRequestToken =
+        Prelude.Nothing,
+      description = Prelude.Nothing,
+      title = pTitle_,
+      targets = Prelude.mempty
+    }
+
+-- | A unique, client-generated idempotency token that, when provided in a
+-- request, ensures the request cannot be repeated with a changed
+-- parameter. If a request is received with the same parameters and a token
+-- is included, the request returns information about the initial request
+-- that used that token.
+--
+-- The AWS SDKs prepopulate client request tokens. If you are using an AWS
+-- SDK, an idempotency token is created for you.
+createPullRequest_clientRequestToken :: Lens.Lens' CreatePullRequest (Prelude.Maybe Prelude.Text)
+createPullRequest_clientRequestToken = Lens.lens (\CreatePullRequest' {clientRequestToken} -> clientRequestToken) (\s@CreatePullRequest' {} a -> s {clientRequestToken = a} :: CreatePullRequest)
+
+-- | A description of the pull request.
+createPullRequest_description :: Lens.Lens' CreatePullRequest (Prelude.Maybe Prelude.Text)
+createPullRequest_description = Lens.lens (\CreatePullRequest' {description} -> description) (\s@CreatePullRequest' {} a -> s {description = a} :: CreatePullRequest)
+
+-- | The title of the pull request. This title is used to identify the pull
+-- request to other users in the repository.
+createPullRequest_title :: Lens.Lens' CreatePullRequest Prelude.Text
+createPullRequest_title = Lens.lens (\CreatePullRequest' {title} -> title) (\s@CreatePullRequest' {} a -> s {title = a} :: CreatePullRequest)
+
+-- | The targets for the pull request, including the source of the code to be
+-- reviewed (the source branch) and the destination where the creator of
+-- the pull request intends the code to be merged after the pull request is
+-- closed (the destination branch).
+createPullRequest_targets :: Lens.Lens' CreatePullRequest [Target]
+createPullRequest_targets = Lens.lens (\CreatePullRequest' {targets} -> targets) (\s@CreatePullRequest' {} a -> s {targets = a} :: CreatePullRequest) Prelude.. Lens.coerced
+
+instance Core.AWSRequest CreatePullRequest where
+  type
+    AWSResponse CreatePullRequest =
+      CreatePullRequestResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreatePullRequestResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "pullRequest")
+      )
+
+instance Prelude.Hashable CreatePullRequest where
+  hashWithSalt _salt CreatePullRequest' {..} =
+    _salt
+      `Prelude.hashWithSalt` clientRequestToken
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` title
+      `Prelude.hashWithSalt` targets
+
+instance Prelude.NFData CreatePullRequest where
+  rnf CreatePullRequest' {..} =
+    Prelude.rnf clientRequestToken
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf title
+      `Prelude.seq` Prelude.rnf targets
+
+instance Data.ToHeaders CreatePullRequest where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.CreatePullRequest" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreatePullRequest where
+  toJSON CreatePullRequest' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("clientRequestToken" Data..=)
+              Prelude.<$> clientRequestToken,
+            ("description" Data..=) Prelude.<$> description,
+            Prelude.Just ("title" Data..= title),
+            Prelude.Just ("targets" Data..= targets)
+          ]
+      )
+
+instance Data.ToPath CreatePullRequest where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreatePullRequest where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreatePullRequestResponse' smart constructor.
+data CreatePullRequestResponse = CreatePullRequestResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | Information about the newly created pull request.
+    pullRequest :: PullRequest
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreatePullRequestResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'createPullRequestResponse_httpStatus' - The response's http status code.
+--
+-- 'pullRequest', 'createPullRequestResponse_pullRequest' - Information about the newly created pull request.
+newCreatePullRequestResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'pullRequest'
+  PullRequest ->
+  CreatePullRequestResponse
+newCreatePullRequestResponse
+  pHttpStatus_
+  pPullRequest_ =
+    CreatePullRequestResponse'
+      { httpStatus =
+          pHttpStatus_,
+        pullRequest = pPullRequest_
+      }
+
+-- | The response's http status code.
+createPullRequestResponse_httpStatus :: Lens.Lens' CreatePullRequestResponse Prelude.Int
+createPullRequestResponse_httpStatus = Lens.lens (\CreatePullRequestResponse' {httpStatus} -> httpStatus) (\s@CreatePullRequestResponse' {} a -> s {httpStatus = a} :: CreatePullRequestResponse)
+
+-- | Information about the newly created pull request.
+createPullRequestResponse_pullRequest :: Lens.Lens' CreatePullRequestResponse PullRequest
+createPullRequestResponse_pullRequest = Lens.lens (\CreatePullRequestResponse' {pullRequest} -> pullRequest) (\s@CreatePullRequestResponse' {} a -> s {pullRequest = a} :: CreatePullRequestResponse)
+
+instance Prelude.NFData CreatePullRequestResponse where
+  rnf CreatePullRequestResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf pullRequest
diff --git a/gen/Amazonka/CodeCommit/CreatePullRequestApprovalRule.hs b/gen/Amazonka/CodeCommit/CreatePullRequestApprovalRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/CreatePullRequestApprovalRule.hs
@@ -0,0 +1,325 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.CreatePullRequestApprovalRule
+-- 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 approval rule for a pull request.
+module Amazonka.CodeCommit.CreatePullRequestApprovalRule
+  ( -- * Creating a Request
+    CreatePullRequestApprovalRule (..),
+    newCreatePullRequestApprovalRule,
+
+    -- * Request Lenses
+    createPullRequestApprovalRule_pullRequestId,
+    createPullRequestApprovalRule_approvalRuleName,
+    createPullRequestApprovalRule_approvalRuleContent,
+
+    -- * Destructuring the Response
+    CreatePullRequestApprovalRuleResponse (..),
+    newCreatePullRequestApprovalRuleResponse,
+
+    -- * Response Lenses
+    createPullRequestApprovalRuleResponse_httpStatus,
+    createPullRequestApprovalRuleResponse_approvalRule,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newCreatePullRequestApprovalRule' smart constructor.
+data CreatePullRequestApprovalRule = CreatePullRequestApprovalRule'
+  { -- | The system-generated ID of the pull request for which you want to create
+    -- the approval rule.
+    pullRequestId :: Prelude.Text,
+    -- | The name for the approval rule.
+    approvalRuleName :: Prelude.Text,
+    -- | The content of the approval rule, including the number of approvals
+    -- needed and the structure of an approval pool defined for approvals, if
+    -- any. For more information about approval pools, see the AWS CodeCommit
+    -- User Guide.
+    --
+    -- When you create the content of the approval rule, you can specify
+    -- approvers in an approval pool in one of two ways:
+    --
+    -- -   __CodeCommitApprovers__: This option only requires an AWS account
+    --     and a resource. It can be used for both IAM users and federated
+    --     access users whose name matches the provided resource name. This is
+    --     a very powerful option that offers a great deal of flexibility. For
+    --     example, if you specify the AWS account /123456789012/ and
+    --     /Mary_Major/, all of the following would be counted as approvals
+    --     coming from that user:
+    --
+    --     -   An IAM user in the account
+    --         (arn:aws:iam::/123456789012/:user\//Mary_Major/)
+    --
+    --     -   A federated user identified in IAM as Mary_Major
+    --         (arn:aws:sts::/123456789012/:federated-user\//Mary_Major/)
+    --
+    --     This option does not recognize an active session of someone assuming
+    --     the role of CodeCommitReview with a role session name of
+    --     /Mary_Major/
+    --     (arn:aws:sts::/123456789012/:assumed-role\/CodeCommitReview\//Mary_Major/)
+    --     unless you include a wildcard (*Mary_Major).
+    --
+    -- -   __Fully qualified ARN__: This option allows you to specify the fully
+    --     qualified Amazon Resource Name (ARN) of the IAM user or role.
+    --
+    -- For more information about IAM ARNs, wildcards, and formats, see
+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
+    -- in the /IAM User Guide/.
+    approvalRuleContent :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreatePullRequestApprovalRule' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequestId', 'createPullRequestApprovalRule_pullRequestId' - The system-generated ID of the pull request for which you want to create
+-- the approval rule.
+--
+-- 'approvalRuleName', 'createPullRequestApprovalRule_approvalRuleName' - The name for the approval rule.
+--
+-- 'approvalRuleContent', 'createPullRequestApprovalRule_approvalRuleContent' - The content of the approval rule, including the number of approvals
+-- needed and the structure of an approval pool defined for approvals, if
+-- any. For more information about approval pools, see the AWS CodeCommit
+-- User Guide.
+--
+-- When you create the content of the approval rule, you can specify
+-- approvers in an approval pool in one of two ways:
+--
+-- -   __CodeCommitApprovers__: This option only requires an AWS account
+--     and a resource. It can be used for both IAM users and federated
+--     access users whose name matches the provided resource name. This is
+--     a very powerful option that offers a great deal of flexibility. For
+--     example, if you specify the AWS account /123456789012/ and
+--     /Mary_Major/, all of the following would be counted as approvals
+--     coming from that user:
+--
+--     -   An IAM user in the account
+--         (arn:aws:iam::/123456789012/:user\//Mary_Major/)
+--
+--     -   A federated user identified in IAM as Mary_Major
+--         (arn:aws:sts::/123456789012/:federated-user\//Mary_Major/)
+--
+--     This option does not recognize an active session of someone assuming
+--     the role of CodeCommitReview with a role session name of
+--     /Mary_Major/
+--     (arn:aws:sts::/123456789012/:assumed-role\/CodeCommitReview\//Mary_Major/)
+--     unless you include a wildcard (*Mary_Major).
+--
+-- -   __Fully qualified ARN__: This option allows you to specify the fully
+--     qualified Amazon Resource Name (ARN) of the IAM user or role.
+--
+-- For more information about IAM ARNs, wildcards, and formats, see
+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
+-- in the /IAM User Guide/.
+newCreatePullRequestApprovalRule ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'approvalRuleName'
+  Prelude.Text ->
+  -- | 'approvalRuleContent'
+  Prelude.Text ->
+  CreatePullRequestApprovalRule
+newCreatePullRequestApprovalRule
+  pPullRequestId_
+  pApprovalRuleName_
+  pApprovalRuleContent_ =
+    CreatePullRequestApprovalRule'
+      { pullRequestId =
+          pPullRequestId_,
+        approvalRuleName = pApprovalRuleName_,
+        approvalRuleContent = pApprovalRuleContent_
+      }
+
+-- | The system-generated ID of the pull request for which you want to create
+-- the approval rule.
+createPullRequestApprovalRule_pullRequestId :: Lens.Lens' CreatePullRequestApprovalRule Prelude.Text
+createPullRequestApprovalRule_pullRequestId = Lens.lens (\CreatePullRequestApprovalRule' {pullRequestId} -> pullRequestId) (\s@CreatePullRequestApprovalRule' {} a -> s {pullRequestId = a} :: CreatePullRequestApprovalRule)
+
+-- | The name for the approval rule.
+createPullRequestApprovalRule_approvalRuleName :: Lens.Lens' CreatePullRequestApprovalRule Prelude.Text
+createPullRequestApprovalRule_approvalRuleName = Lens.lens (\CreatePullRequestApprovalRule' {approvalRuleName} -> approvalRuleName) (\s@CreatePullRequestApprovalRule' {} a -> s {approvalRuleName = a} :: CreatePullRequestApprovalRule)
+
+-- | The content of the approval rule, including the number of approvals
+-- needed and the structure of an approval pool defined for approvals, if
+-- any. For more information about approval pools, see the AWS CodeCommit
+-- User Guide.
+--
+-- When you create the content of the approval rule, you can specify
+-- approvers in an approval pool in one of two ways:
+--
+-- -   __CodeCommitApprovers__: This option only requires an AWS account
+--     and a resource. It can be used for both IAM users and federated
+--     access users whose name matches the provided resource name. This is
+--     a very powerful option that offers a great deal of flexibility. For
+--     example, if you specify the AWS account /123456789012/ and
+--     /Mary_Major/, all of the following would be counted as approvals
+--     coming from that user:
+--
+--     -   An IAM user in the account
+--         (arn:aws:iam::/123456789012/:user\//Mary_Major/)
+--
+--     -   A federated user identified in IAM as Mary_Major
+--         (arn:aws:sts::/123456789012/:federated-user\//Mary_Major/)
+--
+--     This option does not recognize an active session of someone assuming
+--     the role of CodeCommitReview with a role session name of
+--     /Mary_Major/
+--     (arn:aws:sts::/123456789012/:assumed-role\/CodeCommitReview\//Mary_Major/)
+--     unless you include a wildcard (*Mary_Major).
+--
+-- -   __Fully qualified ARN__: This option allows you to specify the fully
+--     qualified Amazon Resource Name (ARN) of the IAM user or role.
+--
+-- For more information about IAM ARNs, wildcards, and formats, see
+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
+-- in the /IAM User Guide/.
+createPullRequestApprovalRule_approvalRuleContent :: Lens.Lens' CreatePullRequestApprovalRule Prelude.Text
+createPullRequestApprovalRule_approvalRuleContent = Lens.lens (\CreatePullRequestApprovalRule' {approvalRuleContent} -> approvalRuleContent) (\s@CreatePullRequestApprovalRule' {} a -> s {approvalRuleContent = a} :: CreatePullRequestApprovalRule)
+
+instance
+  Core.AWSRequest
+    CreatePullRequestApprovalRule
+  where
+  type
+    AWSResponse CreatePullRequestApprovalRule =
+      CreatePullRequestApprovalRuleResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreatePullRequestApprovalRuleResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "approvalRule")
+      )
+
+instance
+  Prelude.Hashable
+    CreatePullRequestApprovalRule
+  where
+  hashWithSalt _salt CreatePullRequestApprovalRule' {..} =
+    _salt
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` approvalRuleName
+      `Prelude.hashWithSalt` approvalRuleContent
+
+instance Prelude.NFData CreatePullRequestApprovalRule where
+  rnf CreatePullRequestApprovalRule' {..} =
+    Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf approvalRuleName
+      `Prelude.seq` Prelude.rnf approvalRuleContent
+
+instance Data.ToHeaders CreatePullRequestApprovalRule where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.CreatePullRequestApprovalRule" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreatePullRequestApprovalRule where
+  toJSON CreatePullRequestApprovalRule' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just
+              ("approvalRuleName" Data..= approvalRuleName),
+            Prelude.Just
+              ("approvalRuleContent" Data..= approvalRuleContent)
+          ]
+      )
+
+instance Data.ToPath CreatePullRequestApprovalRule where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreatePullRequestApprovalRule where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreatePullRequestApprovalRuleResponse' smart constructor.
+data CreatePullRequestApprovalRuleResponse = CreatePullRequestApprovalRuleResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | Information about the created approval rule.
+    approvalRule :: ApprovalRule
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreatePullRequestApprovalRuleResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'createPullRequestApprovalRuleResponse_httpStatus' - The response's http status code.
+--
+-- 'approvalRule', 'createPullRequestApprovalRuleResponse_approvalRule' - Information about the created approval rule.
+newCreatePullRequestApprovalRuleResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'approvalRule'
+  ApprovalRule ->
+  CreatePullRequestApprovalRuleResponse
+newCreatePullRequestApprovalRuleResponse
+  pHttpStatus_
+  pApprovalRule_ =
+    CreatePullRequestApprovalRuleResponse'
+      { httpStatus =
+          pHttpStatus_,
+        approvalRule = pApprovalRule_
+      }
+
+-- | The response's http status code.
+createPullRequestApprovalRuleResponse_httpStatus :: Lens.Lens' CreatePullRequestApprovalRuleResponse Prelude.Int
+createPullRequestApprovalRuleResponse_httpStatus = Lens.lens (\CreatePullRequestApprovalRuleResponse' {httpStatus} -> httpStatus) (\s@CreatePullRequestApprovalRuleResponse' {} a -> s {httpStatus = a} :: CreatePullRequestApprovalRuleResponse)
+
+-- | Information about the created approval rule.
+createPullRequestApprovalRuleResponse_approvalRule :: Lens.Lens' CreatePullRequestApprovalRuleResponse ApprovalRule
+createPullRequestApprovalRuleResponse_approvalRule = Lens.lens (\CreatePullRequestApprovalRuleResponse' {approvalRule} -> approvalRule) (\s@CreatePullRequestApprovalRuleResponse' {} a -> s {approvalRule = a} :: CreatePullRequestApprovalRuleResponse)
+
+instance
+  Prelude.NFData
+    CreatePullRequestApprovalRuleResponse
+  where
+  rnf CreatePullRequestApprovalRuleResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf approvalRule
diff --git a/gen/Amazonka/CodeCommit/CreateRepository.hs b/gen/Amazonka/CodeCommit/CreateRepository.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/CreateRepository.hs
@@ -0,0 +1,248 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.CreateRepository
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new, empty repository.
+module Amazonka.CodeCommit.CreateRepository
+  ( -- * Creating a Request
+    CreateRepository (..),
+    newCreateRepository,
+
+    -- * Request Lenses
+    createRepository_repositoryDescription,
+    createRepository_tags,
+    createRepository_repositoryName,
+
+    -- * Destructuring the Response
+    CreateRepositoryResponse (..),
+    newCreateRepositoryResponse,
+
+    -- * Response Lenses
+    createRepositoryResponse_repositoryMetadata,
+    createRepositoryResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a create repository operation.
+--
+-- /See:/ 'newCreateRepository' smart constructor.
+data CreateRepository = CreateRepository'
+  { -- | A comment or description about the new repository.
+    --
+    -- The description field for a repository accepts all HTML characters and
+    -- all valid Unicode characters. Applications that do not HTML-encode the
+    -- description and display it in a webpage can expose users to potentially
+    -- malicious code. Make sure that you HTML-encode the description field in
+    -- any application that uses this API to display the repository description
+    -- on a webpage.
+    repositoryDescription :: Prelude.Maybe Prelude.Text,
+    -- | One or more tag key-value pairs to use when tagging this repository.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | The name of the new repository to be created.
+    --
+    -- The repository name must be unique across the calling AWS account.
+    -- Repository names are limited to 100 alphanumeric, dash, and underscore
+    -- characters, and cannot include certain characters. For more information
+    -- about the limits on repository names, see
+    -- <https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html Limits>
+    -- in the /AWS CodeCommit User Guide/. The suffix .git is prohibited.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateRepository' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryDescription', 'createRepository_repositoryDescription' - A comment or description about the new repository.
+--
+-- The description field for a repository accepts all HTML characters and
+-- all valid Unicode characters. Applications that do not HTML-encode the
+-- description and display it in a webpage can expose users to potentially
+-- malicious code. Make sure that you HTML-encode the description field in
+-- any application that uses this API to display the repository description
+-- on a webpage.
+--
+-- 'tags', 'createRepository_tags' - One or more tag key-value pairs to use when tagging this repository.
+--
+-- 'repositoryName', 'createRepository_repositoryName' - The name of the new repository to be created.
+--
+-- The repository name must be unique across the calling AWS account.
+-- Repository names are limited to 100 alphanumeric, dash, and underscore
+-- characters, and cannot include certain characters. For more information
+-- about the limits on repository names, see
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html Limits>
+-- in the /AWS CodeCommit User Guide/. The suffix .git is prohibited.
+newCreateRepository ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  CreateRepository
+newCreateRepository pRepositoryName_ =
+  CreateRepository'
+    { repositoryDescription =
+        Prelude.Nothing,
+      tags = Prelude.Nothing,
+      repositoryName = pRepositoryName_
+    }
+
+-- | A comment or description about the new repository.
+--
+-- The description field for a repository accepts all HTML characters and
+-- all valid Unicode characters. Applications that do not HTML-encode the
+-- description and display it in a webpage can expose users to potentially
+-- malicious code. Make sure that you HTML-encode the description field in
+-- any application that uses this API to display the repository description
+-- on a webpage.
+createRepository_repositoryDescription :: Lens.Lens' CreateRepository (Prelude.Maybe Prelude.Text)
+createRepository_repositoryDescription = Lens.lens (\CreateRepository' {repositoryDescription} -> repositoryDescription) (\s@CreateRepository' {} a -> s {repositoryDescription = a} :: CreateRepository)
+
+-- | One or more tag key-value pairs to use when tagging this repository.
+createRepository_tags :: Lens.Lens' CreateRepository (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+createRepository_tags = Lens.lens (\CreateRepository' {tags} -> tags) (\s@CreateRepository' {} a -> s {tags = a} :: CreateRepository) Prelude.. Lens.mapping Lens.coerced
+
+-- | The name of the new repository to be created.
+--
+-- The repository name must be unique across the calling AWS account.
+-- Repository names are limited to 100 alphanumeric, dash, and underscore
+-- characters, and cannot include certain characters. For more information
+-- about the limits on repository names, see
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html Limits>
+-- in the /AWS CodeCommit User Guide/. The suffix .git is prohibited.
+createRepository_repositoryName :: Lens.Lens' CreateRepository Prelude.Text
+createRepository_repositoryName = Lens.lens (\CreateRepository' {repositoryName} -> repositoryName) (\s@CreateRepository' {} a -> s {repositoryName = a} :: CreateRepository)
+
+instance Core.AWSRequest CreateRepository where
+  type
+    AWSResponse CreateRepository =
+      CreateRepositoryResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateRepositoryResponse'
+            Prelude.<$> (x Data..?> "repositoryMetadata")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateRepository where
+  hashWithSalt _salt CreateRepository' {..} =
+    _salt
+      `Prelude.hashWithSalt` repositoryDescription
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData CreateRepository where
+  rnf CreateRepository' {..} =
+    Prelude.rnf repositoryDescription
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf repositoryName
+
+instance Data.ToHeaders CreateRepository where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.CreateRepository" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateRepository where
+  toJSON CreateRepository' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("repositoryDescription" Data..=)
+              Prelude.<$> repositoryDescription,
+            ("tags" Data..=) Prelude.<$> tags,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName)
+          ]
+      )
+
+instance Data.ToPath CreateRepository where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateRepository where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a create repository operation.
+--
+-- /See:/ 'newCreateRepositoryResponse' smart constructor.
+data CreateRepositoryResponse = CreateRepositoryResponse'
+  { -- | Information about the newly created repository.
+    repositoryMetadata :: Prelude.Maybe RepositoryMetadata,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateRepositoryResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryMetadata', 'createRepositoryResponse_repositoryMetadata' - Information about the newly created repository.
+--
+-- 'httpStatus', 'createRepositoryResponse_httpStatus' - The response's http status code.
+newCreateRepositoryResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateRepositoryResponse
+newCreateRepositoryResponse pHttpStatus_ =
+  CreateRepositoryResponse'
+    { repositoryMetadata =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about the newly created repository.
+createRepositoryResponse_repositoryMetadata :: Lens.Lens' CreateRepositoryResponse (Prelude.Maybe RepositoryMetadata)
+createRepositoryResponse_repositoryMetadata = Lens.lens (\CreateRepositoryResponse' {repositoryMetadata} -> repositoryMetadata) (\s@CreateRepositoryResponse' {} a -> s {repositoryMetadata = a} :: CreateRepositoryResponse)
+
+-- | The response's http status code.
+createRepositoryResponse_httpStatus :: Lens.Lens' CreateRepositoryResponse Prelude.Int
+createRepositoryResponse_httpStatus = Lens.lens (\CreateRepositoryResponse' {httpStatus} -> httpStatus) (\s@CreateRepositoryResponse' {} a -> s {httpStatus = a} :: CreateRepositoryResponse)
+
+instance Prelude.NFData CreateRepositoryResponse where
+  rnf CreateRepositoryResponse' {..} =
+    Prelude.rnf repositoryMetadata
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/CreateUnreferencedMergeCommit.hs b/gen/Amazonka/CodeCommit/CreateUnreferencedMergeCommit.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/CreateUnreferencedMergeCommit.hs
@@ -0,0 +1,404 @@
+{-# 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.CodeCommit.CreateUnreferencedMergeCommit
+-- 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 unreferenced commit that represents the result of merging two
+-- branches using a specified merge strategy. This can help you determine
+-- the outcome of a potential merge. This API cannot be used with the
+-- fast-forward merge strategy because that strategy does not create a
+-- merge commit.
+--
+-- This unreferenced merge commit can only be accessed using the GetCommit
+-- API or through git commands such as git fetch. To retrieve this commit,
+-- you must specify its commit ID or otherwise reference it.
+module Amazonka.CodeCommit.CreateUnreferencedMergeCommit
+  ( -- * Creating a Request
+    CreateUnreferencedMergeCommit (..),
+    newCreateUnreferencedMergeCommit,
+
+    -- * Request Lenses
+    createUnreferencedMergeCommit_authorName,
+    createUnreferencedMergeCommit_commitMessage,
+    createUnreferencedMergeCommit_conflictDetailLevel,
+    createUnreferencedMergeCommit_conflictResolution,
+    createUnreferencedMergeCommit_conflictResolutionStrategy,
+    createUnreferencedMergeCommit_email,
+    createUnreferencedMergeCommit_keepEmptyFolders,
+    createUnreferencedMergeCommit_repositoryName,
+    createUnreferencedMergeCommit_sourceCommitSpecifier,
+    createUnreferencedMergeCommit_destinationCommitSpecifier,
+    createUnreferencedMergeCommit_mergeOption,
+
+    -- * Destructuring the Response
+    CreateUnreferencedMergeCommitResponse (..),
+    newCreateUnreferencedMergeCommitResponse,
+
+    -- * Response Lenses
+    createUnreferencedMergeCommitResponse_commitId,
+    createUnreferencedMergeCommitResponse_treeId,
+    createUnreferencedMergeCommitResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newCreateUnreferencedMergeCommit' smart constructor.
+data CreateUnreferencedMergeCommit = CreateUnreferencedMergeCommit'
+  { -- | The name of the author who created the unreferenced commit. This
+    -- information is used as both the author and committer for the commit.
+    authorName :: Prelude.Maybe Prelude.Text,
+    -- | The commit message for the unreferenced commit.
+    commitMessage :: Prelude.Maybe Prelude.Text,
+    -- | The level of conflict detail to use. If unspecified, the default
+    -- FILE_LEVEL is used, which returns a not-mergeable result if the same
+    -- file has differences in both branches. If LINE_LEVEL is specified, a
+    -- conflict is considered not mergeable if the same file in both branches
+    -- has differences on the same line.
+    conflictDetailLevel :: Prelude.Maybe ConflictDetailLevelTypeEnum,
+    -- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+    -- use when resolving conflicts during a merge.
+    conflictResolution :: Prelude.Maybe ConflictResolution,
+    -- | Specifies which branch to use when resolving conflicts, or whether to
+    -- attempt automatically merging two versions of a file. The default is
+    -- NONE, which requires any conflicts to be resolved manually before the
+    -- merge operation is successful.
+    conflictResolutionStrategy :: Prelude.Maybe ConflictResolutionStrategyTypeEnum,
+    -- | The email address for the person who created the unreferenced commit.
+    email :: Prelude.Maybe Prelude.Text,
+    -- | If the commit contains deletions, whether to keep a folder or folder
+    -- structure if the changes leave the folders empty. If this is specified
+    -- as true, a .gitkeep file is created for empty folders. The default is
+    -- false.
+    keepEmptyFolders :: Prelude.Maybe Prelude.Bool,
+    -- | The name of the repository where you want to create the unreferenced
+    -- merge commit.
+    repositoryName :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    sourceCommitSpecifier :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    destinationCommitSpecifier :: Prelude.Text,
+    -- | The merge option or strategy you want to use to merge the code.
+    mergeOption :: MergeOptionTypeEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateUnreferencedMergeCommit' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authorName', 'createUnreferencedMergeCommit_authorName' - The name of the author who created the unreferenced commit. This
+-- information is used as both the author and committer for the commit.
+--
+-- 'commitMessage', 'createUnreferencedMergeCommit_commitMessage' - The commit message for the unreferenced commit.
+--
+-- 'conflictDetailLevel', 'createUnreferencedMergeCommit_conflictDetailLevel' - The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+--
+-- 'conflictResolution', 'createUnreferencedMergeCommit_conflictResolution' - If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+-- use when resolving conflicts during a merge.
+--
+-- 'conflictResolutionStrategy', 'createUnreferencedMergeCommit_conflictResolutionStrategy' - Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+--
+-- 'email', 'createUnreferencedMergeCommit_email' - The email address for the person who created the unreferenced commit.
+--
+-- 'keepEmptyFolders', 'createUnreferencedMergeCommit_keepEmptyFolders' - If the commit contains deletions, whether to keep a folder or folder
+-- structure if the changes leave the folders empty. If this is specified
+-- as true, a .gitkeep file is created for empty folders. The default is
+-- false.
+--
+-- 'repositoryName', 'createUnreferencedMergeCommit_repositoryName' - The name of the repository where you want to create the unreferenced
+-- merge commit.
+--
+-- 'sourceCommitSpecifier', 'createUnreferencedMergeCommit_sourceCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'destinationCommitSpecifier', 'createUnreferencedMergeCommit_destinationCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'mergeOption', 'createUnreferencedMergeCommit_mergeOption' - The merge option or strategy you want to use to merge the code.
+newCreateUnreferencedMergeCommit ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'sourceCommitSpecifier'
+  Prelude.Text ->
+  -- | 'destinationCommitSpecifier'
+  Prelude.Text ->
+  -- | 'mergeOption'
+  MergeOptionTypeEnum ->
+  CreateUnreferencedMergeCommit
+newCreateUnreferencedMergeCommit
+  pRepositoryName_
+  pSourceCommitSpecifier_
+  pDestinationCommitSpecifier_
+  pMergeOption_ =
+    CreateUnreferencedMergeCommit'
+      { authorName =
+          Prelude.Nothing,
+        commitMessage = Prelude.Nothing,
+        conflictDetailLevel = Prelude.Nothing,
+        conflictResolution = Prelude.Nothing,
+        conflictResolutionStrategy = Prelude.Nothing,
+        email = Prelude.Nothing,
+        keepEmptyFolders = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        sourceCommitSpecifier =
+          pSourceCommitSpecifier_,
+        destinationCommitSpecifier =
+          pDestinationCommitSpecifier_,
+        mergeOption = pMergeOption_
+      }
+
+-- | The name of the author who created the unreferenced commit. This
+-- information is used as both the author and committer for the commit.
+createUnreferencedMergeCommit_authorName :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe Prelude.Text)
+createUnreferencedMergeCommit_authorName = Lens.lens (\CreateUnreferencedMergeCommit' {authorName} -> authorName) (\s@CreateUnreferencedMergeCommit' {} a -> s {authorName = a} :: CreateUnreferencedMergeCommit)
+
+-- | The commit message for the unreferenced commit.
+createUnreferencedMergeCommit_commitMessage :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe Prelude.Text)
+createUnreferencedMergeCommit_commitMessage = Lens.lens (\CreateUnreferencedMergeCommit' {commitMessage} -> commitMessage) (\s@CreateUnreferencedMergeCommit' {} a -> s {commitMessage = a} :: CreateUnreferencedMergeCommit)
+
+-- | The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+createUnreferencedMergeCommit_conflictDetailLevel :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe ConflictDetailLevelTypeEnum)
+createUnreferencedMergeCommit_conflictDetailLevel = Lens.lens (\CreateUnreferencedMergeCommit' {conflictDetailLevel} -> conflictDetailLevel) (\s@CreateUnreferencedMergeCommit' {} a -> s {conflictDetailLevel = a} :: CreateUnreferencedMergeCommit)
+
+-- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+-- use when resolving conflicts during a merge.
+createUnreferencedMergeCommit_conflictResolution :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe ConflictResolution)
+createUnreferencedMergeCommit_conflictResolution = Lens.lens (\CreateUnreferencedMergeCommit' {conflictResolution} -> conflictResolution) (\s@CreateUnreferencedMergeCommit' {} a -> s {conflictResolution = a} :: CreateUnreferencedMergeCommit)
+
+-- | Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+createUnreferencedMergeCommit_conflictResolutionStrategy :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe ConflictResolutionStrategyTypeEnum)
+createUnreferencedMergeCommit_conflictResolutionStrategy = Lens.lens (\CreateUnreferencedMergeCommit' {conflictResolutionStrategy} -> conflictResolutionStrategy) (\s@CreateUnreferencedMergeCommit' {} a -> s {conflictResolutionStrategy = a} :: CreateUnreferencedMergeCommit)
+
+-- | The email address for the person who created the unreferenced commit.
+createUnreferencedMergeCommit_email :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe Prelude.Text)
+createUnreferencedMergeCommit_email = Lens.lens (\CreateUnreferencedMergeCommit' {email} -> email) (\s@CreateUnreferencedMergeCommit' {} a -> s {email = a} :: CreateUnreferencedMergeCommit)
+
+-- | If the commit contains deletions, whether to keep a folder or folder
+-- structure if the changes leave the folders empty. If this is specified
+-- as true, a .gitkeep file is created for empty folders. The default is
+-- false.
+createUnreferencedMergeCommit_keepEmptyFolders :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe Prelude.Bool)
+createUnreferencedMergeCommit_keepEmptyFolders = Lens.lens (\CreateUnreferencedMergeCommit' {keepEmptyFolders} -> keepEmptyFolders) (\s@CreateUnreferencedMergeCommit' {} a -> s {keepEmptyFolders = a} :: CreateUnreferencedMergeCommit)
+
+-- | The name of the repository where you want to create the unreferenced
+-- merge commit.
+createUnreferencedMergeCommit_repositoryName :: Lens.Lens' CreateUnreferencedMergeCommit Prelude.Text
+createUnreferencedMergeCommit_repositoryName = Lens.lens (\CreateUnreferencedMergeCommit' {repositoryName} -> repositoryName) (\s@CreateUnreferencedMergeCommit' {} a -> s {repositoryName = a} :: CreateUnreferencedMergeCommit)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+createUnreferencedMergeCommit_sourceCommitSpecifier :: Lens.Lens' CreateUnreferencedMergeCommit Prelude.Text
+createUnreferencedMergeCommit_sourceCommitSpecifier = Lens.lens (\CreateUnreferencedMergeCommit' {sourceCommitSpecifier} -> sourceCommitSpecifier) (\s@CreateUnreferencedMergeCommit' {} a -> s {sourceCommitSpecifier = a} :: CreateUnreferencedMergeCommit)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+createUnreferencedMergeCommit_destinationCommitSpecifier :: Lens.Lens' CreateUnreferencedMergeCommit Prelude.Text
+createUnreferencedMergeCommit_destinationCommitSpecifier = Lens.lens (\CreateUnreferencedMergeCommit' {destinationCommitSpecifier} -> destinationCommitSpecifier) (\s@CreateUnreferencedMergeCommit' {} a -> s {destinationCommitSpecifier = a} :: CreateUnreferencedMergeCommit)
+
+-- | The merge option or strategy you want to use to merge the code.
+createUnreferencedMergeCommit_mergeOption :: Lens.Lens' CreateUnreferencedMergeCommit MergeOptionTypeEnum
+createUnreferencedMergeCommit_mergeOption = Lens.lens (\CreateUnreferencedMergeCommit' {mergeOption} -> mergeOption) (\s@CreateUnreferencedMergeCommit' {} a -> s {mergeOption = a} :: CreateUnreferencedMergeCommit)
+
+instance
+  Core.AWSRequest
+    CreateUnreferencedMergeCommit
+  where
+  type
+    AWSResponse CreateUnreferencedMergeCommit =
+      CreateUnreferencedMergeCommitResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateUnreferencedMergeCommitResponse'
+            Prelude.<$> (x Data..?> "commitId")
+            Prelude.<*> (x Data..?> "treeId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    CreateUnreferencedMergeCommit
+  where
+  hashWithSalt _salt CreateUnreferencedMergeCommit' {..} =
+    _salt
+      `Prelude.hashWithSalt` authorName
+      `Prelude.hashWithSalt` commitMessage
+      `Prelude.hashWithSalt` conflictDetailLevel
+      `Prelude.hashWithSalt` conflictResolution
+      `Prelude.hashWithSalt` conflictResolutionStrategy
+      `Prelude.hashWithSalt` email
+      `Prelude.hashWithSalt` keepEmptyFolders
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` sourceCommitSpecifier
+      `Prelude.hashWithSalt` destinationCommitSpecifier
+      `Prelude.hashWithSalt` mergeOption
+
+instance Prelude.NFData CreateUnreferencedMergeCommit where
+  rnf CreateUnreferencedMergeCommit' {..} =
+    Prelude.rnf authorName
+      `Prelude.seq` Prelude.rnf commitMessage
+      `Prelude.seq` Prelude.rnf conflictDetailLevel
+      `Prelude.seq` Prelude.rnf conflictResolution
+      `Prelude.seq` Prelude.rnf conflictResolutionStrategy
+      `Prelude.seq` Prelude.rnf email
+      `Prelude.seq` Prelude.rnf keepEmptyFolders
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf sourceCommitSpecifier
+      `Prelude.seq` Prelude.rnf destinationCommitSpecifier
+      `Prelude.seq` Prelude.rnf mergeOption
+
+instance Data.ToHeaders CreateUnreferencedMergeCommit where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.CreateUnreferencedMergeCommit" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateUnreferencedMergeCommit where
+  toJSON CreateUnreferencedMergeCommit' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("authorName" Data..=) Prelude.<$> authorName,
+            ("commitMessage" Data..=) Prelude.<$> commitMessage,
+            ("conflictDetailLevel" Data..=)
+              Prelude.<$> conflictDetailLevel,
+            ("conflictResolution" Data..=)
+              Prelude.<$> conflictResolution,
+            ("conflictResolutionStrategy" Data..=)
+              Prelude.<$> conflictResolutionStrategy,
+            ("email" Data..=) Prelude.<$> email,
+            ("keepEmptyFolders" Data..=)
+              Prelude.<$> keepEmptyFolders,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ( "sourceCommitSpecifier"
+                  Data..= sourceCommitSpecifier
+              ),
+            Prelude.Just
+              ( "destinationCommitSpecifier"
+                  Data..= destinationCommitSpecifier
+              ),
+            Prelude.Just ("mergeOption" Data..= mergeOption)
+          ]
+      )
+
+instance Data.ToPath CreateUnreferencedMergeCommit where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery CreateUnreferencedMergeCommit where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateUnreferencedMergeCommitResponse' smart constructor.
+data CreateUnreferencedMergeCommitResponse = CreateUnreferencedMergeCommitResponse'
+  { -- | The full commit ID of the commit that contains your merge results.
+    commitId :: Prelude.Maybe Prelude.Text,
+    -- | The full SHA-1 pointer of the tree information for the commit that
+    -- contains the merge results.
+    treeId :: 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 'CreateUnreferencedMergeCommitResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commitId', 'createUnreferencedMergeCommitResponse_commitId' - The full commit ID of the commit that contains your merge results.
+--
+-- 'treeId', 'createUnreferencedMergeCommitResponse_treeId' - The full SHA-1 pointer of the tree information for the commit that
+-- contains the merge results.
+--
+-- 'httpStatus', 'createUnreferencedMergeCommitResponse_httpStatus' - The response's http status code.
+newCreateUnreferencedMergeCommitResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateUnreferencedMergeCommitResponse
+newCreateUnreferencedMergeCommitResponse pHttpStatus_ =
+  CreateUnreferencedMergeCommitResponse'
+    { commitId =
+        Prelude.Nothing,
+      treeId = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The full commit ID of the commit that contains your merge results.
+createUnreferencedMergeCommitResponse_commitId :: Lens.Lens' CreateUnreferencedMergeCommitResponse (Prelude.Maybe Prelude.Text)
+createUnreferencedMergeCommitResponse_commitId = Lens.lens (\CreateUnreferencedMergeCommitResponse' {commitId} -> commitId) (\s@CreateUnreferencedMergeCommitResponse' {} a -> s {commitId = a} :: CreateUnreferencedMergeCommitResponse)
+
+-- | The full SHA-1 pointer of the tree information for the commit that
+-- contains the merge results.
+createUnreferencedMergeCommitResponse_treeId :: Lens.Lens' CreateUnreferencedMergeCommitResponse (Prelude.Maybe Prelude.Text)
+createUnreferencedMergeCommitResponse_treeId = Lens.lens (\CreateUnreferencedMergeCommitResponse' {treeId} -> treeId) (\s@CreateUnreferencedMergeCommitResponse' {} a -> s {treeId = a} :: CreateUnreferencedMergeCommitResponse)
+
+-- | The response's http status code.
+createUnreferencedMergeCommitResponse_httpStatus :: Lens.Lens' CreateUnreferencedMergeCommitResponse Prelude.Int
+createUnreferencedMergeCommitResponse_httpStatus = Lens.lens (\CreateUnreferencedMergeCommitResponse' {httpStatus} -> httpStatus) (\s@CreateUnreferencedMergeCommitResponse' {} a -> s {httpStatus = a} :: CreateUnreferencedMergeCommitResponse)
+
+instance
+  Prelude.NFData
+    CreateUnreferencedMergeCommitResponse
+  where
+  rnf CreateUnreferencedMergeCommitResponse' {..} =
+    Prelude.rnf commitId
+      `Prelude.seq` Prelude.rnf treeId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/DeleteApprovalRuleTemplate.hs b/gen/Amazonka/CodeCommit/DeleteApprovalRuleTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/DeleteApprovalRuleTemplate.hs
@@ -0,0 +1,191 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.DeleteApprovalRuleTemplate
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a specified approval rule template. Deleting a template does not
+-- remove approval rules on pull requests already created with the
+-- template.
+module Amazonka.CodeCommit.DeleteApprovalRuleTemplate
+  ( -- * Creating a Request
+    DeleteApprovalRuleTemplate (..),
+    newDeleteApprovalRuleTemplate,
+
+    -- * Request Lenses
+    deleteApprovalRuleTemplate_approvalRuleTemplateName,
+
+    -- * Destructuring the Response
+    DeleteApprovalRuleTemplateResponse (..),
+    newDeleteApprovalRuleTemplateResponse,
+
+    -- * Response Lenses
+    deleteApprovalRuleTemplateResponse_httpStatus,
+    deleteApprovalRuleTemplateResponse_approvalRuleTemplateId,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newDeleteApprovalRuleTemplate' smart constructor.
+data DeleteApprovalRuleTemplate = DeleteApprovalRuleTemplate'
+  { -- | The name of the approval rule template to delete.
+    approvalRuleTemplateName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApprovalRuleTemplate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleTemplateName', 'deleteApprovalRuleTemplate_approvalRuleTemplateName' - The name of the approval rule template to delete.
+newDeleteApprovalRuleTemplate ::
+  -- | 'approvalRuleTemplateName'
+  Prelude.Text ->
+  DeleteApprovalRuleTemplate
+newDeleteApprovalRuleTemplate
+  pApprovalRuleTemplateName_ =
+    DeleteApprovalRuleTemplate'
+      { approvalRuleTemplateName =
+          pApprovalRuleTemplateName_
+      }
+
+-- | The name of the approval rule template to delete.
+deleteApprovalRuleTemplate_approvalRuleTemplateName :: Lens.Lens' DeleteApprovalRuleTemplate Prelude.Text
+deleteApprovalRuleTemplate_approvalRuleTemplateName = Lens.lens (\DeleteApprovalRuleTemplate' {approvalRuleTemplateName} -> approvalRuleTemplateName) (\s@DeleteApprovalRuleTemplate' {} a -> s {approvalRuleTemplateName = a} :: DeleteApprovalRuleTemplate)
+
+instance Core.AWSRequest DeleteApprovalRuleTemplate where
+  type
+    AWSResponse DeleteApprovalRuleTemplate =
+      DeleteApprovalRuleTemplateResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteApprovalRuleTemplateResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "approvalRuleTemplateId")
+      )
+
+instance Prelude.Hashable DeleteApprovalRuleTemplate where
+  hashWithSalt _salt DeleteApprovalRuleTemplate' {..} =
+    _salt
+      `Prelude.hashWithSalt` approvalRuleTemplateName
+
+instance Prelude.NFData DeleteApprovalRuleTemplate where
+  rnf DeleteApprovalRuleTemplate' {..} =
+    Prelude.rnf approvalRuleTemplateName
+
+instance Data.ToHeaders DeleteApprovalRuleTemplate where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.DeleteApprovalRuleTemplate" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeleteApprovalRuleTemplate where
+  toJSON DeleteApprovalRuleTemplate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "approvalRuleTemplateName"
+                  Data..= approvalRuleTemplateName
+              )
+          ]
+      )
+
+instance Data.ToPath DeleteApprovalRuleTemplate where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteApprovalRuleTemplate where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteApprovalRuleTemplateResponse' smart constructor.
+data DeleteApprovalRuleTemplateResponse = DeleteApprovalRuleTemplateResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The system-generated ID of the deleted approval rule template. If the
+    -- template has been previously deleted, the only response is a 200 OK.
+    approvalRuleTemplateId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteApprovalRuleTemplateResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'deleteApprovalRuleTemplateResponse_httpStatus' - The response's http status code.
+--
+-- 'approvalRuleTemplateId', 'deleteApprovalRuleTemplateResponse_approvalRuleTemplateId' - The system-generated ID of the deleted approval rule template. If the
+-- template has been previously deleted, the only response is a 200 OK.
+newDeleteApprovalRuleTemplateResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'approvalRuleTemplateId'
+  Prelude.Text ->
+  DeleteApprovalRuleTemplateResponse
+newDeleteApprovalRuleTemplateResponse
+  pHttpStatus_
+  pApprovalRuleTemplateId_ =
+    DeleteApprovalRuleTemplateResponse'
+      { httpStatus =
+          pHttpStatus_,
+        approvalRuleTemplateId =
+          pApprovalRuleTemplateId_
+      }
+
+-- | The response's http status code.
+deleteApprovalRuleTemplateResponse_httpStatus :: Lens.Lens' DeleteApprovalRuleTemplateResponse Prelude.Int
+deleteApprovalRuleTemplateResponse_httpStatus = Lens.lens (\DeleteApprovalRuleTemplateResponse' {httpStatus} -> httpStatus) (\s@DeleteApprovalRuleTemplateResponse' {} a -> s {httpStatus = a} :: DeleteApprovalRuleTemplateResponse)
+
+-- | The system-generated ID of the deleted approval rule template. If the
+-- template has been previously deleted, the only response is a 200 OK.
+deleteApprovalRuleTemplateResponse_approvalRuleTemplateId :: Lens.Lens' DeleteApprovalRuleTemplateResponse Prelude.Text
+deleteApprovalRuleTemplateResponse_approvalRuleTemplateId = Lens.lens (\DeleteApprovalRuleTemplateResponse' {approvalRuleTemplateId} -> approvalRuleTemplateId) (\s@DeleteApprovalRuleTemplateResponse' {} a -> s {approvalRuleTemplateId = a} :: DeleteApprovalRuleTemplateResponse)
+
+instance
+  Prelude.NFData
+    DeleteApprovalRuleTemplateResponse
+  where
+  rnf DeleteApprovalRuleTemplateResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf approvalRuleTemplateId
diff --git a/gen/Amazonka/CodeCommit/DeleteBranch.hs b/gen/Amazonka/CodeCommit/DeleteBranch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/DeleteBranch.hs
@@ -0,0 +1,195 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.DeleteBranch
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a branch from a repository, unless that branch is the default
+-- branch for the repository.
+module Amazonka.CodeCommit.DeleteBranch
+  ( -- * Creating a Request
+    DeleteBranch (..),
+    newDeleteBranch,
+
+    -- * Request Lenses
+    deleteBranch_repositoryName,
+    deleteBranch_branchName,
+
+    -- * Destructuring the Response
+    DeleteBranchResponse (..),
+    newDeleteBranchResponse,
+
+    -- * Response Lenses
+    deleteBranchResponse_deletedBranch,
+    deleteBranchResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a delete branch operation.
+--
+-- /See:/ 'newDeleteBranch' smart constructor.
+data DeleteBranch = DeleteBranch'
+  { -- | The name of the repository that contains the branch to be deleted.
+    repositoryName :: Prelude.Text,
+    -- | The name of the branch to delete.
+    branchName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteBranch' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryName', 'deleteBranch_repositoryName' - The name of the repository that contains the branch to be deleted.
+--
+-- 'branchName', 'deleteBranch_branchName' - The name of the branch to delete.
+newDeleteBranch ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'branchName'
+  Prelude.Text ->
+  DeleteBranch
+newDeleteBranch pRepositoryName_ pBranchName_ =
+  DeleteBranch'
+    { repositoryName = pRepositoryName_,
+      branchName = pBranchName_
+    }
+
+-- | The name of the repository that contains the branch to be deleted.
+deleteBranch_repositoryName :: Lens.Lens' DeleteBranch Prelude.Text
+deleteBranch_repositoryName = Lens.lens (\DeleteBranch' {repositoryName} -> repositoryName) (\s@DeleteBranch' {} a -> s {repositoryName = a} :: DeleteBranch)
+
+-- | The name of the branch to delete.
+deleteBranch_branchName :: Lens.Lens' DeleteBranch Prelude.Text
+deleteBranch_branchName = Lens.lens (\DeleteBranch' {branchName} -> branchName) (\s@DeleteBranch' {} a -> s {branchName = a} :: DeleteBranch)
+
+instance Core.AWSRequest DeleteBranch where
+  type AWSResponse DeleteBranch = DeleteBranchResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteBranchResponse'
+            Prelude.<$> (x Data..?> "deletedBranch")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteBranch where
+  hashWithSalt _salt DeleteBranch' {..} =
+    _salt
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` branchName
+
+instance Prelude.NFData DeleteBranch where
+  rnf DeleteBranch' {..} =
+    Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf branchName
+
+instance Data.ToHeaders DeleteBranch where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.DeleteBranch" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeleteBranch where
+  toJSON DeleteBranch' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just ("branchName" Data..= branchName)
+          ]
+      )
+
+instance Data.ToPath DeleteBranch where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteBranch where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a delete branch operation.
+--
+-- /See:/ 'newDeleteBranchResponse' smart constructor.
+data DeleteBranchResponse = DeleteBranchResponse'
+  { -- | Information about the branch deleted by the operation, including the
+    -- branch name and the commit ID that was the tip of the branch.
+    deletedBranch :: Prelude.Maybe BranchInfo,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteBranchResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'deletedBranch', 'deleteBranchResponse_deletedBranch' - Information about the branch deleted by the operation, including the
+-- branch name and the commit ID that was the tip of the branch.
+--
+-- 'httpStatus', 'deleteBranchResponse_httpStatus' - The response's http status code.
+newDeleteBranchResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteBranchResponse
+newDeleteBranchResponse pHttpStatus_ =
+  DeleteBranchResponse'
+    { deletedBranch =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about the branch deleted by the operation, including the
+-- branch name and the commit ID that was the tip of the branch.
+deleteBranchResponse_deletedBranch :: Lens.Lens' DeleteBranchResponse (Prelude.Maybe BranchInfo)
+deleteBranchResponse_deletedBranch = Lens.lens (\DeleteBranchResponse' {deletedBranch} -> deletedBranch) (\s@DeleteBranchResponse' {} a -> s {deletedBranch = a} :: DeleteBranchResponse)
+
+-- | The response's http status code.
+deleteBranchResponse_httpStatus :: Lens.Lens' DeleteBranchResponse Prelude.Int
+deleteBranchResponse_httpStatus = Lens.lens (\DeleteBranchResponse' {httpStatus} -> httpStatus) (\s@DeleteBranchResponse' {} a -> s {httpStatus = a} :: DeleteBranchResponse)
+
+instance Prelude.NFData DeleteBranchResponse where
+  rnf DeleteBranchResponse' {..} =
+    Prelude.rnf deletedBranch
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/DeleteCommentContent.hs b/gen/Amazonka/CodeCommit/DeleteCommentContent.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/DeleteCommentContent.hs
@@ -0,0 +1,172 @@
+{-# 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.CodeCommit.DeleteCommentContent
+-- 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 content of a comment made on a change, file, or commit in a
+-- repository.
+module Amazonka.CodeCommit.DeleteCommentContent
+  ( -- * Creating a Request
+    DeleteCommentContent (..),
+    newDeleteCommentContent,
+
+    -- * Request Lenses
+    deleteCommentContent_commentId,
+
+    -- * Destructuring the Response
+    DeleteCommentContentResponse (..),
+    newDeleteCommentContentResponse,
+
+    -- * Response Lenses
+    deleteCommentContentResponse_comment,
+    deleteCommentContentResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newDeleteCommentContent' smart constructor.
+data DeleteCommentContent = DeleteCommentContent'
+  { -- | The unique, system-generated ID of the comment. To get this ID, use
+    -- GetCommentsForComparedCommit or GetCommentsForPullRequest.
+    commentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteCommentContent' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commentId', 'deleteCommentContent_commentId' - The unique, system-generated ID of the comment. To get this ID, use
+-- GetCommentsForComparedCommit or GetCommentsForPullRequest.
+newDeleteCommentContent ::
+  -- | 'commentId'
+  Prelude.Text ->
+  DeleteCommentContent
+newDeleteCommentContent pCommentId_ =
+  DeleteCommentContent' {commentId = pCommentId_}
+
+-- | The unique, system-generated ID of the comment. To get this ID, use
+-- GetCommentsForComparedCommit or GetCommentsForPullRequest.
+deleteCommentContent_commentId :: Lens.Lens' DeleteCommentContent Prelude.Text
+deleteCommentContent_commentId = Lens.lens (\DeleteCommentContent' {commentId} -> commentId) (\s@DeleteCommentContent' {} a -> s {commentId = a} :: DeleteCommentContent)
+
+instance Core.AWSRequest DeleteCommentContent where
+  type
+    AWSResponse DeleteCommentContent =
+      DeleteCommentContentResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteCommentContentResponse'
+            Prelude.<$> (x Data..?> "comment")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteCommentContent where
+  hashWithSalt _salt DeleteCommentContent' {..} =
+    _salt `Prelude.hashWithSalt` commentId
+
+instance Prelude.NFData DeleteCommentContent where
+  rnf DeleteCommentContent' {..} = Prelude.rnf commentId
+
+instance Data.ToHeaders DeleteCommentContent where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.DeleteCommentContent" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeleteCommentContent where
+  toJSON DeleteCommentContent' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("commentId" Data..= commentId)]
+      )
+
+instance Data.ToPath DeleteCommentContent where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteCommentContent where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteCommentContentResponse' smart constructor.
+data DeleteCommentContentResponse = DeleteCommentContentResponse'
+  { -- | Information about the comment you just deleted.
+    comment :: Prelude.Maybe Comment,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteCommentContentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'comment', 'deleteCommentContentResponse_comment' - Information about the comment you just deleted.
+--
+-- 'httpStatus', 'deleteCommentContentResponse_httpStatus' - The response's http status code.
+newDeleteCommentContentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteCommentContentResponse
+newDeleteCommentContentResponse pHttpStatus_ =
+  DeleteCommentContentResponse'
+    { comment =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about the comment you just deleted.
+deleteCommentContentResponse_comment :: Lens.Lens' DeleteCommentContentResponse (Prelude.Maybe Comment)
+deleteCommentContentResponse_comment = Lens.lens (\DeleteCommentContentResponse' {comment} -> comment) (\s@DeleteCommentContentResponse' {} a -> s {comment = a} :: DeleteCommentContentResponse)
+
+-- | The response's http status code.
+deleteCommentContentResponse_httpStatus :: Lens.Lens' DeleteCommentContentResponse Prelude.Int
+deleteCommentContentResponse_httpStatus = Lens.lens (\DeleteCommentContentResponse' {httpStatus} -> httpStatus) (\s@DeleteCommentContentResponse' {} a -> s {httpStatus = a} :: DeleteCommentContentResponse)
+
+instance Prelude.NFData DeleteCommentContentResponse where
+  rnf DeleteCommentContentResponse' {..} =
+    Prelude.rnf comment
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/DeleteFile.hs b/gen/Amazonka/CodeCommit/DeleteFile.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/DeleteFile.hs
@@ -0,0 +1,382 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.DeleteFile
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a specified file from a specified branch. A commit is created on
+-- the branch that contains the revision. The file still exists in the
+-- commits earlier to the commit that contains the deletion.
+module Amazonka.CodeCommit.DeleteFile
+  ( -- * Creating a Request
+    DeleteFile (..),
+    newDeleteFile,
+
+    -- * Request Lenses
+    deleteFile_commitMessage,
+    deleteFile_email,
+    deleteFile_keepEmptyFolders,
+    deleteFile_name,
+    deleteFile_repositoryName,
+    deleteFile_branchName,
+    deleteFile_filePath,
+    deleteFile_parentCommitId,
+
+    -- * Destructuring the Response
+    DeleteFileResponse (..),
+    newDeleteFileResponse,
+
+    -- * Response Lenses
+    deleteFileResponse_httpStatus,
+    deleteFileResponse_commitId,
+    deleteFileResponse_blobId,
+    deleteFileResponse_treeId,
+    deleteFileResponse_filePath,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newDeleteFile' smart constructor.
+data DeleteFile = DeleteFile'
+  { -- | The commit message you want to include as part of deleting the file.
+    -- Commit messages are limited to 256 KB. If no message is specified, a
+    -- default message is used.
+    commitMessage :: Prelude.Maybe Prelude.Text,
+    -- | The email address for the commit that deletes the file. If no email
+    -- address is specified, the email address is left blank.
+    email :: Prelude.Maybe Prelude.Text,
+    -- | If a file is the only object in the folder or directory, specifies
+    -- whether to delete the folder or directory that contains the file. By
+    -- default, empty folders are deleted. This includes empty folders that are
+    -- part of the directory structure. For example, if the path to a file is
+    -- dir1\/dir2\/dir3\/dir4, and dir2 and dir3 are empty, deleting the last
+    -- file in dir4 also deletes the empty folders dir4, dir3, and dir2.
+    keepEmptyFolders :: Prelude.Maybe Prelude.Bool,
+    -- | The name of the author of the commit that deletes the file. If no name
+    -- is specified, the user\'s ARN is used as the author name and committer
+    -- name.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository that contains the file to delete.
+    repositoryName :: Prelude.Text,
+    -- | The name of the branch where the commit that deletes the file is made.
+    branchName :: Prelude.Text,
+    -- | The fully qualified path to the file that to be deleted, including the
+    -- full name and extension of that file. For example, \/examples\/file.md
+    -- is a fully qualified path to a file named file.md in a folder named
+    -- examples.
+    filePath :: Prelude.Text,
+    -- | The ID of the commit that is the tip of the branch where you want to
+    -- create the commit that deletes the file. This must be the HEAD commit
+    -- for the branch. The commit that deletes the file is created from this
+    -- commit ID.
+    parentCommitId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteFile' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commitMessage', 'deleteFile_commitMessage' - The commit message you want to include as part of deleting the file.
+-- Commit messages are limited to 256 KB. If no message is specified, a
+-- default message is used.
+--
+-- 'email', 'deleteFile_email' - The email address for the commit that deletes the file. If no email
+-- address is specified, the email address is left blank.
+--
+-- 'keepEmptyFolders', 'deleteFile_keepEmptyFolders' - If a file is the only object in the folder or directory, specifies
+-- whether to delete the folder or directory that contains the file. By
+-- default, empty folders are deleted. This includes empty folders that are
+-- part of the directory structure. For example, if the path to a file is
+-- dir1\/dir2\/dir3\/dir4, and dir2 and dir3 are empty, deleting the last
+-- file in dir4 also deletes the empty folders dir4, dir3, and dir2.
+--
+-- 'name', 'deleteFile_name' - The name of the author of the commit that deletes the file. If no name
+-- is specified, the user\'s ARN is used as the author name and committer
+-- name.
+--
+-- 'repositoryName', 'deleteFile_repositoryName' - The name of the repository that contains the file to delete.
+--
+-- 'branchName', 'deleteFile_branchName' - The name of the branch where the commit that deletes the file is made.
+--
+-- 'filePath', 'deleteFile_filePath' - The fully qualified path to the file that to be deleted, including the
+-- full name and extension of that file. For example, \/examples\/file.md
+-- is a fully qualified path to a file named file.md in a folder named
+-- examples.
+--
+-- 'parentCommitId', 'deleteFile_parentCommitId' - The ID of the commit that is the tip of the branch where you want to
+-- create the commit that deletes the file. This must be the HEAD commit
+-- for the branch. The commit that deletes the file is created from this
+-- commit ID.
+newDeleteFile ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'branchName'
+  Prelude.Text ->
+  -- | 'filePath'
+  Prelude.Text ->
+  -- | 'parentCommitId'
+  Prelude.Text ->
+  DeleteFile
+newDeleteFile
+  pRepositoryName_
+  pBranchName_
+  pFilePath_
+  pParentCommitId_ =
+    DeleteFile'
+      { commitMessage = Prelude.Nothing,
+        email = Prelude.Nothing,
+        keepEmptyFolders = Prelude.Nothing,
+        name = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        branchName = pBranchName_,
+        filePath = pFilePath_,
+        parentCommitId = pParentCommitId_
+      }
+
+-- | The commit message you want to include as part of deleting the file.
+-- Commit messages are limited to 256 KB. If no message is specified, a
+-- default message is used.
+deleteFile_commitMessage :: Lens.Lens' DeleteFile (Prelude.Maybe Prelude.Text)
+deleteFile_commitMessage = Lens.lens (\DeleteFile' {commitMessage} -> commitMessage) (\s@DeleteFile' {} a -> s {commitMessage = a} :: DeleteFile)
+
+-- | The email address for the commit that deletes the file. If no email
+-- address is specified, the email address is left blank.
+deleteFile_email :: Lens.Lens' DeleteFile (Prelude.Maybe Prelude.Text)
+deleteFile_email = Lens.lens (\DeleteFile' {email} -> email) (\s@DeleteFile' {} a -> s {email = a} :: DeleteFile)
+
+-- | If a file is the only object in the folder or directory, specifies
+-- whether to delete the folder or directory that contains the file. By
+-- default, empty folders are deleted. This includes empty folders that are
+-- part of the directory structure. For example, if the path to a file is
+-- dir1\/dir2\/dir3\/dir4, and dir2 and dir3 are empty, deleting the last
+-- file in dir4 also deletes the empty folders dir4, dir3, and dir2.
+deleteFile_keepEmptyFolders :: Lens.Lens' DeleteFile (Prelude.Maybe Prelude.Bool)
+deleteFile_keepEmptyFolders = Lens.lens (\DeleteFile' {keepEmptyFolders} -> keepEmptyFolders) (\s@DeleteFile' {} a -> s {keepEmptyFolders = a} :: DeleteFile)
+
+-- | The name of the author of the commit that deletes the file. If no name
+-- is specified, the user\'s ARN is used as the author name and committer
+-- name.
+deleteFile_name :: Lens.Lens' DeleteFile (Prelude.Maybe Prelude.Text)
+deleteFile_name = Lens.lens (\DeleteFile' {name} -> name) (\s@DeleteFile' {} a -> s {name = a} :: DeleteFile)
+
+-- | The name of the repository that contains the file to delete.
+deleteFile_repositoryName :: Lens.Lens' DeleteFile Prelude.Text
+deleteFile_repositoryName = Lens.lens (\DeleteFile' {repositoryName} -> repositoryName) (\s@DeleteFile' {} a -> s {repositoryName = a} :: DeleteFile)
+
+-- | The name of the branch where the commit that deletes the file is made.
+deleteFile_branchName :: Lens.Lens' DeleteFile Prelude.Text
+deleteFile_branchName = Lens.lens (\DeleteFile' {branchName} -> branchName) (\s@DeleteFile' {} a -> s {branchName = a} :: DeleteFile)
+
+-- | The fully qualified path to the file that to be deleted, including the
+-- full name and extension of that file. For example, \/examples\/file.md
+-- is a fully qualified path to a file named file.md in a folder named
+-- examples.
+deleteFile_filePath :: Lens.Lens' DeleteFile Prelude.Text
+deleteFile_filePath = Lens.lens (\DeleteFile' {filePath} -> filePath) (\s@DeleteFile' {} a -> s {filePath = a} :: DeleteFile)
+
+-- | The ID of the commit that is the tip of the branch where you want to
+-- create the commit that deletes the file. This must be the HEAD commit
+-- for the branch. The commit that deletes the file is created from this
+-- commit ID.
+deleteFile_parentCommitId :: Lens.Lens' DeleteFile Prelude.Text
+deleteFile_parentCommitId = Lens.lens (\DeleteFile' {parentCommitId} -> parentCommitId) (\s@DeleteFile' {} a -> s {parentCommitId = a} :: DeleteFile)
+
+instance Core.AWSRequest DeleteFile where
+  type AWSResponse DeleteFile = DeleteFileResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteFileResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "commitId")
+            Prelude.<*> (x Data..:> "blobId")
+            Prelude.<*> (x Data..:> "treeId")
+            Prelude.<*> (x Data..:> "filePath")
+      )
+
+instance Prelude.Hashable DeleteFile where
+  hashWithSalt _salt DeleteFile' {..} =
+    _salt
+      `Prelude.hashWithSalt` commitMessage
+      `Prelude.hashWithSalt` email
+      `Prelude.hashWithSalt` keepEmptyFolders
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` branchName
+      `Prelude.hashWithSalt` filePath
+      `Prelude.hashWithSalt` parentCommitId
+
+instance Prelude.NFData DeleteFile where
+  rnf DeleteFile' {..} =
+    Prelude.rnf commitMessage
+      `Prelude.seq` Prelude.rnf email
+      `Prelude.seq` Prelude.rnf keepEmptyFolders
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf branchName
+      `Prelude.seq` Prelude.rnf filePath
+      `Prelude.seq` Prelude.rnf parentCommitId
+
+instance Data.ToHeaders DeleteFile where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.DeleteFile" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeleteFile where
+  toJSON DeleteFile' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("commitMessage" Data..=) Prelude.<$> commitMessage,
+            ("email" Data..=) Prelude.<$> email,
+            ("keepEmptyFolders" Data..=)
+              Prelude.<$> keepEmptyFolders,
+            ("name" Data..=) Prelude.<$> name,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just ("branchName" Data..= branchName),
+            Prelude.Just ("filePath" Data..= filePath),
+            Prelude.Just
+              ("parentCommitId" Data..= parentCommitId)
+          ]
+      )
+
+instance Data.ToPath DeleteFile where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteFile where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteFileResponse' smart constructor.
+data DeleteFileResponse = DeleteFileResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The full commit ID of the commit that contains the change that deletes
+    -- the file.
+    commitId :: Prelude.Text,
+    -- | The blob ID removed from the tree as part of deleting the file.
+    blobId :: Prelude.Text,
+    -- | The full SHA-1 pointer of the tree information for the commit that
+    -- contains the delete file change.
+    treeId :: Prelude.Text,
+    -- | The fully qualified path to the file to be deleted, including the full
+    -- name and extension of that file.
+    filePath :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteFileResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'deleteFileResponse_httpStatus' - The response's http status code.
+--
+-- 'commitId', 'deleteFileResponse_commitId' - The full commit ID of the commit that contains the change that deletes
+-- the file.
+--
+-- 'blobId', 'deleteFileResponse_blobId' - The blob ID removed from the tree as part of deleting the file.
+--
+-- 'treeId', 'deleteFileResponse_treeId' - The full SHA-1 pointer of the tree information for the commit that
+-- contains the delete file change.
+--
+-- 'filePath', 'deleteFileResponse_filePath' - The fully qualified path to the file to be deleted, including the full
+-- name and extension of that file.
+newDeleteFileResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'commitId'
+  Prelude.Text ->
+  -- | 'blobId'
+  Prelude.Text ->
+  -- | 'treeId'
+  Prelude.Text ->
+  -- | 'filePath'
+  Prelude.Text ->
+  DeleteFileResponse
+newDeleteFileResponse
+  pHttpStatus_
+  pCommitId_
+  pBlobId_
+  pTreeId_
+  pFilePath_ =
+    DeleteFileResponse'
+      { httpStatus = pHttpStatus_,
+        commitId = pCommitId_,
+        blobId = pBlobId_,
+        treeId = pTreeId_,
+        filePath = pFilePath_
+      }
+
+-- | The response's http status code.
+deleteFileResponse_httpStatus :: Lens.Lens' DeleteFileResponse Prelude.Int
+deleteFileResponse_httpStatus = Lens.lens (\DeleteFileResponse' {httpStatus} -> httpStatus) (\s@DeleteFileResponse' {} a -> s {httpStatus = a} :: DeleteFileResponse)
+
+-- | The full commit ID of the commit that contains the change that deletes
+-- the file.
+deleteFileResponse_commitId :: Lens.Lens' DeleteFileResponse Prelude.Text
+deleteFileResponse_commitId = Lens.lens (\DeleteFileResponse' {commitId} -> commitId) (\s@DeleteFileResponse' {} a -> s {commitId = a} :: DeleteFileResponse)
+
+-- | The blob ID removed from the tree as part of deleting the file.
+deleteFileResponse_blobId :: Lens.Lens' DeleteFileResponse Prelude.Text
+deleteFileResponse_blobId = Lens.lens (\DeleteFileResponse' {blobId} -> blobId) (\s@DeleteFileResponse' {} a -> s {blobId = a} :: DeleteFileResponse)
+
+-- | The full SHA-1 pointer of the tree information for the commit that
+-- contains the delete file change.
+deleteFileResponse_treeId :: Lens.Lens' DeleteFileResponse Prelude.Text
+deleteFileResponse_treeId = Lens.lens (\DeleteFileResponse' {treeId} -> treeId) (\s@DeleteFileResponse' {} a -> s {treeId = a} :: DeleteFileResponse)
+
+-- | The fully qualified path to the file to be deleted, including the full
+-- name and extension of that file.
+deleteFileResponse_filePath :: Lens.Lens' DeleteFileResponse Prelude.Text
+deleteFileResponse_filePath = Lens.lens (\DeleteFileResponse' {filePath} -> filePath) (\s@DeleteFileResponse' {} a -> s {filePath = a} :: DeleteFileResponse)
+
+instance Prelude.NFData DeleteFileResponse where
+  rnf DeleteFileResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf commitId
+      `Prelude.seq` Prelude.rnf blobId
+      `Prelude.seq` Prelude.rnf treeId
+      `Prelude.seq` Prelude.rnf filePath
diff --git a/gen/Amazonka/CodeCommit/DeletePullRequestApprovalRule.hs b/gen/Amazonka/CodeCommit/DeletePullRequestApprovalRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/DeletePullRequestApprovalRule.hs
@@ -0,0 +1,223 @@
+{-# 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.CodeCommit.DeletePullRequestApprovalRule
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an approval rule from a specified pull request. Approval rules
+-- can be deleted from a pull request only if the pull request is open, and
+-- if the approval rule was created specifically for a pull request and not
+-- generated from an approval rule template associated with the repository
+-- where the pull request was created. You cannot delete an approval rule
+-- from a merged or closed pull request.
+module Amazonka.CodeCommit.DeletePullRequestApprovalRule
+  ( -- * Creating a Request
+    DeletePullRequestApprovalRule (..),
+    newDeletePullRequestApprovalRule,
+
+    -- * Request Lenses
+    deletePullRequestApprovalRule_pullRequestId,
+    deletePullRequestApprovalRule_approvalRuleName,
+
+    -- * Destructuring the Response
+    DeletePullRequestApprovalRuleResponse (..),
+    newDeletePullRequestApprovalRuleResponse,
+
+    -- * Response Lenses
+    deletePullRequestApprovalRuleResponse_httpStatus,
+    deletePullRequestApprovalRuleResponse_approvalRuleId,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newDeletePullRequestApprovalRule' smart constructor.
+data DeletePullRequestApprovalRule = DeletePullRequestApprovalRule'
+  { -- | The system-generated ID of the pull request that contains the approval
+    -- rule you want to delete.
+    pullRequestId :: Prelude.Text,
+    -- | The name of the approval rule you want to delete.
+    approvalRuleName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeletePullRequestApprovalRule' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequestId', 'deletePullRequestApprovalRule_pullRequestId' - The system-generated ID of the pull request that contains the approval
+-- rule you want to delete.
+--
+-- 'approvalRuleName', 'deletePullRequestApprovalRule_approvalRuleName' - The name of the approval rule you want to delete.
+newDeletePullRequestApprovalRule ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'approvalRuleName'
+  Prelude.Text ->
+  DeletePullRequestApprovalRule
+newDeletePullRequestApprovalRule
+  pPullRequestId_
+  pApprovalRuleName_ =
+    DeletePullRequestApprovalRule'
+      { pullRequestId =
+          pPullRequestId_,
+        approvalRuleName = pApprovalRuleName_
+      }
+
+-- | The system-generated ID of the pull request that contains the approval
+-- rule you want to delete.
+deletePullRequestApprovalRule_pullRequestId :: Lens.Lens' DeletePullRequestApprovalRule Prelude.Text
+deletePullRequestApprovalRule_pullRequestId = Lens.lens (\DeletePullRequestApprovalRule' {pullRequestId} -> pullRequestId) (\s@DeletePullRequestApprovalRule' {} a -> s {pullRequestId = a} :: DeletePullRequestApprovalRule)
+
+-- | The name of the approval rule you want to delete.
+deletePullRequestApprovalRule_approvalRuleName :: Lens.Lens' DeletePullRequestApprovalRule Prelude.Text
+deletePullRequestApprovalRule_approvalRuleName = Lens.lens (\DeletePullRequestApprovalRule' {approvalRuleName} -> approvalRuleName) (\s@DeletePullRequestApprovalRule' {} a -> s {approvalRuleName = a} :: DeletePullRequestApprovalRule)
+
+instance
+  Core.AWSRequest
+    DeletePullRequestApprovalRule
+  where
+  type
+    AWSResponse DeletePullRequestApprovalRule =
+      DeletePullRequestApprovalRuleResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeletePullRequestApprovalRuleResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "approvalRuleId")
+      )
+
+instance
+  Prelude.Hashable
+    DeletePullRequestApprovalRule
+  where
+  hashWithSalt _salt DeletePullRequestApprovalRule' {..} =
+    _salt
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` approvalRuleName
+
+instance Prelude.NFData DeletePullRequestApprovalRule where
+  rnf DeletePullRequestApprovalRule' {..} =
+    Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf approvalRuleName
+
+instance Data.ToHeaders DeletePullRequestApprovalRule where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.DeletePullRequestApprovalRule" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeletePullRequestApprovalRule where
+  toJSON DeletePullRequestApprovalRule' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just
+              ("approvalRuleName" Data..= approvalRuleName)
+          ]
+      )
+
+instance Data.ToPath DeletePullRequestApprovalRule where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeletePullRequestApprovalRule where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeletePullRequestApprovalRuleResponse' smart constructor.
+data DeletePullRequestApprovalRuleResponse = DeletePullRequestApprovalRuleResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The ID of the deleted approval rule.
+    --
+    -- If the approval rule was deleted in an earlier API call, the response is
+    -- 200 OK without content.
+    approvalRuleId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeletePullRequestApprovalRuleResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'deletePullRequestApprovalRuleResponse_httpStatus' - The response's http status code.
+--
+-- 'approvalRuleId', 'deletePullRequestApprovalRuleResponse_approvalRuleId' - The ID of the deleted approval rule.
+--
+-- If the approval rule was deleted in an earlier API call, the response is
+-- 200 OK without content.
+newDeletePullRequestApprovalRuleResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'approvalRuleId'
+  Prelude.Text ->
+  DeletePullRequestApprovalRuleResponse
+newDeletePullRequestApprovalRuleResponse
+  pHttpStatus_
+  pApprovalRuleId_ =
+    DeletePullRequestApprovalRuleResponse'
+      { httpStatus =
+          pHttpStatus_,
+        approvalRuleId = pApprovalRuleId_
+      }
+
+-- | The response's http status code.
+deletePullRequestApprovalRuleResponse_httpStatus :: Lens.Lens' DeletePullRequestApprovalRuleResponse Prelude.Int
+deletePullRequestApprovalRuleResponse_httpStatus = Lens.lens (\DeletePullRequestApprovalRuleResponse' {httpStatus} -> httpStatus) (\s@DeletePullRequestApprovalRuleResponse' {} a -> s {httpStatus = a} :: DeletePullRequestApprovalRuleResponse)
+
+-- | The ID of the deleted approval rule.
+--
+-- If the approval rule was deleted in an earlier API call, the response is
+-- 200 OK without content.
+deletePullRequestApprovalRuleResponse_approvalRuleId :: Lens.Lens' DeletePullRequestApprovalRuleResponse Prelude.Text
+deletePullRequestApprovalRuleResponse_approvalRuleId = Lens.lens (\DeletePullRequestApprovalRuleResponse' {approvalRuleId} -> approvalRuleId) (\s@DeletePullRequestApprovalRuleResponse' {} a -> s {approvalRuleId = a} :: DeletePullRequestApprovalRuleResponse)
+
+instance
+  Prelude.NFData
+    DeletePullRequestApprovalRuleResponse
+  where
+  rnf DeletePullRequestApprovalRuleResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf approvalRuleId
diff --git a/gen/Amazonka/CodeCommit/DeleteRepository.hs b/gen/Amazonka/CodeCommit/DeleteRepository.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/DeleteRepository.hs
@@ -0,0 +1,183 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.DeleteRepository
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a repository. If a specified repository was already deleted, a
+-- null repository ID is returned.
+--
+-- Deleting a repository also deletes all associated objects and metadata.
+-- After a repository is deleted, all future push calls to the deleted
+-- repository fail.
+module Amazonka.CodeCommit.DeleteRepository
+  ( -- * Creating a Request
+    DeleteRepository (..),
+    newDeleteRepository,
+
+    -- * Request Lenses
+    deleteRepository_repositoryName,
+
+    -- * Destructuring the Response
+    DeleteRepositoryResponse (..),
+    newDeleteRepositoryResponse,
+
+    -- * Response Lenses
+    deleteRepositoryResponse_repositoryId,
+    deleteRepositoryResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a delete repository operation.
+--
+-- /See:/ 'newDeleteRepository' smart constructor.
+data DeleteRepository = DeleteRepository'
+  { -- | The name of the repository to delete.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteRepository' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryName', 'deleteRepository_repositoryName' - The name of the repository to delete.
+newDeleteRepository ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  DeleteRepository
+newDeleteRepository pRepositoryName_ =
+  DeleteRepository'
+    { repositoryName =
+        pRepositoryName_
+    }
+
+-- | The name of the repository to delete.
+deleteRepository_repositoryName :: Lens.Lens' DeleteRepository Prelude.Text
+deleteRepository_repositoryName = Lens.lens (\DeleteRepository' {repositoryName} -> repositoryName) (\s@DeleteRepository' {} a -> s {repositoryName = a} :: DeleteRepository)
+
+instance Core.AWSRequest DeleteRepository where
+  type
+    AWSResponse DeleteRepository =
+      DeleteRepositoryResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteRepositoryResponse'
+            Prelude.<$> (x Data..?> "repositoryId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteRepository where
+  hashWithSalt _salt DeleteRepository' {..} =
+    _salt `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData DeleteRepository where
+  rnf DeleteRepository' {..} =
+    Prelude.rnf repositoryName
+
+instance Data.ToHeaders DeleteRepository where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.DeleteRepository" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeleteRepository where
+  toJSON DeleteRepository' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("repositoryName" Data..= repositoryName)
+          ]
+      )
+
+instance Data.ToPath DeleteRepository where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DeleteRepository where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a delete repository operation.
+--
+-- /See:/ 'newDeleteRepositoryResponse' smart constructor.
+data DeleteRepositoryResponse = DeleteRepositoryResponse'
+  { -- | The ID of the repository that was deleted.
+    repositoryId :: 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 'DeleteRepositoryResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryId', 'deleteRepositoryResponse_repositoryId' - The ID of the repository that was deleted.
+--
+-- 'httpStatus', 'deleteRepositoryResponse_httpStatus' - The response's http status code.
+newDeleteRepositoryResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteRepositoryResponse
+newDeleteRepositoryResponse pHttpStatus_ =
+  DeleteRepositoryResponse'
+    { repositoryId =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The ID of the repository that was deleted.
+deleteRepositoryResponse_repositoryId :: Lens.Lens' DeleteRepositoryResponse (Prelude.Maybe Prelude.Text)
+deleteRepositoryResponse_repositoryId = Lens.lens (\DeleteRepositoryResponse' {repositoryId} -> repositoryId) (\s@DeleteRepositoryResponse' {} a -> s {repositoryId = a} :: DeleteRepositoryResponse)
+
+-- | The response's http status code.
+deleteRepositoryResponse_httpStatus :: Lens.Lens' DeleteRepositoryResponse Prelude.Int
+deleteRepositoryResponse_httpStatus = Lens.lens (\DeleteRepositoryResponse' {httpStatus} -> httpStatus) (\s@DeleteRepositoryResponse' {} a -> s {httpStatus = a} :: DeleteRepositoryResponse)
+
+instance Prelude.NFData DeleteRepositoryResponse where
+  rnf DeleteRepositoryResponse' {..} =
+    Prelude.rnf repositoryId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/DescribeMergeConflicts.hs b/gen/Amazonka/CodeCommit/DescribeMergeConflicts.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/DescribeMergeConflicts.hs
@@ -0,0 +1,419 @@
+{-# 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.CodeCommit.DescribeMergeConflicts
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about one or more merge conflicts in the attempted
+-- merge of two commit specifiers using the squash or three-way merge
+-- strategy. If the merge option for the attempted merge is specified as
+-- FAST_FORWARD_MERGE, an exception is thrown.
+module Amazonka.CodeCommit.DescribeMergeConflicts
+  ( -- * Creating a Request
+    DescribeMergeConflicts (..),
+    newDescribeMergeConflicts,
+
+    -- * Request Lenses
+    describeMergeConflicts_conflictDetailLevel,
+    describeMergeConflicts_conflictResolutionStrategy,
+    describeMergeConflicts_maxMergeHunks,
+    describeMergeConflicts_nextToken,
+    describeMergeConflicts_repositoryName,
+    describeMergeConflicts_destinationCommitSpecifier,
+    describeMergeConflicts_sourceCommitSpecifier,
+    describeMergeConflicts_mergeOption,
+    describeMergeConflicts_filePath,
+
+    -- * Destructuring the Response
+    DescribeMergeConflictsResponse (..),
+    newDescribeMergeConflictsResponse,
+
+    -- * Response Lenses
+    describeMergeConflictsResponse_baseCommitId,
+    describeMergeConflictsResponse_nextToken,
+    describeMergeConflictsResponse_httpStatus,
+    describeMergeConflictsResponse_conflictMetadata,
+    describeMergeConflictsResponse_mergeHunks,
+    describeMergeConflictsResponse_destinationCommitId,
+    describeMergeConflictsResponse_sourceCommitId,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newDescribeMergeConflicts' smart constructor.
+data DescribeMergeConflicts = DescribeMergeConflicts'
+  { -- | The level of conflict detail to use. If unspecified, the default
+    -- FILE_LEVEL is used, which returns a not-mergeable result if the same
+    -- file has differences in both branches. If LINE_LEVEL is specified, a
+    -- conflict is considered not mergeable if the same file in both branches
+    -- has differences on the same line.
+    conflictDetailLevel :: Prelude.Maybe ConflictDetailLevelTypeEnum,
+    -- | Specifies which branch to use when resolving conflicts, or whether to
+    -- attempt automatically merging two versions of a file. The default is
+    -- NONE, which requires any conflicts to be resolved manually before the
+    -- merge operation is successful.
+    conflictResolutionStrategy :: Prelude.Maybe ConflictResolutionStrategyTypeEnum,
+    -- | The maximum number of merge hunks to include in the output.
+    maxMergeHunks :: Prelude.Maybe Prelude.Int,
+    -- | An enumeration token that, when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where you want to get information about a
+    -- merge conflict.
+    repositoryName :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    destinationCommitSpecifier :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    sourceCommitSpecifier :: Prelude.Text,
+    -- | The merge option or strategy you want to use to merge the code.
+    mergeOption :: MergeOptionTypeEnum,
+    -- | The path of the target files used to describe the conflicts.
+    filePath :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeMergeConflicts' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'conflictDetailLevel', 'describeMergeConflicts_conflictDetailLevel' - The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+--
+-- 'conflictResolutionStrategy', 'describeMergeConflicts_conflictResolutionStrategy' - Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+--
+-- 'maxMergeHunks', 'describeMergeConflicts_maxMergeHunks' - The maximum number of merge hunks to include in the output.
+--
+-- 'nextToken', 'describeMergeConflicts_nextToken' - An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+--
+-- 'repositoryName', 'describeMergeConflicts_repositoryName' - The name of the repository where you want to get information about a
+-- merge conflict.
+--
+-- 'destinationCommitSpecifier', 'describeMergeConflicts_destinationCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'sourceCommitSpecifier', 'describeMergeConflicts_sourceCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'mergeOption', 'describeMergeConflicts_mergeOption' - The merge option or strategy you want to use to merge the code.
+--
+-- 'filePath', 'describeMergeConflicts_filePath' - The path of the target files used to describe the conflicts.
+newDescribeMergeConflicts ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'destinationCommitSpecifier'
+  Prelude.Text ->
+  -- | 'sourceCommitSpecifier'
+  Prelude.Text ->
+  -- | 'mergeOption'
+  MergeOptionTypeEnum ->
+  -- | 'filePath'
+  Prelude.Text ->
+  DescribeMergeConflicts
+newDescribeMergeConflicts
+  pRepositoryName_
+  pDestinationCommitSpecifier_
+  pSourceCommitSpecifier_
+  pMergeOption_
+  pFilePath_ =
+    DescribeMergeConflicts'
+      { conflictDetailLevel =
+          Prelude.Nothing,
+        conflictResolutionStrategy = Prelude.Nothing,
+        maxMergeHunks = Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        destinationCommitSpecifier =
+          pDestinationCommitSpecifier_,
+        sourceCommitSpecifier = pSourceCommitSpecifier_,
+        mergeOption = pMergeOption_,
+        filePath = pFilePath_
+      }
+
+-- | The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+describeMergeConflicts_conflictDetailLevel :: Lens.Lens' DescribeMergeConflicts (Prelude.Maybe ConflictDetailLevelTypeEnum)
+describeMergeConflicts_conflictDetailLevel = Lens.lens (\DescribeMergeConflicts' {conflictDetailLevel} -> conflictDetailLevel) (\s@DescribeMergeConflicts' {} a -> s {conflictDetailLevel = a} :: DescribeMergeConflicts)
+
+-- | Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+describeMergeConflicts_conflictResolutionStrategy :: Lens.Lens' DescribeMergeConflicts (Prelude.Maybe ConflictResolutionStrategyTypeEnum)
+describeMergeConflicts_conflictResolutionStrategy = Lens.lens (\DescribeMergeConflicts' {conflictResolutionStrategy} -> conflictResolutionStrategy) (\s@DescribeMergeConflicts' {} a -> s {conflictResolutionStrategy = a} :: DescribeMergeConflicts)
+
+-- | The maximum number of merge hunks to include in the output.
+describeMergeConflicts_maxMergeHunks :: Lens.Lens' DescribeMergeConflicts (Prelude.Maybe Prelude.Int)
+describeMergeConflicts_maxMergeHunks = Lens.lens (\DescribeMergeConflicts' {maxMergeHunks} -> maxMergeHunks) (\s@DescribeMergeConflicts' {} a -> s {maxMergeHunks = a} :: DescribeMergeConflicts)
+
+-- | An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+describeMergeConflicts_nextToken :: Lens.Lens' DescribeMergeConflicts (Prelude.Maybe Prelude.Text)
+describeMergeConflicts_nextToken = Lens.lens (\DescribeMergeConflicts' {nextToken} -> nextToken) (\s@DescribeMergeConflicts' {} a -> s {nextToken = a} :: DescribeMergeConflicts)
+
+-- | The name of the repository where you want to get information about a
+-- merge conflict.
+describeMergeConflicts_repositoryName :: Lens.Lens' DescribeMergeConflicts Prelude.Text
+describeMergeConflicts_repositoryName = Lens.lens (\DescribeMergeConflicts' {repositoryName} -> repositoryName) (\s@DescribeMergeConflicts' {} a -> s {repositoryName = a} :: DescribeMergeConflicts)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+describeMergeConflicts_destinationCommitSpecifier :: Lens.Lens' DescribeMergeConflicts Prelude.Text
+describeMergeConflicts_destinationCommitSpecifier = Lens.lens (\DescribeMergeConflicts' {destinationCommitSpecifier} -> destinationCommitSpecifier) (\s@DescribeMergeConflicts' {} a -> s {destinationCommitSpecifier = a} :: DescribeMergeConflicts)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+describeMergeConflicts_sourceCommitSpecifier :: Lens.Lens' DescribeMergeConflicts Prelude.Text
+describeMergeConflicts_sourceCommitSpecifier = Lens.lens (\DescribeMergeConflicts' {sourceCommitSpecifier} -> sourceCommitSpecifier) (\s@DescribeMergeConflicts' {} a -> s {sourceCommitSpecifier = a} :: DescribeMergeConflicts)
+
+-- | The merge option or strategy you want to use to merge the code.
+describeMergeConflicts_mergeOption :: Lens.Lens' DescribeMergeConflicts MergeOptionTypeEnum
+describeMergeConflicts_mergeOption = Lens.lens (\DescribeMergeConflicts' {mergeOption} -> mergeOption) (\s@DescribeMergeConflicts' {} a -> s {mergeOption = a} :: DescribeMergeConflicts)
+
+-- | The path of the target files used to describe the conflicts.
+describeMergeConflicts_filePath :: Lens.Lens' DescribeMergeConflicts Prelude.Text
+describeMergeConflicts_filePath = Lens.lens (\DescribeMergeConflicts' {filePath} -> filePath) (\s@DescribeMergeConflicts' {} a -> s {filePath = a} :: DescribeMergeConflicts)
+
+instance Core.AWSRequest DescribeMergeConflicts where
+  type
+    AWSResponse DescribeMergeConflicts =
+      DescribeMergeConflictsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DescribeMergeConflictsResponse'
+            Prelude.<$> (x Data..?> "baseCommitId")
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "conflictMetadata")
+            Prelude.<*> (x Data..?> "mergeHunks" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..:> "destinationCommitId")
+            Prelude.<*> (x Data..:> "sourceCommitId")
+      )
+
+instance Prelude.Hashable DescribeMergeConflicts where
+  hashWithSalt _salt DescribeMergeConflicts' {..} =
+    _salt
+      `Prelude.hashWithSalt` conflictDetailLevel
+      `Prelude.hashWithSalt` conflictResolutionStrategy
+      `Prelude.hashWithSalt` maxMergeHunks
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` destinationCommitSpecifier
+      `Prelude.hashWithSalt` sourceCommitSpecifier
+      `Prelude.hashWithSalt` mergeOption
+      `Prelude.hashWithSalt` filePath
+
+instance Prelude.NFData DescribeMergeConflicts where
+  rnf DescribeMergeConflicts' {..} =
+    Prelude.rnf conflictDetailLevel
+      `Prelude.seq` Prelude.rnf conflictResolutionStrategy
+      `Prelude.seq` Prelude.rnf maxMergeHunks
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf destinationCommitSpecifier
+      `Prelude.seq` Prelude.rnf sourceCommitSpecifier
+      `Prelude.seq` Prelude.rnf mergeOption
+      `Prelude.seq` Prelude.rnf filePath
+
+instance Data.ToHeaders DescribeMergeConflicts where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.DescribeMergeConflicts" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DescribeMergeConflicts where
+  toJSON DescribeMergeConflicts' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("conflictDetailLevel" Data..=)
+              Prelude.<$> conflictDetailLevel,
+            ("conflictResolutionStrategy" Data..=)
+              Prelude.<$> conflictResolutionStrategy,
+            ("maxMergeHunks" Data..=) Prelude.<$> maxMergeHunks,
+            ("nextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ( "destinationCommitSpecifier"
+                  Data..= destinationCommitSpecifier
+              ),
+            Prelude.Just
+              ( "sourceCommitSpecifier"
+                  Data..= sourceCommitSpecifier
+              ),
+            Prelude.Just ("mergeOption" Data..= mergeOption),
+            Prelude.Just ("filePath" Data..= filePath)
+          ]
+      )
+
+instance Data.ToPath DescribeMergeConflicts where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DescribeMergeConflicts where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDescribeMergeConflictsResponse' smart constructor.
+data DescribeMergeConflictsResponse = DescribeMergeConflictsResponse'
+  { -- | The commit ID of the merge base.
+    baseCommitId :: Prelude.Maybe Prelude.Text,
+    -- | An enumeration token that can be used in a request to return the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | Contains metadata about the conflicts found in the merge.
+    conflictMetadata :: ConflictMetadata,
+    -- | A list of merge hunks of the differences between the files or lines.
+    mergeHunks :: [MergeHunk],
+    -- | The commit ID of the destination commit specifier that was used in the
+    -- merge evaluation.
+    destinationCommitId :: Prelude.Text,
+    -- | The commit ID of the source commit specifier that was used in the merge
+    -- evaluation.
+    sourceCommitId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeMergeConflictsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'baseCommitId', 'describeMergeConflictsResponse_baseCommitId' - The commit ID of the merge base.
+--
+-- 'nextToken', 'describeMergeConflictsResponse_nextToken' - An enumeration token that can be used in a request to return the next
+-- batch of the results.
+--
+-- 'httpStatus', 'describeMergeConflictsResponse_httpStatus' - The response's http status code.
+--
+-- 'conflictMetadata', 'describeMergeConflictsResponse_conflictMetadata' - Contains metadata about the conflicts found in the merge.
+--
+-- 'mergeHunks', 'describeMergeConflictsResponse_mergeHunks' - A list of merge hunks of the differences between the files or lines.
+--
+-- 'destinationCommitId', 'describeMergeConflictsResponse_destinationCommitId' - The commit ID of the destination commit specifier that was used in the
+-- merge evaluation.
+--
+-- 'sourceCommitId', 'describeMergeConflictsResponse_sourceCommitId' - The commit ID of the source commit specifier that was used in the merge
+-- evaluation.
+newDescribeMergeConflictsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'conflictMetadata'
+  ConflictMetadata ->
+  -- | 'destinationCommitId'
+  Prelude.Text ->
+  -- | 'sourceCommitId'
+  Prelude.Text ->
+  DescribeMergeConflictsResponse
+newDescribeMergeConflictsResponse
+  pHttpStatus_
+  pConflictMetadata_
+  pDestinationCommitId_
+  pSourceCommitId_ =
+    DescribeMergeConflictsResponse'
+      { baseCommitId =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        httpStatus = pHttpStatus_,
+        conflictMetadata = pConflictMetadata_,
+        mergeHunks = Prelude.mempty,
+        destinationCommitId = pDestinationCommitId_,
+        sourceCommitId = pSourceCommitId_
+      }
+
+-- | The commit ID of the merge base.
+describeMergeConflictsResponse_baseCommitId :: Lens.Lens' DescribeMergeConflictsResponse (Prelude.Maybe Prelude.Text)
+describeMergeConflictsResponse_baseCommitId = Lens.lens (\DescribeMergeConflictsResponse' {baseCommitId} -> baseCommitId) (\s@DescribeMergeConflictsResponse' {} a -> s {baseCommitId = a} :: DescribeMergeConflictsResponse)
+
+-- | An enumeration token that can be used in a request to return the next
+-- batch of the results.
+describeMergeConflictsResponse_nextToken :: Lens.Lens' DescribeMergeConflictsResponse (Prelude.Maybe Prelude.Text)
+describeMergeConflictsResponse_nextToken = Lens.lens (\DescribeMergeConflictsResponse' {nextToken} -> nextToken) (\s@DescribeMergeConflictsResponse' {} a -> s {nextToken = a} :: DescribeMergeConflictsResponse)
+
+-- | The response's http status code.
+describeMergeConflictsResponse_httpStatus :: Lens.Lens' DescribeMergeConflictsResponse Prelude.Int
+describeMergeConflictsResponse_httpStatus = Lens.lens (\DescribeMergeConflictsResponse' {httpStatus} -> httpStatus) (\s@DescribeMergeConflictsResponse' {} a -> s {httpStatus = a} :: DescribeMergeConflictsResponse)
+
+-- | Contains metadata about the conflicts found in the merge.
+describeMergeConflictsResponse_conflictMetadata :: Lens.Lens' DescribeMergeConflictsResponse ConflictMetadata
+describeMergeConflictsResponse_conflictMetadata = Lens.lens (\DescribeMergeConflictsResponse' {conflictMetadata} -> conflictMetadata) (\s@DescribeMergeConflictsResponse' {} a -> s {conflictMetadata = a} :: DescribeMergeConflictsResponse)
+
+-- | A list of merge hunks of the differences between the files or lines.
+describeMergeConflictsResponse_mergeHunks :: Lens.Lens' DescribeMergeConflictsResponse [MergeHunk]
+describeMergeConflictsResponse_mergeHunks = Lens.lens (\DescribeMergeConflictsResponse' {mergeHunks} -> mergeHunks) (\s@DescribeMergeConflictsResponse' {} a -> s {mergeHunks = a} :: DescribeMergeConflictsResponse) Prelude.. Lens.coerced
+
+-- | The commit ID of the destination commit specifier that was used in the
+-- merge evaluation.
+describeMergeConflictsResponse_destinationCommitId :: Lens.Lens' DescribeMergeConflictsResponse Prelude.Text
+describeMergeConflictsResponse_destinationCommitId = Lens.lens (\DescribeMergeConflictsResponse' {destinationCommitId} -> destinationCommitId) (\s@DescribeMergeConflictsResponse' {} a -> s {destinationCommitId = a} :: DescribeMergeConflictsResponse)
+
+-- | The commit ID of the source commit specifier that was used in the merge
+-- evaluation.
+describeMergeConflictsResponse_sourceCommitId :: Lens.Lens' DescribeMergeConflictsResponse Prelude.Text
+describeMergeConflictsResponse_sourceCommitId = Lens.lens (\DescribeMergeConflictsResponse' {sourceCommitId} -> sourceCommitId) (\s@DescribeMergeConflictsResponse' {} a -> s {sourceCommitId = a} :: DescribeMergeConflictsResponse)
+
+instance
+  Prelude.NFData
+    DescribeMergeConflictsResponse
+  where
+  rnf DescribeMergeConflictsResponse' {..} =
+    Prelude.rnf baseCommitId
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf conflictMetadata
+      `Prelude.seq` Prelude.rnf mergeHunks
+      `Prelude.seq` Prelude.rnf destinationCommitId
+      `Prelude.seq` Prelude.rnf sourceCommitId
diff --git a/gen/Amazonka/CodeCommit/DescribePullRequestEvents.hs b/gen/Amazonka/CodeCommit/DescribePullRequestEvents.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/DescribePullRequestEvents.hs
@@ -0,0 +1,293 @@
+{-# 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.CodeCommit.DescribePullRequestEvents
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about one or more pull request events.
+--
+-- This operation returns paginated results.
+module Amazonka.CodeCommit.DescribePullRequestEvents
+  ( -- * Creating a Request
+    DescribePullRequestEvents (..),
+    newDescribePullRequestEvents,
+
+    -- * Request Lenses
+    describePullRequestEvents_actorArn,
+    describePullRequestEvents_maxResults,
+    describePullRequestEvents_nextToken,
+    describePullRequestEvents_pullRequestEventType,
+    describePullRequestEvents_pullRequestId,
+
+    -- * Destructuring the Response
+    DescribePullRequestEventsResponse (..),
+    newDescribePullRequestEventsResponse,
+
+    -- * Response Lenses
+    describePullRequestEventsResponse_nextToken,
+    describePullRequestEventsResponse_httpStatus,
+    describePullRequestEventsResponse_pullRequestEvents,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newDescribePullRequestEvents' smart constructor.
+data DescribePullRequestEvents = DescribePullRequestEvents'
+  { -- | The Amazon Resource Name (ARN) of the user whose actions resulted in the
+    -- event. Examples include updating the pull request with more commits or
+    -- changing the status of a pull request.
+    actorArn :: Prelude.Maybe Prelude.Text,
+    -- | A non-zero, non-negative integer used to limit the number of returned
+    -- results. The default is 100 events, which is also the maximum number of
+    -- events that can be returned in a result.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | An enumeration token that, when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Optional. The pull request event type about which you want to return
+    -- information.
+    pullRequestEventType :: Prelude.Maybe PullRequestEventType,
+    -- | The system-generated ID of the pull request. To get this ID, use
+    -- ListPullRequests.
+    pullRequestId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribePullRequestEvents' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'actorArn', 'describePullRequestEvents_actorArn' - The Amazon Resource Name (ARN) of the user whose actions resulted in the
+-- event. Examples include updating the pull request with more commits or
+-- changing the status of a pull request.
+--
+-- 'maxResults', 'describePullRequestEvents_maxResults' - A non-zero, non-negative integer used to limit the number of returned
+-- results. The default is 100 events, which is also the maximum number of
+-- events that can be returned in a result.
+--
+-- 'nextToken', 'describePullRequestEvents_nextToken' - An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+--
+-- 'pullRequestEventType', 'describePullRequestEvents_pullRequestEventType' - Optional. The pull request event type about which you want to return
+-- information.
+--
+-- 'pullRequestId', 'describePullRequestEvents_pullRequestId' - The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+newDescribePullRequestEvents ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  DescribePullRequestEvents
+newDescribePullRequestEvents pPullRequestId_ =
+  DescribePullRequestEvents'
+    { actorArn =
+        Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      pullRequestEventType = Prelude.Nothing,
+      pullRequestId = pPullRequestId_
+    }
+
+-- | The Amazon Resource Name (ARN) of the user whose actions resulted in the
+-- event. Examples include updating the pull request with more commits or
+-- changing the status of a pull request.
+describePullRequestEvents_actorArn :: Lens.Lens' DescribePullRequestEvents (Prelude.Maybe Prelude.Text)
+describePullRequestEvents_actorArn = Lens.lens (\DescribePullRequestEvents' {actorArn} -> actorArn) (\s@DescribePullRequestEvents' {} a -> s {actorArn = a} :: DescribePullRequestEvents)
+
+-- | A non-zero, non-negative integer used to limit the number of returned
+-- results. The default is 100 events, which is also the maximum number of
+-- events that can be returned in a result.
+describePullRequestEvents_maxResults :: Lens.Lens' DescribePullRequestEvents (Prelude.Maybe Prelude.Int)
+describePullRequestEvents_maxResults = Lens.lens (\DescribePullRequestEvents' {maxResults} -> maxResults) (\s@DescribePullRequestEvents' {} a -> s {maxResults = a} :: DescribePullRequestEvents)
+
+-- | An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+describePullRequestEvents_nextToken :: Lens.Lens' DescribePullRequestEvents (Prelude.Maybe Prelude.Text)
+describePullRequestEvents_nextToken = Lens.lens (\DescribePullRequestEvents' {nextToken} -> nextToken) (\s@DescribePullRequestEvents' {} a -> s {nextToken = a} :: DescribePullRequestEvents)
+
+-- | Optional. The pull request event type about which you want to return
+-- information.
+describePullRequestEvents_pullRequestEventType :: Lens.Lens' DescribePullRequestEvents (Prelude.Maybe PullRequestEventType)
+describePullRequestEvents_pullRequestEventType = Lens.lens (\DescribePullRequestEvents' {pullRequestEventType} -> pullRequestEventType) (\s@DescribePullRequestEvents' {} a -> s {pullRequestEventType = a} :: DescribePullRequestEvents)
+
+-- | The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+describePullRequestEvents_pullRequestId :: Lens.Lens' DescribePullRequestEvents Prelude.Text
+describePullRequestEvents_pullRequestId = Lens.lens (\DescribePullRequestEvents' {pullRequestId} -> pullRequestId) (\s@DescribePullRequestEvents' {} a -> s {pullRequestId = a} :: DescribePullRequestEvents)
+
+instance Core.AWSPager DescribePullRequestEvents where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? describePullRequestEventsResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^. describePullRequestEventsResponse_pullRequestEvents
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& describePullRequestEvents_nextToken
+          Lens..~ rs
+          Lens.^? describePullRequestEventsResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest DescribePullRequestEvents where
+  type
+    AWSResponse DescribePullRequestEvents =
+      DescribePullRequestEventsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DescribePullRequestEventsResponse'
+            Prelude.<$> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> ( x
+                            Data..?> "pullRequestEvents"
+                            Core..!@ Prelude.mempty
+                        )
+      )
+
+instance Prelude.Hashable DescribePullRequestEvents where
+  hashWithSalt _salt DescribePullRequestEvents' {..} =
+    _salt
+      `Prelude.hashWithSalt` actorArn
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` pullRequestEventType
+      `Prelude.hashWithSalt` pullRequestId
+
+instance Prelude.NFData DescribePullRequestEvents where
+  rnf DescribePullRequestEvents' {..} =
+    Prelude.rnf actorArn
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf pullRequestEventType
+      `Prelude.seq` Prelude.rnf pullRequestId
+
+instance Data.ToHeaders DescribePullRequestEvents where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.DescribePullRequestEvents" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DescribePullRequestEvents where
+  toJSON DescribePullRequestEvents' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("actorArn" Data..=) Prelude.<$> actorArn,
+            ("maxResults" Data..=) Prelude.<$> maxResults,
+            ("nextToken" Data..=) Prelude.<$> nextToken,
+            ("pullRequestEventType" Data..=)
+              Prelude.<$> pullRequestEventType,
+            Prelude.Just
+              ("pullRequestId" Data..= pullRequestId)
+          ]
+      )
+
+instance Data.ToPath DescribePullRequestEvents where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery DescribePullRequestEvents where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDescribePullRequestEventsResponse' smart constructor.
+data DescribePullRequestEventsResponse = DescribePullRequestEventsResponse'
+  { -- | An enumeration token that can be used in a request to return the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | Information about the pull request events.
+    pullRequestEvents :: [PullRequestEvent]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribePullRequestEventsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describePullRequestEventsResponse_nextToken' - An enumeration token that can be used in a request to return the next
+-- batch of the results.
+--
+-- 'httpStatus', 'describePullRequestEventsResponse_httpStatus' - The response's http status code.
+--
+-- 'pullRequestEvents', 'describePullRequestEventsResponse_pullRequestEvents' - Information about the pull request events.
+newDescribePullRequestEventsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribePullRequestEventsResponse
+newDescribePullRequestEventsResponse pHttpStatus_ =
+  DescribePullRequestEventsResponse'
+    { nextToken =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_,
+      pullRequestEvents = Prelude.mempty
+    }
+
+-- | An enumeration token that can be used in a request to return the next
+-- batch of the results.
+describePullRequestEventsResponse_nextToken :: Lens.Lens' DescribePullRequestEventsResponse (Prelude.Maybe Prelude.Text)
+describePullRequestEventsResponse_nextToken = Lens.lens (\DescribePullRequestEventsResponse' {nextToken} -> nextToken) (\s@DescribePullRequestEventsResponse' {} a -> s {nextToken = a} :: DescribePullRequestEventsResponse)
+
+-- | The response's http status code.
+describePullRequestEventsResponse_httpStatus :: Lens.Lens' DescribePullRequestEventsResponse Prelude.Int
+describePullRequestEventsResponse_httpStatus = Lens.lens (\DescribePullRequestEventsResponse' {httpStatus} -> httpStatus) (\s@DescribePullRequestEventsResponse' {} a -> s {httpStatus = a} :: DescribePullRequestEventsResponse)
+
+-- | Information about the pull request events.
+describePullRequestEventsResponse_pullRequestEvents :: Lens.Lens' DescribePullRequestEventsResponse [PullRequestEvent]
+describePullRequestEventsResponse_pullRequestEvents = Lens.lens (\DescribePullRequestEventsResponse' {pullRequestEvents} -> pullRequestEvents) (\s@DescribePullRequestEventsResponse' {} a -> s {pullRequestEvents = a} :: DescribePullRequestEventsResponse) Prelude.. Lens.coerced
+
+instance
+  Prelude.NFData
+    DescribePullRequestEventsResponse
+  where
+  rnf DescribePullRequestEventsResponse' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf pullRequestEvents
diff --git a/gen/Amazonka/CodeCommit/DisassociateApprovalRuleTemplateFromRepository.hs b/gen/Amazonka/CodeCommit/DisassociateApprovalRuleTemplateFromRepository.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/DisassociateApprovalRuleTemplateFromRepository.hs
@@ -0,0 +1,198 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.DisassociateApprovalRuleTemplateFromRepository
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes the association between a template and a repository so that
+-- approval rules based on the template are not automatically created when
+-- pull requests are created in the specified repository. This does not
+-- delete any approval rules previously created for pull requests through
+-- the template association.
+module Amazonka.CodeCommit.DisassociateApprovalRuleTemplateFromRepository
+  ( -- * Creating a Request
+    DisassociateApprovalRuleTemplateFromRepository (..),
+    newDisassociateApprovalRuleTemplateFromRepository,
+
+    -- * Request Lenses
+    disassociateApprovalRuleTemplateFromRepository_approvalRuleTemplateName,
+    disassociateApprovalRuleTemplateFromRepository_repositoryName,
+
+    -- * Destructuring the Response
+    DisassociateApprovalRuleTemplateFromRepositoryResponse (..),
+    newDisassociateApprovalRuleTemplateFromRepositoryResponse,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newDisassociateApprovalRuleTemplateFromRepository' smart constructor.
+data DisassociateApprovalRuleTemplateFromRepository = DisassociateApprovalRuleTemplateFromRepository'
+  { -- | The name of the approval rule template to disassociate from a specified
+    -- repository.
+    approvalRuleTemplateName :: Prelude.Text,
+    -- | The name of the repository you want to disassociate from the template.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DisassociateApprovalRuleTemplateFromRepository' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleTemplateName', 'disassociateApprovalRuleTemplateFromRepository_approvalRuleTemplateName' - The name of the approval rule template to disassociate from a specified
+-- repository.
+--
+-- 'repositoryName', 'disassociateApprovalRuleTemplateFromRepository_repositoryName' - The name of the repository you want to disassociate from the template.
+newDisassociateApprovalRuleTemplateFromRepository ::
+  -- | 'approvalRuleTemplateName'
+  Prelude.Text ->
+  -- | 'repositoryName'
+  Prelude.Text ->
+  DisassociateApprovalRuleTemplateFromRepository
+newDisassociateApprovalRuleTemplateFromRepository
+  pApprovalRuleTemplateName_
+  pRepositoryName_ =
+    DisassociateApprovalRuleTemplateFromRepository'
+      { approvalRuleTemplateName =
+          pApprovalRuleTemplateName_,
+        repositoryName =
+          pRepositoryName_
+      }
+
+-- | The name of the approval rule template to disassociate from a specified
+-- repository.
+disassociateApprovalRuleTemplateFromRepository_approvalRuleTemplateName :: Lens.Lens' DisassociateApprovalRuleTemplateFromRepository Prelude.Text
+disassociateApprovalRuleTemplateFromRepository_approvalRuleTemplateName = Lens.lens (\DisassociateApprovalRuleTemplateFromRepository' {approvalRuleTemplateName} -> approvalRuleTemplateName) (\s@DisassociateApprovalRuleTemplateFromRepository' {} a -> s {approvalRuleTemplateName = a} :: DisassociateApprovalRuleTemplateFromRepository)
+
+-- | The name of the repository you want to disassociate from the template.
+disassociateApprovalRuleTemplateFromRepository_repositoryName :: Lens.Lens' DisassociateApprovalRuleTemplateFromRepository Prelude.Text
+disassociateApprovalRuleTemplateFromRepository_repositoryName = Lens.lens (\DisassociateApprovalRuleTemplateFromRepository' {repositoryName} -> repositoryName) (\s@DisassociateApprovalRuleTemplateFromRepository' {} a -> s {repositoryName = a} :: DisassociateApprovalRuleTemplateFromRepository)
+
+instance
+  Core.AWSRequest
+    DisassociateApprovalRuleTemplateFromRepository
+  where
+  type
+    AWSResponse
+      DisassociateApprovalRuleTemplateFromRepository =
+      DisassociateApprovalRuleTemplateFromRepositoryResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveNull
+      DisassociateApprovalRuleTemplateFromRepositoryResponse'
+
+instance
+  Prelude.Hashable
+    DisassociateApprovalRuleTemplateFromRepository
+  where
+  hashWithSalt
+    _salt
+    DisassociateApprovalRuleTemplateFromRepository' {..} =
+      _salt
+        `Prelude.hashWithSalt` approvalRuleTemplateName
+        `Prelude.hashWithSalt` repositoryName
+
+instance
+  Prelude.NFData
+    DisassociateApprovalRuleTemplateFromRepository
+  where
+  rnf
+    DisassociateApprovalRuleTemplateFromRepository' {..} =
+      Prelude.rnf approvalRuleTemplateName
+        `Prelude.seq` Prelude.rnf repositoryName
+
+instance
+  Data.ToHeaders
+    DisassociateApprovalRuleTemplateFromRepository
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.DisassociateApprovalRuleTemplateFromRepository" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    DisassociateApprovalRuleTemplateFromRepository
+  where
+  toJSON
+    DisassociateApprovalRuleTemplateFromRepository' {..} =
+      Data.object
+        ( Prelude.catMaybes
+            [ Prelude.Just
+                ( "approvalRuleTemplateName"
+                    Data..= approvalRuleTemplateName
+                ),
+              Prelude.Just
+                ("repositoryName" Data..= repositoryName)
+            ]
+        )
+
+instance
+  Data.ToPath
+    DisassociateApprovalRuleTemplateFromRepository
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    DisassociateApprovalRuleTemplateFromRepository
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDisassociateApprovalRuleTemplateFromRepositoryResponse' smart constructor.
+data DisassociateApprovalRuleTemplateFromRepositoryResponse = DisassociateApprovalRuleTemplateFromRepositoryResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DisassociateApprovalRuleTemplateFromRepositoryResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newDisassociateApprovalRuleTemplateFromRepositoryResponse ::
+  DisassociateApprovalRuleTemplateFromRepositoryResponse
+newDisassociateApprovalRuleTemplateFromRepositoryResponse =
+  DisassociateApprovalRuleTemplateFromRepositoryResponse'
+
+instance
+  Prelude.NFData
+    DisassociateApprovalRuleTemplateFromRepositoryResponse
+  where
+  rnf _ = ()
diff --git a/gen/Amazonka/CodeCommit/EvaluatePullRequestApprovalRules.hs b/gen/Amazonka/CodeCommit/EvaluatePullRequestApprovalRules.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/EvaluatePullRequestApprovalRules.hs
@@ -0,0 +1,232 @@
+{-# 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.CodeCommit.EvaluatePullRequestApprovalRules
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Evaluates whether a pull request has met all the conditions specified in
+-- its associated approval rules.
+module Amazonka.CodeCommit.EvaluatePullRequestApprovalRules
+  ( -- * Creating a Request
+    EvaluatePullRequestApprovalRules (..),
+    newEvaluatePullRequestApprovalRules,
+
+    -- * Request Lenses
+    evaluatePullRequestApprovalRules_pullRequestId,
+    evaluatePullRequestApprovalRules_revisionId,
+
+    -- * Destructuring the Response
+    EvaluatePullRequestApprovalRulesResponse (..),
+    newEvaluatePullRequestApprovalRulesResponse,
+
+    -- * Response Lenses
+    evaluatePullRequestApprovalRulesResponse_httpStatus,
+    evaluatePullRequestApprovalRulesResponse_evaluation,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newEvaluatePullRequestApprovalRules' smart constructor.
+data EvaluatePullRequestApprovalRules = EvaluatePullRequestApprovalRules'
+  { -- | The system-generated ID of the pull request you want to evaluate.
+    pullRequestId :: Prelude.Text,
+    -- | The system-generated ID for the pull request revision. To retrieve the
+    -- most recent revision ID for a pull request, use GetPullRequest.
+    revisionId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'EvaluatePullRequestApprovalRules' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequestId', 'evaluatePullRequestApprovalRules_pullRequestId' - The system-generated ID of the pull request you want to evaluate.
+--
+-- 'revisionId', 'evaluatePullRequestApprovalRules_revisionId' - The system-generated ID for the pull request revision. To retrieve the
+-- most recent revision ID for a pull request, use GetPullRequest.
+newEvaluatePullRequestApprovalRules ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'revisionId'
+  Prelude.Text ->
+  EvaluatePullRequestApprovalRules
+newEvaluatePullRequestApprovalRules
+  pPullRequestId_
+  pRevisionId_ =
+    EvaluatePullRequestApprovalRules'
+      { pullRequestId =
+          pPullRequestId_,
+        revisionId = pRevisionId_
+      }
+
+-- | The system-generated ID of the pull request you want to evaluate.
+evaluatePullRequestApprovalRules_pullRequestId :: Lens.Lens' EvaluatePullRequestApprovalRules Prelude.Text
+evaluatePullRequestApprovalRules_pullRequestId = Lens.lens (\EvaluatePullRequestApprovalRules' {pullRequestId} -> pullRequestId) (\s@EvaluatePullRequestApprovalRules' {} a -> s {pullRequestId = a} :: EvaluatePullRequestApprovalRules)
+
+-- | The system-generated ID for the pull request revision. To retrieve the
+-- most recent revision ID for a pull request, use GetPullRequest.
+evaluatePullRequestApprovalRules_revisionId :: Lens.Lens' EvaluatePullRequestApprovalRules Prelude.Text
+evaluatePullRequestApprovalRules_revisionId = Lens.lens (\EvaluatePullRequestApprovalRules' {revisionId} -> revisionId) (\s@EvaluatePullRequestApprovalRules' {} a -> s {revisionId = a} :: EvaluatePullRequestApprovalRules)
+
+instance
+  Core.AWSRequest
+    EvaluatePullRequestApprovalRules
+  where
+  type
+    AWSResponse EvaluatePullRequestApprovalRules =
+      EvaluatePullRequestApprovalRulesResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          EvaluatePullRequestApprovalRulesResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "evaluation")
+      )
+
+instance
+  Prelude.Hashable
+    EvaluatePullRequestApprovalRules
+  where
+  hashWithSalt
+    _salt
+    EvaluatePullRequestApprovalRules' {..} =
+      _salt
+        `Prelude.hashWithSalt` pullRequestId
+        `Prelude.hashWithSalt` revisionId
+
+instance
+  Prelude.NFData
+    EvaluatePullRequestApprovalRules
+  where
+  rnf EvaluatePullRequestApprovalRules' {..} =
+    Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf revisionId
+
+instance
+  Data.ToHeaders
+    EvaluatePullRequestApprovalRules
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.EvaluatePullRequestApprovalRules" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON EvaluatePullRequestApprovalRules where
+  toJSON EvaluatePullRequestApprovalRules' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just ("revisionId" Data..= revisionId)
+          ]
+      )
+
+instance Data.ToPath EvaluatePullRequestApprovalRules where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    EvaluatePullRequestApprovalRules
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newEvaluatePullRequestApprovalRulesResponse' smart constructor.
+data EvaluatePullRequestApprovalRulesResponse = EvaluatePullRequestApprovalRulesResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The result of the evaluation, including the names of the rules whose
+    -- conditions have been met (if any), the names of the rules whose
+    -- conditions have not been met (if any), whether the pull request is in
+    -- the approved state, and whether the pull request approval rule has been
+    -- set aside by an override.
+    evaluation :: Evaluation
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'EvaluatePullRequestApprovalRulesResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'evaluatePullRequestApprovalRulesResponse_httpStatus' - The response's http status code.
+--
+-- 'evaluation', 'evaluatePullRequestApprovalRulesResponse_evaluation' - The result of the evaluation, including the names of the rules whose
+-- conditions have been met (if any), the names of the rules whose
+-- conditions have not been met (if any), whether the pull request is in
+-- the approved state, and whether the pull request approval rule has been
+-- set aside by an override.
+newEvaluatePullRequestApprovalRulesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'evaluation'
+  Evaluation ->
+  EvaluatePullRequestApprovalRulesResponse
+newEvaluatePullRequestApprovalRulesResponse
+  pHttpStatus_
+  pEvaluation_ =
+    EvaluatePullRequestApprovalRulesResponse'
+      { httpStatus =
+          pHttpStatus_,
+        evaluation = pEvaluation_
+      }
+
+-- | The response's http status code.
+evaluatePullRequestApprovalRulesResponse_httpStatus :: Lens.Lens' EvaluatePullRequestApprovalRulesResponse Prelude.Int
+evaluatePullRequestApprovalRulesResponse_httpStatus = Lens.lens (\EvaluatePullRequestApprovalRulesResponse' {httpStatus} -> httpStatus) (\s@EvaluatePullRequestApprovalRulesResponse' {} a -> s {httpStatus = a} :: EvaluatePullRequestApprovalRulesResponse)
+
+-- | The result of the evaluation, including the names of the rules whose
+-- conditions have been met (if any), the names of the rules whose
+-- conditions have not been met (if any), whether the pull request is in
+-- the approved state, and whether the pull request approval rule has been
+-- set aside by an override.
+evaluatePullRequestApprovalRulesResponse_evaluation :: Lens.Lens' EvaluatePullRequestApprovalRulesResponse Evaluation
+evaluatePullRequestApprovalRulesResponse_evaluation = Lens.lens (\EvaluatePullRequestApprovalRulesResponse' {evaluation} -> evaluation) (\s@EvaluatePullRequestApprovalRulesResponse' {} a -> s {evaluation = a} :: EvaluatePullRequestApprovalRulesResponse)
+
+instance
+  Prelude.NFData
+    EvaluatePullRequestApprovalRulesResponse
+  where
+  rnf EvaluatePullRequestApprovalRulesResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf evaluation
diff --git a/gen/Amazonka/CodeCommit/GetApprovalRuleTemplate.hs b/gen/Amazonka/CodeCommit/GetApprovalRuleTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetApprovalRuleTemplate.hs
@@ -0,0 +1,188 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.GetApprovalRuleTemplate
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about a specified approval rule template.
+module Amazonka.CodeCommit.GetApprovalRuleTemplate
+  ( -- * Creating a Request
+    GetApprovalRuleTemplate (..),
+    newGetApprovalRuleTemplate,
+
+    -- * Request Lenses
+    getApprovalRuleTemplate_approvalRuleTemplateName,
+
+    -- * Destructuring the Response
+    GetApprovalRuleTemplateResponse (..),
+    newGetApprovalRuleTemplateResponse,
+
+    -- * Response Lenses
+    getApprovalRuleTemplateResponse_httpStatus,
+    getApprovalRuleTemplateResponse_approvalRuleTemplate,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetApprovalRuleTemplate' smart constructor.
+data GetApprovalRuleTemplate = GetApprovalRuleTemplate'
+  { -- | The name of the approval rule template for which you want to get
+    -- information.
+    approvalRuleTemplateName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetApprovalRuleTemplate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleTemplateName', 'getApprovalRuleTemplate_approvalRuleTemplateName' - The name of the approval rule template for which you want to get
+-- information.
+newGetApprovalRuleTemplate ::
+  -- | 'approvalRuleTemplateName'
+  Prelude.Text ->
+  GetApprovalRuleTemplate
+newGetApprovalRuleTemplate pApprovalRuleTemplateName_ =
+  GetApprovalRuleTemplate'
+    { approvalRuleTemplateName =
+        pApprovalRuleTemplateName_
+    }
+
+-- | The name of the approval rule template for which you want to get
+-- information.
+getApprovalRuleTemplate_approvalRuleTemplateName :: Lens.Lens' GetApprovalRuleTemplate Prelude.Text
+getApprovalRuleTemplate_approvalRuleTemplateName = Lens.lens (\GetApprovalRuleTemplate' {approvalRuleTemplateName} -> approvalRuleTemplateName) (\s@GetApprovalRuleTemplate' {} a -> s {approvalRuleTemplateName = a} :: GetApprovalRuleTemplate)
+
+instance Core.AWSRequest GetApprovalRuleTemplate where
+  type
+    AWSResponse GetApprovalRuleTemplate =
+      GetApprovalRuleTemplateResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetApprovalRuleTemplateResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "approvalRuleTemplate")
+      )
+
+instance Prelude.Hashable GetApprovalRuleTemplate where
+  hashWithSalt _salt GetApprovalRuleTemplate' {..} =
+    _salt
+      `Prelude.hashWithSalt` approvalRuleTemplateName
+
+instance Prelude.NFData GetApprovalRuleTemplate where
+  rnf GetApprovalRuleTemplate' {..} =
+    Prelude.rnf approvalRuleTemplateName
+
+instance Data.ToHeaders GetApprovalRuleTemplate where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetApprovalRuleTemplate" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetApprovalRuleTemplate where
+  toJSON GetApprovalRuleTemplate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "approvalRuleTemplateName"
+                  Data..= approvalRuleTemplateName
+              )
+          ]
+      )
+
+instance Data.ToPath GetApprovalRuleTemplate where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetApprovalRuleTemplate where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetApprovalRuleTemplateResponse' smart constructor.
+data GetApprovalRuleTemplateResponse = GetApprovalRuleTemplateResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The content and structure of the approval rule template.
+    approvalRuleTemplate :: ApprovalRuleTemplate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetApprovalRuleTemplateResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'getApprovalRuleTemplateResponse_httpStatus' - The response's http status code.
+--
+-- 'approvalRuleTemplate', 'getApprovalRuleTemplateResponse_approvalRuleTemplate' - The content and structure of the approval rule template.
+newGetApprovalRuleTemplateResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'approvalRuleTemplate'
+  ApprovalRuleTemplate ->
+  GetApprovalRuleTemplateResponse
+newGetApprovalRuleTemplateResponse
+  pHttpStatus_
+  pApprovalRuleTemplate_ =
+    GetApprovalRuleTemplateResponse'
+      { httpStatus =
+          pHttpStatus_,
+        approvalRuleTemplate =
+          pApprovalRuleTemplate_
+      }
+
+-- | The response's http status code.
+getApprovalRuleTemplateResponse_httpStatus :: Lens.Lens' GetApprovalRuleTemplateResponse Prelude.Int
+getApprovalRuleTemplateResponse_httpStatus = Lens.lens (\GetApprovalRuleTemplateResponse' {httpStatus} -> httpStatus) (\s@GetApprovalRuleTemplateResponse' {} a -> s {httpStatus = a} :: GetApprovalRuleTemplateResponse)
+
+-- | The content and structure of the approval rule template.
+getApprovalRuleTemplateResponse_approvalRuleTemplate :: Lens.Lens' GetApprovalRuleTemplateResponse ApprovalRuleTemplate
+getApprovalRuleTemplateResponse_approvalRuleTemplate = Lens.lens (\GetApprovalRuleTemplateResponse' {approvalRuleTemplate} -> approvalRuleTemplate) (\s@GetApprovalRuleTemplateResponse' {} a -> s {approvalRuleTemplate = a} :: GetApprovalRuleTemplateResponse)
+
+instance
+  Prelude.NFData
+    GetApprovalRuleTemplateResponse
+  where
+  rnf GetApprovalRuleTemplateResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf approvalRuleTemplate
diff --git a/gen/Amazonka/CodeCommit/GetBlob.hs b/gen/Amazonka/CodeCommit/GetBlob.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetBlob.hs
@@ -0,0 +1,201 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.GetBlob
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the base-64 encoded content of an individual blob in a
+-- repository.
+module Amazonka.CodeCommit.GetBlob
+  ( -- * Creating a Request
+    GetBlob (..),
+    newGetBlob,
+
+    -- * Request Lenses
+    getBlob_repositoryName,
+    getBlob_blobId,
+
+    -- * Destructuring the Response
+    GetBlobResponse (..),
+    newGetBlobResponse,
+
+    -- * Response Lenses
+    getBlobResponse_httpStatus,
+    getBlobResponse_content,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a get blob operation.
+--
+-- /See:/ 'newGetBlob' smart constructor.
+data GetBlob = GetBlob'
+  { -- | The name of the repository that contains the blob.
+    repositoryName :: Prelude.Text,
+    -- | The ID of the blob, which is its SHA-1 pointer.
+    blobId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetBlob' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryName', 'getBlob_repositoryName' - The name of the repository that contains the blob.
+--
+-- 'blobId', 'getBlob_blobId' - The ID of the blob, which is its SHA-1 pointer.
+newGetBlob ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'blobId'
+  Prelude.Text ->
+  GetBlob
+newGetBlob pRepositoryName_ pBlobId_ =
+  GetBlob'
+    { repositoryName = pRepositoryName_,
+      blobId = pBlobId_
+    }
+
+-- | The name of the repository that contains the blob.
+getBlob_repositoryName :: Lens.Lens' GetBlob Prelude.Text
+getBlob_repositoryName = Lens.lens (\GetBlob' {repositoryName} -> repositoryName) (\s@GetBlob' {} a -> s {repositoryName = a} :: GetBlob)
+
+-- | The ID of the blob, which is its SHA-1 pointer.
+getBlob_blobId :: Lens.Lens' GetBlob Prelude.Text
+getBlob_blobId = Lens.lens (\GetBlob' {blobId} -> blobId) (\s@GetBlob' {} a -> s {blobId = a} :: GetBlob)
+
+instance Core.AWSRequest GetBlob where
+  type AWSResponse GetBlob = GetBlobResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetBlobResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "content")
+      )
+
+instance Prelude.Hashable GetBlob where
+  hashWithSalt _salt GetBlob' {..} =
+    _salt
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` blobId
+
+instance Prelude.NFData GetBlob where
+  rnf GetBlob' {..} =
+    Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf blobId
+
+instance Data.ToHeaders GetBlob where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetBlob" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetBlob where
+  toJSON GetBlob' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just ("blobId" Data..= blobId)
+          ]
+      )
+
+instance Data.ToPath GetBlob where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetBlob where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a get blob operation.
+--
+-- /See:/ 'newGetBlobResponse' smart constructor.
+data GetBlobResponse = GetBlobResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The content of the blob, usually a file.
+    content :: Data.Base64
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetBlobResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'getBlobResponse_httpStatus' - The response's http status code.
+--
+-- 'content', 'getBlobResponse_content' - The content of the blob, usually a file.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+newGetBlobResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'content'
+  Prelude.ByteString ->
+  GetBlobResponse
+newGetBlobResponse pHttpStatus_ pContent_ =
+  GetBlobResponse'
+    { httpStatus = pHttpStatus_,
+      content = Data._Base64 Lens.# pContent_
+    }
+
+-- | The response's http status code.
+getBlobResponse_httpStatus :: Lens.Lens' GetBlobResponse Prelude.Int
+getBlobResponse_httpStatus = Lens.lens (\GetBlobResponse' {httpStatus} -> httpStatus) (\s@GetBlobResponse' {} a -> s {httpStatus = a} :: GetBlobResponse)
+
+-- | The content of the blob, usually a file.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+getBlobResponse_content :: Lens.Lens' GetBlobResponse Prelude.ByteString
+getBlobResponse_content = Lens.lens (\GetBlobResponse' {content} -> content) (\s@GetBlobResponse' {} a -> s {content = a} :: GetBlobResponse) Prelude.. Data._Base64
+
+instance Prelude.NFData GetBlobResponse where
+  rnf GetBlobResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf content
diff --git a/gen/Amazonka/CodeCommit/GetBranch.hs b/gen/Amazonka/CodeCommit/GetBranch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetBranch.hs
@@ -0,0 +1,190 @@
+{-# 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.CodeCommit.GetBranch
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about a repository branch, including its name and
+-- the last commit ID.
+module Amazonka.CodeCommit.GetBranch
+  ( -- * Creating a Request
+    GetBranch (..),
+    newGetBranch,
+
+    -- * Request Lenses
+    getBranch_branchName,
+    getBranch_repositoryName,
+
+    -- * Destructuring the Response
+    GetBranchResponse (..),
+    newGetBranchResponse,
+
+    -- * Response Lenses
+    getBranchResponse_branch,
+    getBranchResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a get branch operation.
+--
+-- /See:/ 'newGetBranch' smart constructor.
+data GetBranch = GetBranch'
+  { -- | The name of the branch for which you want to retrieve information.
+    branchName :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository that contains the branch for which you want
+    -- to retrieve information.
+    repositoryName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetBranch' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'branchName', 'getBranch_branchName' - The name of the branch for which you want to retrieve information.
+--
+-- 'repositoryName', 'getBranch_repositoryName' - The name of the repository that contains the branch for which you want
+-- to retrieve information.
+newGetBranch ::
+  GetBranch
+newGetBranch =
+  GetBranch'
+    { branchName = Prelude.Nothing,
+      repositoryName = Prelude.Nothing
+    }
+
+-- | The name of the branch for which you want to retrieve information.
+getBranch_branchName :: Lens.Lens' GetBranch (Prelude.Maybe Prelude.Text)
+getBranch_branchName = Lens.lens (\GetBranch' {branchName} -> branchName) (\s@GetBranch' {} a -> s {branchName = a} :: GetBranch)
+
+-- | The name of the repository that contains the branch for which you want
+-- to retrieve information.
+getBranch_repositoryName :: Lens.Lens' GetBranch (Prelude.Maybe Prelude.Text)
+getBranch_repositoryName = Lens.lens (\GetBranch' {repositoryName} -> repositoryName) (\s@GetBranch' {} a -> s {repositoryName = a} :: GetBranch)
+
+instance Core.AWSRequest GetBranch where
+  type AWSResponse GetBranch = GetBranchResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetBranchResponse'
+            Prelude.<$> (x Data..?> "branch")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetBranch where
+  hashWithSalt _salt GetBranch' {..} =
+    _salt
+      `Prelude.hashWithSalt` branchName
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData GetBranch where
+  rnf GetBranch' {..} =
+    Prelude.rnf branchName
+      `Prelude.seq` Prelude.rnf repositoryName
+
+instance Data.ToHeaders GetBranch where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetBranch" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetBranch where
+  toJSON GetBranch' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("branchName" Data..=) Prelude.<$> branchName,
+            ("repositoryName" Data..=)
+              Prelude.<$> repositoryName
+          ]
+      )
+
+instance Data.ToPath GetBranch where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetBranch where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a get branch operation.
+--
+-- /See:/ 'newGetBranchResponse' smart constructor.
+data GetBranchResponse = GetBranchResponse'
+  { -- | The name of the branch.
+    branch :: Prelude.Maybe BranchInfo,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetBranchResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'branch', 'getBranchResponse_branch' - The name of the branch.
+--
+-- 'httpStatus', 'getBranchResponse_httpStatus' - The response's http status code.
+newGetBranchResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetBranchResponse
+newGetBranchResponse pHttpStatus_ =
+  GetBranchResponse'
+    { branch = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The name of the branch.
+getBranchResponse_branch :: Lens.Lens' GetBranchResponse (Prelude.Maybe BranchInfo)
+getBranchResponse_branch = Lens.lens (\GetBranchResponse' {branch} -> branch) (\s@GetBranchResponse' {} a -> s {branch = a} :: GetBranchResponse)
+
+-- | The response's http status code.
+getBranchResponse_httpStatus :: Lens.Lens' GetBranchResponse Prelude.Int
+getBranchResponse_httpStatus = Lens.lens (\GetBranchResponse' {httpStatus} -> httpStatus) (\s@GetBranchResponse' {} a -> s {httpStatus = a} :: GetBranchResponse)
+
+instance Prelude.NFData GetBranchResponse where
+  rnf GetBranchResponse' {..} =
+    Prelude.rnf branch
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/GetComment.hs b/gen/Amazonka/CodeCommit/GetComment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetComment.hs
@@ -0,0 +1,173 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.GetComment
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the content of a comment made on a change, file, or commit in a
+-- repository.
+--
+-- Reaction counts might include numbers from user identities who were
+-- deleted after the reaction was made. For a count of reactions from
+-- active identities, use GetCommentReactions.
+module Amazonka.CodeCommit.GetComment
+  ( -- * Creating a Request
+    GetComment (..),
+    newGetComment,
+
+    -- * Request Lenses
+    getComment_commentId,
+
+    -- * Destructuring the Response
+    GetCommentResponse (..),
+    newGetCommentResponse,
+
+    -- * Response Lenses
+    getCommentResponse_comment,
+    getCommentResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetComment' smart constructor.
+data GetComment = GetComment'
+  { -- | The unique, system-generated ID of the comment. To get this ID, use
+    -- GetCommentsForComparedCommit or GetCommentsForPullRequest.
+    commentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetComment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commentId', 'getComment_commentId' - The unique, system-generated ID of the comment. To get this ID, use
+-- GetCommentsForComparedCommit or GetCommentsForPullRequest.
+newGetComment ::
+  -- | 'commentId'
+  Prelude.Text ->
+  GetComment
+newGetComment pCommentId_ =
+  GetComment' {commentId = pCommentId_}
+
+-- | The unique, system-generated ID of the comment. To get this ID, use
+-- GetCommentsForComparedCommit or GetCommentsForPullRequest.
+getComment_commentId :: Lens.Lens' GetComment Prelude.Text
+getComment_commentId = Lens.lens (\GetComment' {commentId} -> commentId) (\s@GetComment' {} a -> s {commentId = a} :: GetComment)
+
+instance Core.AWSRequest GetComment where
+  type AWSResponse GetComment = GetCommentResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetCommentResponse'
+            Prelude.<$> (x Data..?> "comment")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetComment where
+  hashWithSalt _salt GetComment' {..} =
+    _salt `Prelude.hashWithSalt` commentId
+
+instance Prelude.NFData GetComment where
+  rnf GetComment' {..} = Prelude.rnf commentId
+
+instance Data.ToHeaders GetComment where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetComment" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetComment where
+  toJSON GetComment' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("commentId" Data..= commentId)]
+      )
+
+instance Data.ToPath GetComment where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetComment where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetCommentResponse' smart constructor.
+data GetCommentResponse = GetCommentResponse'
+  { -- | The contents of the comment.
+    comment :: Prelude.Maybe Comment,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetCommentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'comment', 'getCommentResponse_comment' - The contents of the comment.
+--
+-- 'httpStatus', 'getCommentResponse_httpStatus' - The response's http status code.
+newGetCommentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetCommentResponse
+newGetCommentResponse pHttpStatus_ =
+  GetCommentResponse'
+    { comment = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The contents of the comment.
+getCommentResponse_comment :: Lens.Lens' GetCommentResponse (Prelude.Maybe Comment)
+getCommentResponse_comment = Lens.lens (\GetCommentResponse' {comment} -> comment) (\s@GetCommentResponse' {} a -> s {comment = a} :: GetCommentResponse)
+
+-- | The response's http status code.
+getCommentResponse_httpStatus :: Lens.Lens' GetCommentResponse Prelude.Int
+getCommentResponse_httpStatus = Lens.lens (\GetCommentResponse' {httpStatus} -> httpStatus) (\s@GetCommentResponse' {} a -> s {httpStatus = a} :: GetCommentResponse)
+
+instance Prelude.NFData GetCommentResponse where
+  rnf GetCommentResponse' {..} =
+    Prelude.rnf comment
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/GetCommentReactions.hs b/gen/Amazonka/CodeCommit/GetCommentReactions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetCommentReactions.hs
@@ -0,0 +1,241 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.GetCommentReactions
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about reactions to a specified comment ID. Reactions
+-- from users who have been deleted will not be included in the count.
+module Amazonka.CodeCommit.GetCommentReactions
+  ( -- * Creating a Request
+    GetCommentReactions (..),
+    newGetCommentReactions,
+
+    -- * Request Lenses
+    getCommentReactions_maxResults,
+    getCommentReactions_nextToken,
+    getCommentReactions_reactionUserArn,
+    getCommentReactions_commentId,
+
+    -- * Destructuring the Response
+    GetCommentReactionsResponse (..),
+    newGetCommentReactionsResponse,
+
+    -- * Response Lenses
+    getCommentReactionsResponse_nextToken,
+    getCommentReactionsResponse_httpStatus,
+    getCommentReactionsResponse_reactionsForComment,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetCommentReactions' smart constructor.
+data GetCommentReactions = GetCommentReactions'
+  { -- | A non-zero, non-negative integer used to limit the number of returned
+    -- results. The default is the same as the allowed maximum, 1,000.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | An enumeration token that, when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Optional. The Amazon Resource Name (ARN) of the user or identity for
+    -- which you want to get reaction information.
+    reactionUserArn :: Prelude.Maybe Prelude.Text,
+    -- | The ID of the comment for which you want to get reactions information.
+    commentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetCommentReactions' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'maxResults', 'getCommentReactions_maxResults' - A non-zero, non-negative integer used to limit the number of returned
+-- results. The default is the same as the allowed maximum, 1,000.
+--
+-- 'nextToken', 'getCommentReactions_nextToken' - An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+--
+-- 'reactionUserArn', 'getCommentReactions_reactionUserArn' - Optional. The Amazon Resource Name (ARN) of the user or identity for
+-- which you want to get reaction information.
+--
+-- 'commentId', 'getCommentReactions_commentId' - The ID of the comment for which you want to get reactions information.
+newGetCommentReactions ::
+  -- | 'commentId'
+  Prelude.Text ->
+  GetCommentReactions
+newGetCommentReactions pCommentId_ =
+  GetCommentReactions'
+    { maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      reactionUserArn = Prelude.Nothing,
+      commentId = pCommentId_
+    }
+
+-- | A non-zero, non-negative integer used to limit the number of returned
+-- results. The default is the same as the allowed maximum, 1,000.
+getCommentReactions_maxResults :: Lens.Lens' GetCommentReactions (Prelude.Maybe Prelude.Int)
+getCommentReactions_maxResults = Lens.lens (\GetCommentReactions' {maxResults} -> maxResults) (\s@GetCommentReactions' {} a -> s {maxResults = a} :: GetCommentReactions)
+
+-- | An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+getCommentReactions_nextToken :: Lens.Lens' GetCommentReactions (Prelude.Maybe Prelude.Text)
+getCommentReactions_nextToken = Lens.lens (\GetCommentReactions' {nextToken} -> nextToken) (\s@GetCommentReactions' {} a -> s {nextToken = a} :: GetCommentReactions)
+
+-- | Optional. The Amazon Resource Name (ARN) of the user or identity for
+-- which you want to get reaction information.
+getCommentReactions_reactionUserArn :: Lens.Lens' GetCommentReactions (Prelude.Maybe Prelude.Text)
+getCommentReactions_reactionUserArn = Lens.lens (\GetCommentReactions' {reactionUserArn} -> reactionUserArn) (\s@GetCommentReactions' {} a -> s {reactionUserArn = a} :: GetCommentReactions)
+
+-- | The ID of the comment for which you want to get reactions information.
+getCommentReactions_commentId :: Lens.Lens' GetCommentReactions Prelude.Text
+getCommentReactions_commentId = Lens.lens (\GetCommentReactions' {commentId} -> commentId) (\s@GetCommentReactions' {} a -> s {commentId = a} :: GetCommentReactions)
+
+instance Core.AWSRequest GetCommentReactions where
+  type
+    AWSResponse GetCommentReactions =
+      GetCommentReactionsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetCommentReactionsResponse'
+            Prelude.<$> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> ( x
+                            Data..?> "reactionsForComment"
+                            Core..!@ Prelude.mempty
+                        )
+      )
+
+instance Prelude.Hashable GetCommentReactions where
+  hashWithSalt _salt GetCommentReactions' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` reactionUserArn
+      `Prelude.hashWithSalt` commentId
+
+instance Prelude.NFData GetCommentReactions where
+  rnf GetCommentReactions' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf reactionUserArn
+      `Prelude.seq` Prelude.rnf commentId
+
+instance Data.ToHeaders GetCommentReactions where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetCommentReactions" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetCommentReactions where
+  toJSON GetCommentReactions' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("maxResults" Data..=) Prelude.<$> maxResults,
+            ("nextToken" Data..=) Prelude.<$> nextToken,
+            ("reactionUserArn" Data..=)
+              Prelude.<$> reactionUserArn,
+            Prelude.Just ("commentId" Data..= commentId)
+          ]
+      )
+
+instance Data.ToPath GetCommentReactions where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetCommentReactions where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetCommentReactionsResponse' smart constructor.
+data GetCommentReactionsResponse = GetCommentReactionsResponse'
+  { -- | An enumeration token that can be used in a request to return the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | An array of reactions to the specified comment.
+    reactionsForComment :: [ReactionForComment]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetCommentReactionsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getCommentReactionsResponse_nextToken' - An enumeration token that can be used in a request to return the next
+-- batch of the results.
+--
+-- 'httpStatus', 'getCommentReactionsResponse_httpStatus' - The response's http status code.
+--
+-- 'reactionsForComment', 'getCommentReactionsResponse_reactionsForComment' - An array of reactions to the specified comment.
+newGetCommentReactionsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetCommentReactionsResponse
+newGetCommentReactionsResponse pHttpStatus_ =
+  GetCommentReactionsResponse'
+    { nextToken =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_,
+      reactionsForComment = Prelude.mempty
+    }
+
+-- | An enumeration token that can be used in a request to return the next
+-- batch of the results.
+getCommentReactionsResponse_nextToken :: Lens.Lens' GetCommentReactionsResponse (Prelude.Maybe Prelude.Text)
+getCommentReactionsResponse_nextToken = Lens.lens (\GetCommentReactionsResponse' {nextToken} -> nextToken) (\s@GetCommentReactionsResponse' {} a -> s {nextToken = a} :: GetCommentReactionsResponse)
+
+-- | The response's http status code.
+getCommentReactionsResponse_httpStatus :: Lens.Lens' GetCommentReactionsResponse Prelude.Int
+getCommentReactionsResponse_httpStatus = Lens.lens (\GetCommentReactionsResponse' {httpStatus} -> httpStatus) (\s@GetCommentReactionsResponse' {} a -> s {httpStatus = a} :: GetCommentReactionsResponse)
+
+-- | An array of reactions to the specified comment.
+getCommentReactionsResponse_reactionsForComment :: Lens.Lens' GetCommentReactionsResponse [ReactionForComment]
+getCommentReactionsResponse_reactionsForComment = Lens.lens (\GetCommentReactionsResponse' {reactionsForComment} -> reactionsForComment) (\s@GetCommentReactionsResponse' {} a -> s {reactionsForComment = a} :: GetCommentReactionsResponse) Prelude.. Lens.coerced
+
+instance Prelude.NFData GetCommentReactionsResponse where
+  rnf GetCommentReactionsResponse' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf reactionsForComment
diff --git a/gen/Amazonka/CodeCommit/GetCommentsForComparedCommit.hs b/gen/Amazonka/CodeCommit/GetCommentsForComparedCommit.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetCommentsForComparedCommit.hs
@@ -0,0 +1,298 @@
+{-# 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.CodeCommit.GetCommentsForComparedCommit
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about comments made on the comparison between two
+-- commits.
+--
+-- Reaction counts might include numbers from user identities who were
+-- deleted after the reaction was made. For a count of reactions from
+-- active identities, use GetCommentReactions.
+--
+-- This operation returns paginated results.
+module Amazonka.CodeCommit.GetCommentsForComparedCommit
+  ( -- * Creating a Request
+    GetCommentsForComparedCommit (..),
+    newGetCommentsForComparedCommit,
+
+    -- * Request Lenses
+    getCommentsForComparedCommit_beforeCommitId,
+    getCommentsForComparedCommit_maxResults,
+    getCommentsForComparedCommit_nextToken,
+    getCommentsForComparedCommit_repositoryName,
+    getCommentsForComparedCommit_afterCommitId,
+
+    -- * Destructuring the Response
+    GetCommentsForComparedCommitResponse (..),
+    newGetCommentsForComparedCommitResponse,
+
+    -- * Response Lenses
+    getCommentsForComparedCommitResponse_commentsForComparedCommitData,
+    getCommentsForComparedCommitResponse_nextToken,
+    getCommentsForComparedCommitResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetCommentsForComparedCommit' smart constructor.
+data GetCommentsForComparedCommit = GetCommentsForComparedCommit'
+  { -- | To establish the directionality of the comparison, the full commit ID of
+    -- the before commit.
+    beforeCommitId :: Prelude.Maybe Prelude.Text,
+    -- | A non-zero, non-negative integer used to limit the number of returned
+    -- results. The default is 100 comments, but you can configure up to 500.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | An enumeration token that when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where you want to compare commits.
+    repositoryName :: Prelude.Text,
+    -- | To establish the directionality of the comparison, the full commit ID of
+    -- the after commit.
+    afterCommitId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetCommentsForComparedCommit' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'beforeCommitId', 'getCommentsForComparedCommit_beforeCommitId' - To establish the directionality of the comparison, the full commit ID of
+-- the before commit.
+--
+-- 'maxResults', 'getCommentsForComparedCommit_maxResults' - A non-zero, non-negative integer used to limit the number of returned
+-- results. The default is 100 comments, but you can configure up to 500.
+--
+-- 'nextToken', 'getCommentsForComparedCommit_nextToken' - An enumeration token that when provided in a request, returns the next
+-- batch of the results.
+--
+-- 'repositoryName', 'getCommentsForComparedCommit_repositoryName' - The name of the repository where you want to compare commits.
+--
+-- 'afterCommitId', 'getCommentsForComparedCommit_afterCommitId' - To establish the directionality of the comparison, the full commit ID of
+-- the after commit.
+newGetCommentsForComparedCommit ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'afterCommitId'
+  Prelude.Text ->
+  GetCommentsForComparedCommit
+newGetCommentsForComparedCommit
+  pRepositoryName_
+  pAfterCommitId_ =
+    GetCommentsForComparedCommit'
+      { beforeCommitId =
+          Prelude.Nothing,
+        maxResults = Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        afterCommitId = pAfterCommitId_
+      }
+
+-- | To establish the directionality of the comparison, the full commit ID of
+-- the before commit.
+getCommentsForComparedCommit_beforeCommitId :: Lens.Lens' GetCommentsForComparedCommit (Prelude.Maybe Prelude.Text)
+getCommentsForComparedCommit_beforeCommitId = Lens.lens (\GetCommentsForComparedCommit' {beforeCommitId} -> beforeCommitId) (\s@GetCommentsForComparedCommit' {} a -> s {beforeCommitId = a} :: GetCommentsForComparedCommit)
+
+-- | A non-zero, non-negative integer used to limit the number of returned
+-- results. The default is 100 comments, but you can configure up to 500.
+getCommentsForComparedCommit_maxResults :: Lens.Lens' GetCommentsForComparedCommit (Prelude.Maybe Prelude.Int)
+getCommentsForComparedCommit_maxResults = Lens.lens (\GetCommentsForComparedCommit' {maxResults} -> maxResults) (\s@GetCommentsForComparedCommit' {} a -> s {maxResults = a} :: GetCommentsForComparedCommit)
+
+-- | An enumeration token that when provided in a request, returns the next
+-- batch of the results.
+getCommentsForComparedCommit_nextToken :: Lens.Lens' GetCommentsForComparedCommit (Prelude.Maybe Prelude.Text)
+getCommentsForComparedCommit_nextToken = Lens.lens (\GetCommentsForComparedCommit' {nextToken} -> nextToken) (\s@GetCommentsForComparedCommit' {} a -> s {nextToken = a} :: GetCommentsForComparedCommit)
+
+-- | The name of the repository where you want to compare commits.
+getCommentsForComparedCommit_repositoryName :: Lens.Lens' GetCommentsForComparedCommit Prelude.Text
+getCommentsForComparedCommit_repositoryName = Lens.lens (\GetCommentsForComparedCommit' {repositoryName} -> repositoryName) (\s@GetCommentsForComparedCommit' {} a -> s {repositoryName = a} :: GetCommentsForComparedCommit)
+
+-- | To establish the directionality of the comparison, the full commit ID of
+-- the after commit.
+getCommentsForComparedCommit_afterCommitId :: Lens.Lens' GetCommentsForComparedCommit Prelude.Text
+getCommentsForComparedCommit_afterCommitId = Lens.lens (\GetCommentsForComparedCommit' {afterCommitId} -> afterCommitId) (\s@GetCommentsForComparedCommit' {} a -> s {afterCommitId = a} :: GetCommentsForComparedCommit)
+
+instance Core.AWSPager GetCommentsForComparedCommit where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? getCommentsForComparedCommitResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? getCommentsForComparedCommitResponse_commentsForComparedCommitData
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& getCommentsForComparedCommit_nextToken
+          Lens..~ rs
+          Lens.^? getCommentsForComparedCommitResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest GetCommentsForComparedCommit where
+  type
+    AWSResponse GetCommentsForComparedCommit =
+      GetCommentsForComparedCommitResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetCommentsForComparedCommitResponse'
+            Prelude.<$> ( x
+                            Data..?> "commentsForComparedCommitData"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    GetCommentsForComparedCommit
+  where
+  hashWithSalt _salt GetCommentsForComparedCommit' {..} =
+    _salt
+      `Prelude.hashWithSalt` beforeCommitId
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` afterCommitId
+
+instance Prelude.NFData GetCommentsForComparedCommit where
+  rnf GetCommentsForComparedCommit' {..} =
+    Prelude.rnf beforeCommitId
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf afterCommitId
+
+instance Data.ToHeaders GetCommentsForComparedCommit where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetCommentsForComparedCommit" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetCommentsForComparedCommit where
+  toJSON GetCommentsForComparedCommit' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("beforeCommitId" Data..=)
+              Prelude.<$> beforeCommitId,
+            ("maxResults" Data..=) Prelude.<$> maxResults,
+            ("nextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ("afterCommitId" Data..= afterCommitId)
+          ]
+      )
+
+instance Data.ToPath GetCommentsForComparedCommit where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetCommentsForComparedCommit where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetCommentsForComparedCommitResponse' smart constructor.
+data GetCommentsForComparedCommitResponse = GetCommentsForComparedCommitResponse'
+  { -- | A list of comment objects on the compared commit.
+    commentsForComparedCommitData :: Prelude.Maybe [CommentsForComparedCommit],
+    -- | An enumeration token that can be used in a request to return the next
+    -- batch of the 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 'GetCommentsForComparedCommitResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commentsForComparedCommitData', 'getCommentsForComparedCommitResponse_commentsForComparedCommitData' - A list of comment objects on the compared commit.
+--
+-- 'nextToken', 'getCommentsForComparedCommitResponse_nextToken' - An enumeration token that can be used in a request to return the next
+-- batch of the results.
+--
+-- 'httpStatus', 'getCommentsForComparedCommitResponse_httpStatus' - The response's http status code.
+newGetCommentsForComparedCommitResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetCommentsForComparedCommitResponse
+newGetCommentsForComparedCommitResponse pHttpStatus_ =
+  GetCommentsForComparedCommitResponse'
+    { commentsForComparedCommitData =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | A list of comment objects on the compared commit.
+getCommentsForComparedCommitResponse_commentsForComparedCommitData :: Lens.Lens' GetCommentsForComparedCommitResponse (Prelude.Maybe [CommentsForComparedCommit])
+getCommentsForComparedCommitResponse_commentsForComparedCommitData = Lens.lens (\GetCommentsForComparedCommitResponse' {commentsForComparedCommitData} -> commentsForComparedCommitData) (\s@GetCommentsForComparedCommitResponse' {} a -> s {commentsForComparedCommitData = a} :: GetCommentsForComparedCommitResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | An enumeration token that can be used in a request to return the next
+-- batch of the results.
+getCommentsForComparedCommitResponse_nextToken :: Lens.Lens' GetCommentsForComparedCommitResponse (Prelude.Maybe Prelude.Text)
+getCommentsForComparedCommitResponse_nextToken = Lens.lens (\GetCommentsForComparedCommitResponse' {nextToken} -> nextToken) (\s@GetCommentsForComparedCommitResponse' {} a -> s {nextToken = a} :: GetCommentsForComparedCommitResponse)
+
+-- | The response's http status code.
+getCommentsForComparedCommitResponse_httpStatus :: Lens.Lens' GetCommentsForComparedCommitResponse Prelude.Int
+getCommentsForComparedCommitResponse_httpStatus = Lens.lens (\GetCommentsForComparedCommitResponse' {httpStatus} -> httpStatus) (\s@GetCommentsForComparedCommitResponse' {} a -> s {httpStatus = a} :: GetCommentsForComparedCommitResponse)
+
+instance
+  Prelude.NFData
+    GetCommentsForComparedCommitResponse
+  where
+  rnf GetCommentsForComparedCommitResponse' {..} =
+    Prelude.rnf commentsForComparedCommitData
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/GetCommentsForPullRequest.hs b/gen/Amazonka/CodeCommit/GetCommentsForPullRequest.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetCommentsForPullRequest.hs
@@ -0,0 +1,309 @@
+{-# 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.CodeCommit.GetCommentsForPullRequest
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns comments made on a pull request.
+--
+-- Reaction counts might include numbers from user identities who were
+-- deleted after the reaction was made. For a count of reactions from
+-- active identities, use GetCommentReactions.
+--
+-- This operation returns paginated results.
+module Amazonka.CodeCommit.GetCommentsForPullRequest
+  ( -- * Creating a Request
+    GetCommentsForPullRequest (..),
+    newGetCommentsForPullRequest,
+
+    -- * Request Lenses
+    getCommentsForPullRequest_afterCommitId,
+    getCommentsForPullRequest_beforeCommitId,
+    getCommentsForPullRequest_maxResults,
+    getCommentsForPullRequest_nextToken,
+    getCommentsForPullRequest_repositoryName,
+    getCommentsForPullRequest_pullRequestId,
+
+    -- * Destructuring the Response
+    GetCommentsForPullRequestResponse (..),
+    newGetCommentsForPullRequestResponse,
+
+    -- * Response Lenses
+    getCommentsForPullRequestResponse_commentsForPullRequestData,
+    getCommentsForPullRequestResponse_nextToken,
+    getCommentsForPullRequestResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetCommentsForPullRequest' smart constructor.
+data GetCommentsForPullRequest = GetCommentsForPullRequest'
+  { -- | The full commit ID of the commit in the source branch that was the tip
+    -- of the branch at the time the comment was made.
+    afterCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The full commit ID of the commit in the destination branch that was the
+    -- tip of the branch at the time the pull request was created.
+    beforeCommitId :: Prelude.Maybe Prelude.Text,
+    -- | A non-zero, non-negative integer used to limit the number of returned
+    -- results. The default is 100 comments. You can return up to 500 comments
+    -- with a single request.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | An enumeration token that, when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository that contains the pull request.
+    repositoryName :: Prelude.Maybe Prelude.Text,
+    -- | The system-generated ID of the pull request. To get this ID, use
+    -- ListPullRequests.
+    pullRequestId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetCommentsForPullRequest' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'afterCommitId', 'getCommentsForPullRequest_afterCommitId' - The full commit ID of the commit in the source branch that was the tip
+-- of the branch at the time the comment was made.
+--
+-- 'beforeCommitId', 'getCommentsForPullRequest_beforeCommitId' - The full commit ID of the commit in the destination branch that was the
+-- tip of the branch at the time the pull request was created.
+--
+-- 'maxResults', 'getCommentsForPullRequest_maxResults' - A non-zero, non-negative integer used to limit the number of returned
+-- results. The default is 100 comments. You can return up to 500 comments
+-- with a single request.
+--
+-- 'nextToken', 'getCommentsForPullRequest_nextToken' - An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+--
+-- 'repositoryName', 'getCommentsForPullRequest_repositoryName' - The name of the repository that contains the pull request.
+--
+-- 'pullRequestId', 'getCommentsForPullRequest_pullRequestId' - The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+newGetCommentsForPullRequest ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  GetCommentsForPullRequest
+newGetCommentsForPullRequest pPullRequestId_ =
+  GetCommentsForPullRequest'
+    { afterCommitId =
+        Prelude.Nothing,
+      beforeCommitId = Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      repositoryName = Prelude.Nothing,
+      pullRequestId = pPullRequestId_
+    }
+
+-- | The full commit ID of the commit in the source branch that was the tip
+-- of the branch at the time the comment was made.
+getCommentsForPullRequest_afterCommitId :: Lens.Lens' GetCommentsForPullRequest (Prelude.Maybe Prelude.Text)
+getCommentsForPullRequest_afterCommitId = Lens.lens (\GetCommentsForPullRequest' {afterCommitId} -> afterCommitId) (\s@GetCommentsForPullRequest' {} a -> s {afterCommitId = a} :: GetCommentsForPullRequest)
+
+-- | The full commit ID of the commit in the destination branch that was the
+-- tip of the branch at the time the pull request was created.
+getCommentsForPullRequest_beforeCommitId :: Lens.Lens' GetCommentsForPullRequest (Prelude.Maybe Prelude.Text)
+getCommentsForPullRequest_beforeCommitId = Lens.lens (\GetCommentsForPullRequest' {beforeCommitId} -> beforeCommitId) (\s@GetCommentsForPullRequest' {} a -> s {beforeCommitId = a} :: GetCommentsForPullRequest)
+
+-- | A non-zero, non-negative integer used to limit the number of returned
+-- results. The default is 100 comments. You can return up to 500 comments
+-- with a single request.
+getCommentsForPullRequest_maxResults :: Lens.Lens' GetCommentsForPullRequest (Prelude.Maybe Prelude.Int)
+getCommentsForPullRequest_maxResults = Lens.lens (\GetCommentsForPullRequest' {maxResults} -> maxResults) (\s@GetCommentsForPullRequest' {} a -> s {maxResults = a} :: GetCommentsForPullRequest)
+
+-- | An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+getCommentsForPullRequest_nextToken :: Lens.Lens' GetCommentsForPullRequest (Prelude.Maybe Prelude.Text)
+getCommentsForPullRequest_nextToken = Lens.lens (\GetCommentsForPullRequest' {nextToken} -> nextToken) (\s@GetCommentsForPullRequest' {} a -> s {nextToken = a} :: GetCommentsForPullRequest)
+
+-- | The name of the repository that contains the pull request.
+getCommentsForPullRequest_repositoryName :: Lens.Lens' GetCommentsForPullRequest (Prelude.Maybe Prelude.Text)
+getCommentsForPullRequest_repositoryName = Lens.lens (\GetCommentsForPullRequest' {repositoryName} -> repositoryName) (\s@GetCommentsForPullRequest' {} a -> s {repositoryName = a} :: GetCommentsForPullRequest)
+
+-- | The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+getCommentsForPullRequest_pullRequestId :: Lens.Lens' GetCommentsForPullRequest Prelude.Text
+getCommentsForPullRequest_pullRequestId = Lens.lens (\GetCommentsForPullRequest' {pullRequestId} -> pullRequestId) (\s@GetCommentsForPullRequest' {} a -> s {pullRequestId = a} :: GetCommentsForPullRequest)
+
+instance Core.AWSPager GetCommentsForPullRequest where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? getCommentsForPullRequestResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? getCommentsForPullRequestResponse_commentsForPullRequestData
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& getCommentsForPullRequest_nextToken
+          Lens..~ rs
+          Lens.^? getCommentsForPullRequestResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest GetCommentsForPullRequest where
+  type
+    AWSResponse GetCommentsForPullRequest =
+      GetCommentsForPullRequestResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetCommentsForPullRequestResponse'
+            Prelude.<$> ( x
+                            Data..?> "commentsForPullRequestData"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetCommentsForPullRequest where
+  hashWithSalt _salt GetCommentsForPullRequest' {..} =
+    _salt
+      `Prelude.hashWithSalt` afterCommitId
+      `Prelude.hashWithSalt` beforeCommitId
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` pullRequestId
+
+instance Prelude.NFData GetCommentsForPullRequest where
+  rnf GetCommentsForPullRequest' {..} =
+    Prelude.rnf afterCommitId
+      `Prelude.seq` Prelude.rnf beforeCommitId
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf pullRequestId
+
+instance Data.ToHeaders GetCommentsForPullRequest where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetCommentsForPullRequest" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetCommentsForPullRequest where
+  toJSON GetCommentsForPullRequest' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("afterCommitId" Data..=) Prelude.<$> afterCommitId,
+            ("beforeCommitId" Data..=)
+              Prelude.<$> beforeCommitId,
+            ("maxResults" Data..=) Prelude.<$> maxResults,
+            ("nextToken" Data..=) Prelude.<$> nextToken,
+            ("repositoryName" Data..=)
+              Prelude.<$> repositoryName,
+            Prelude.Just
+              ("pullRequestId" Data..= pullRequestId)
+          ]
+      )
+
+instance Data.ToPath GetCommentsForPullRequest where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetCommentsForPullRequest where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetCommentsForPullRequestResponse' smart constructor.
+data GetCommentsForPullRequestResponse = GetCommentsForPullRequestResponse'
+  { -- | An array of comment objects on the pull request.
+    commentsForPullRequestData :: Prelude.Maybe [CommentsForPullRequest],
+    -- | An enumeration token that can be used in a request to return the next
+    -- batch of the 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 'GetCommentsForPullRequestResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commentsForPullRequestData', 'getCommentsForPullRequestResponse_commentsForPullRequestData' - An array of comment objects on the pull request.
+--
+-- 'nextToken', 'getCommentsForPullRequestResponse_nextToken' - An enumeration token that can be used in a request to return the next
+-- batch of the results.
+--
+-- 'httpStatus', 'getCommentsForPullRequestResponse_httpStatus' - The response's http status code.
+newGetCommentsForPullRequestResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetCommentsForPullRequestResponse
+newGetCommentsForPullRequestResponse pHttpStatus_ =
+  GetCommentsForPullRequestResponse'
+    { commentsForPullRequestData =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | An array of comment objects on the pull request.
+getCommentsForPullRequestResponse_commentsForPullRequestData :: Lens.Lens' GetCommentsForPullRequestResponse (Prelude.Maybe [CommentsForPullRequest])
+getCommentsForPullRequestResponse_commentsForPullRequestData = Lens.lens (\GetCommentsForPullRequestResponse' {commentsForPullRequestData} -> commentsForPullRequestData) (\s@GetCommentsForPullRequestResponse' {} a -> s {commentsForPullRequestData = a} :: GetCommentsForPullRequestResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | An enumeration token that can be used in a request to return the next
+-- batch of the results.
+getCommentsForPullRequestResponse_nextToken :: Lens.Lens' GetCommentsForPullRequestResponse (Prelude.Maybe Prelude.Text)
+getCommentsForPullRequestResponse_nextToken = Lens.lens (\GetCommentsForPullRequestResponse' {nextToken} -> nextToken) (\s@GetCommentsForPullRequestResponse' {} a -> s {nextToken = a} :: GetCommentsForPullRequestResponse)
+
+-- | The response's http status code.
+getCommentsForPullRequestResponse_httpStatus :: Lens.Lens' GetCommentsForPullRequestResponse Prelude.Int
+getCommentsForPullRequestResponse_httpStatus = Lens.lens (\GetCommentsForPullRequestResponse' {httpStatus} -> httpStatus) (\s@GetCommentsForPullRequestResponse' {} a -> s {httpStatus = a} :: GetCommentsForPullRequestResponse)
+
+instance
+  Prelude.NFData
+    GetCommentsForPullRequestResponse
+  where
+  rnf GetCommentsForPullRequestResponse' {..} =
+    Prelude.rnf commentsForPullRequestData
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/GetCommit.hs b/gen/Amazonka/CodeCommit/GetCommit.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetCommit.hs
@@ -0,0 +1,196 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.GetCommit
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about a commit, including commit message and
+-- committer information.
+module Amazonka.CodeCommit.GetCommit
+  ( -- * Creating a Request
+    GetCommit (..),
+    newGetCommit,
+
+    -- * Request Lenses
+    getCommit_repositoryName,
+    getCommit_commitId,
+
+    -- * Destructuring the Response
+    GetCommitResponse (..),
+    newGetCommitResponse,
+
+    -- * Response Lenses
+    getCommitResponse_httpStatus,
+    getCommitResponse_commit,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a get commit operation.
+--
+-- /See:/ 'newGetCommit' smart constructor.
+data GetCommit = GetCommit'
+  { -- | The name of the repository to which the commit was made.
+    repositoryName :: Prelude.Text,
+    -- | The commit ID. Commit IDs are the full SHA ID of the commit.
+    commitId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetCommit' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryName', 'getCommit_repositoryName' - The name of the repository to which the commit was made.
+--
+-- 'commitId', 'getCommit_commitId' - The commit ID. Commit IDs are the full SHA ID of the commit.
+newGetCommit ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'commitId'
+  Prelude.Text ->
+  GetCommit
+newGetCommit pRepositoryName_ pCommitId_ =
+  GetCommit'
+    { repositoryName = pRepositoryName_,
+      commitId = pCommitId_
+    }
+
+-- | The name of the repository to which the commit was made.
+getCommit_repositoryName :: Lens.Lens' GetCommit Prelude.Text
+getCommit_repositoryName = Lens.lens (\GetCommit' {repositoryName} -> repositoryName) (\s@GetCommit' {} a -> s {repositoryName = a} :: GetCommit)
+
+-- | The commit ID. Commit IDs are the full SHA ID of the commit.
+getCommit_commitId :: Lens.Lens' GetCommit Prelude.Text
+getCommit_commitId = Lens.lens (\GetCommit' {commitId} -> commitId) (\s@GetCommit' {} a -> s {commitId = a} :: GetCommit)
+
+instance Core.AWSRequest GetCommit where
+  type AWSResponse GetCommit = GetCommitResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetCommitResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "commit")
+      )
+
+instance Prelude.Hashable GetCommit where
+  hashWithSalt _salt GetCommit' {..} =
+    _salt
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` commitId
+
+instance Prelude.NFData GetCommit where
+  rnf GetCommit' {..} =
+    Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf commitId
+
+instance Data.ToHeaders GetCommit where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetCommit" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetCommit where
+  toJSON GetCommit' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just ("commitId" Data..= commitId)
+          ]
+      )
+
+instance Data.ToPath GetCommit where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetCommit where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a get commit operation.
+--
+-- /See:/ 'newGetCommitResponse' smart constructor.
+data GetCommitResponse = GetCommitResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | A commit data type object that contains information about the specified
+    -- commit.
+    commit :: Commit
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetCommitResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'getCommitResponse_httpStatus' - The response's http status code.
+--
+-- 'commit', 'getCommitResponse_commit' - A commit data type object that contains information about the specified
+-- commit.
+newGetCommitResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'commit'
+  Commit ->
+  GetCommitResponse
+newGetCommitResponse pHttpStatus_ pCommit_ =
+  GetCommitResponse'
+    { httpStatus = pHttpStatus_,
+      commit = pCommit_
+    }
+
+-- | The response's http status code.
+getCommitResponse_httpStatus :: Lens.Lens' GetCommitResponse Prelude.Int
+getCommitResponse_httpStatus = Lens.lens (\GetCommitResponse' {httpStatus} -> httpStatus) (\s@GetCommitResponse' {} a -> s {httpStatus = a} :: GetCommitResponse)
+
+-- | A commit data type object that contains information about the specified
+-- commit.
+getCommitResponse_commit :: Lens.Lens' GetCommitResponse Commit
+getCommitResponse_commit = Lens.lens (\GetCommitResponse' {commit} -> commit) (\s@GetCommitResponse' {} a -> s {commit = a} :: GetCommitResponse)
+
+instance Prelude.NFData GetCommitResponse where
+  rnf GetCommitResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf commit
diff --git a/gen/Amazonka/CodeCommit/GetDifferences.hs b/gen/Amazonka/CodeCommit/GetDifferences.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetDifferences.hs
@@ -0,0 +1,346 @@
+{-# 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.CodeCommit.GetDifferences
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about the differences in a valid commit specifier
+-- (such as a branch, tag, HEAD, commit ID, or other fully qualified
+-- reference). Results can be limited to a specified path.
+--
+-- This operation returns paginated results.
+module Amazonka.CodeCommit.GetDifferences
+  ( -- * Creating a Request
+    GetDifferences (..),
+    newGetDifferences,
+
+    -- * Request Lenses
+    getDifferences_maxResults,
+    getDifferences_nextToken,
+    getDifferences_afterPath,
+    getDifferences_beforeCommitSpecifier,
+    getDifferences_beforePath,
+    getDifferences_repositoryName,
+    getDifferences_afterCommitSpecifier,
+
+    -- * Destructuring the Response
+    GetDifferencesResponse (..),
+    newGetDifferencesResponse,
+
+    -- * Response Lenses
+    getDifferencesResponse_nextToken,
+    getDifferencesResponse_differences,
+    getDifferencesResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetDifferences' smart constructor.
+data GetDifferences = GetDifferences'
+  { -- | A non-zero, non-negative integer used to limit the number of returned
+    -- results.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | An enumeration token that, when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The file path in which to check differences. Limits the results to this
+    -- path. Can also be used to specify the changed name of a directory or
+    -- folder, if it has changed. If not specified, differences are shown for
+    -- all paths.
+    afterPath :: Prelude.Maybe Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, the full commit ID). Optional. If not
+    -- specified, all changes before the @afterCommitSpecifier@ value are
+    -- shown. If you do not use @beforeCommitSpecifier@ in your request,
+    -- consider limiting the results with @maxResults@.
+    beforeCommitSpecifier :: Prelude.Maybe Prelude.Text,
+    -- | The file path in which to check for differences. Limits the results to
+    -- this path. Can also be used to specify the previous name of a directory
+    -- or folder. If @beforePath@ and @afterPath@ are not specified,
+    -- differences are shown for all paths.
+    beforePath :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where you want to get differences.
+    repositoryName :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit.
+    afterCommitSpecifier :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetDifferences' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'maxResults', 'getDifferences_maxResults' - A non-zero, non-negative integer used to limit the number of returned
+-- results.
+--
+-- 'nextToken', 'getDifferences_nextToken' - An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+--
+-- 'afterPath', 'getDifferences_afterPath' - The file path in which to check differences. Limits the results to this
+-- path. Can also be used to specify the changed name of a directory or
+-- folder, if it has changed. If not specified, differences are shown for
+-- all paths.
+--
+-- 'beforeCommitSpecifier', 'getDifferences_beforeCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, the full commit ID). Optional. If not
+-- specified, all changes before the @afterCommitSpecifier@ value are
+-- shown. If you do not use @beforeCommitSpecifier@ in your request,
+-- consider limiting the results with @maxResults@.
+--
+-- 'beforePath', 'getDifferences_beforePath' - The file path in which to check for differences. Limits the results to
+-- this path. Can also be used to specify the previous name of a directory
+-- or folder. If @beforePath@ and @afterPath@ are not specified,
+-- differences are shown for all paths.
+--
+-- 'repositoryName', 'getDifferences_repositoryName' - The name of the repository where you want to get differences.
+--
+-- 'afterCommitSpecifier', 'getDifferences_afterCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit.
+newGetDifferences ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'afterCommitSpecifier'
+  Prelude.Text ->
+  GetDifferences
+newGetDifferences
+  pRepositoryName_
+  pAfterCommitSpecifier_ =
+    GetDifferences'
+      { maxResults = Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        afterPath = Prelude.Nothing,
+        beforeCommitSpecifier = Prelude.Nothing,
+        beforePath = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        afterCommitSpecifier = pAfterCommitSpecifier_
+      }
+
+-- | A non-zero, non-negative integer used to limit the number of returned
+-- results.
+getDifferences_maxResults :: Lens.Lens' GetDifferences (Prelude.Maybe Prelude.Int)
+getDifferences_maxResults = Lens.lens (\GetDifferences' {maxResults} -> maxResults) (\s@GetDifferences' {} a -> s {maxResults = a} :: GetDifferences)
+
+-- | An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+getDifferences_nextToken :: Lens.Lens' GetDifferences (Prelude.Maybe Prelude.Text)
+getDifferences_nextToken = Lens.lens (\GetDifferences' {nextToken} -> nextToken) (\s@GetDifferences' {} a -> s {nextToken = a} :: GetDifferences)
+
+-- | The file path in which to check differences. Limits the results to this
+-- path. Can also be used to specify the changed name of a directory or
+-- folder, if it has changed. If not specified, differences are shown for
+-- all paths.
+getDifferences_afterPath :: Lens.Lens' GetDifferences (Prelude.Maybe Prelude.Text)
+getDifferences_afterPath = Lens.lens (\GetDifferences' {afterPath} -> afterPath) (\s@GetDifferences' {} a -> s {afterPath = a} :: GetDifferences)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, the full commit ID). Optional. If not
+-- specified, all changes before the @afterCommitSpecifier@ value are
+-- shown. If you do not use @beforeCommitSpecifier@ in your request,
+-- consider limiting the results with @maxResults@.
+getDifferences_beforeCommitSpecifier :: Lens.Lens' GetDifferences (Prelude.Maybe Prelude.Text)
+getDifferences_beforeCommitSpecifier = Lens.lens (\GetDifferences' {beforeCommitSpecifier} -> beforeCommitSpecifier) (\s@GetDifferences' {} a -> s {beforeCommitSpecifier = a} :: GetDifferences)
+
+-- | The file path in which to check for differences. Limits the results to
+-- this path. Can also be used to specify the previous name of a directory
+-- or folder. If @beforePath@ and @afterPath@ are not specified,
+-- differences are shown for all paths.
+getDifferences_beforePath :: Lens.Lens' GetDifferences (Prelude.Maybe Prelude.Text)
+getDifferences_beforePath = Lens.lens (\GetDifferences' {beforePath} -> beforePath) (\s@GetDifferences' {} a -> s {beforePath = a} :: GetDifferences)
+
+-- | The name of the repository where you want to get differences.
+getDifferences_repositoryName :: Lens.Lens' GetDifferences Prelude.Text
+getDifferences_repositoryName = Lens.lens (\GetDifferences' {repositoryName} -> repositoryName) (\s@GetDifferences' {} a -> s {repositoryName = a} :: GetDifferences)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit.
+getDifferences_afterCommitSpecifier :: Lens.Lens' GetDifferences Prelude.Text
+getDifferences_afterCommitSpecifier = Lens.lens (\GetDifferences' {afterCommitSpecifier} -> afterCommitSpecifier) (\s@GetDifferences' {} a -> s {afterCommitSpecifier = a} :: GetDifferences)
+
+instance Core.AWSPager GetDifferences where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? getDifferencesResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? getDifferencesResponse_differences
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& getDifferences_nextToken
+          Lens..~ rs
+          Lens.^? getDifferencesResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest GetDifferences where
+  type
+    AWSResponse GetDifferences =
+      GetDifferencesResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetDifferencesResponse'
+            Prelude.<$> (x Data..?> "NextToken")
+            Prelude.<*> (x Data..?> "differences" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetDifferences where
+  hashWithSalt _salt GetDifferences' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` afterPath
+      `Prelude.hashWithSalt` beforeCommitSpecifier
+      `Prelude.hashWithSalt` beforePath
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` afterCommitSpecifier
+
+instance Prelude.NFData GetDifferences where
+  rnf GetDifferences' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf afterPath
+      `Prelude.seq` Prelude.rnf beforeCommitSpecifier
+      `Prelude.seq` Prelude.rnf beforePath
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf afterCommitSpecifier
+
+instance Data.ToHeaders GetDifferences where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetDifferences" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetDifferences where
+  toJSON GetDifferences' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,
+            ("NextToken" Data..=) Prelude.<$> nextToken,
+            ("afterPath" Data..=) Prelude.<$> afterPath,
+            ("beforeCommitSpecifier" Data..=)
+              Prelude.<$> beforeCommitSpecifier,
+            ("beforePath" Data..=) Prelude.<$> beforePath,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ( "afterCommitSpecifier"
+                  Data..= afterCommitSpecifier
+              )
+          ]
+      )
+
+instance Data.ToPath GetDifferences where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetDifferences where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetDifferencesResponse' smart constructor.
+data GetDifferencesResponse = GetDifferencesResponse'
+  { -- | An enumeration token that can be used in a request to return the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | A data type object that contains information about the differences,
+    -- including whether the difference is added, modified, or deleted (A, D,
+    -- M).
+    differences :: Prelude.Maybe [Difference],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetDifferencesResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDifferencesResponse_nextToken' - An enumeration token that can be used in a request to return the next
+-- batch of the results.
+--
+-- 'differences', 'getDifferencesResponse_differences' - A data type object that contains information about the differences,
+-- including whether the difference is added, modified, or deleted (A, D,
+-- M).
+--
+-- 'httpStatus', 'getDifferencesResponse_httpStatus' - The response's http status code.
+newGetDifferencesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetDifferencesResponse
+newGetDifferencesResponse pHttpStatus_ =
+  GetDifferencesResponse'
+    { nextToken =
+        Prelude.Nothing,
+      differences = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | An enumeration token that can be used in a request to return the next
+-- batch of the results.
+getDifferencesResponse_nextToken :: Lens.Lens' GetDifferencesResponse (Prelude.Maybe Prelude.Text)
+getDifferencesResponse_nextToken = Lens.lens (\GetDifferencesResponse' {nextToken} -> nextToken) (\s@GetDifferencesResponse' {} a -> s {nextToken = a} :: GetDifferencesResponse)
+
+-- | A data type object that contains information about the differences,
+-- including whether the difference is added, modified, or deleted (A, D,
+-- M).
+getDifferencesResponse_differences :: Lens.Lens' GetDifferencesResponse (Prelude.Maybe [Difference])
+getDifferencesResponse_differences = Lens.lens (\GetDifferencesResponse' {differences} -> differences) (\s@GetDifferencesResponse' {} a -> s {differences = a} :: GetDifferencesResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+getDifferencesResponse_httpStatus :: Lens.Lens' GetDifferencesResponse Prelude.Int
+getDifferencesResponse_httpStatus = Lens.lens (\GetDifferencesResponse' {httpStatus} -> httpStatus) (\s@GetDifferencesResponse' {} a -> s {httpStatus = a} :: GetDifferencesResponse)
+
+instance Prelude.NFData GetDifferencesResponse where
+  rnf GetDifferencesResponse' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf differences
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/GetFile.hs b/gen/Amazonka/CodeCommit/GetFile.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetFile.hs
@@ -0,0 +1,327 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.GetFile
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the base-64 encoded contents of a specified file and its
+-- metadata.
+module Amazonka.CodeCommit.GetFile
+  ( -- * Creating a Request
+    GetFile (..),
+    newGetFile,
+
+    -- * Request Lenses
+    getFile_commitSpecifier,
+    getFile_repositoryName,
+    getFile_filePath,
+
+    -- * Destructuring the Response
+    GetFileResponse (..),
+    newGetFileResponse,
+
+    -- * Response Lenses
+    getFileResponse_httpStatus,
+    getFileResponse_commitId,
+    getFileResponse_blobId,
+    getFileResponse_filePath,
+    getFileResponse_fileMode,
+    getFileResponse_fileSize,
+    getFileResponse_fileContent,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetFile' smart constructor.
+data GetFile = GetFile'
+  { -- | The fully quaified reference that identifies the commit that contains
+    -- the file. For example, you can specify a full commit ID, a tag, a branch
+    -- name, or a reference such as refs\/heads\/master. If none is provided,
+    -- the head commit is used.
+    commitSpecifier :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository that contains the file.
+    repositoryName :: Prelude.Text,
+    -- | The fully qualified path to the file, including the full name and
+    -- extension of the file. For example, \/examples\/file.md is the fully
+    -- qualified path to a file named file.md in a folder named examples.
+    filePath :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetFile' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commitSpecifier', 'getFile_commitSpecifier' - The fully quaified reference that identifies the commit that contains
+-- the file. For example, you can specify a full commit ID, a tag, a branch
+-- name, or a reference such as refs\/heads\/master. If none is provided,
+-- the head commit is used.
+--
+-- 'repositoryName', 'getFile_repositoryName' - The name of the repository that contains the file.
+--
+-- 'filePath', 'getFile_filePath' - The fully qualified path to the file, including the full name and
+-- extension of the file. For example, \/examples\/file.md is the fully
+-- qualified path to a file named file.md in a folder named examples.
+newGetFile ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'filePath'
+  Prelude.Text ->
+  GetFile
+newGetFile pRepositoryName_ pFilePath_ =
+  GetFile'
+    { commitSpecifier = Prelude.Nothing,
+      repositoryName = pRepositoryName_,
+      filePath = pFilePath_
+    }
+
+-- | The fully quaified reference that identifies the commit that contains
+-- the file. For example, you can specify a full commit ID, a tag, a branch
+-- name, or a reference such as refs\/heads\/master. If none is provided,
+-- the head commit is used.
+getFile_commitSpecifier :: Lens.Lens' GetFile (Prelude.Maybe Prelude.Text)
+getFile_commitSpecifier = Lens.lens (\GetFile' {commitSpecifier} -> commitSpecifier) (\s@GetFile' {} a -> s {commitSpecifier = a} :: GetFile)
+
+-- | The name of the repository that contains the file.
+getFile_repositoryName :: Lens.Lens' GetFile Prelude.Text
+getFile_repositoryName = Lens.lens (\GetFile' {repositoryName} -> repositoryName) (\s@GetFile' {} a -> s {repositoryName = a} :: GetFile)
+
+-- | The fully qualified path to the file, including the full name and
+-- extension of the file. For example, \/examples\/file.md is the fully
+-- qualified path to a file named file.md in a folder named examples.
+getFile_filePath :: Lens.Lens' GetFile Prelude.Text
+getFile_filePath = Lens.lens (\GetFile' {filePath} -> filePath) (\s@GetFile' {} a -> s {filePath = a} :: GetFile)
+
+instance Core.AWSRequest GetFile where
+  type AWSResponse GetFile = GetFileResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetFileResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "commitId")
+            Prelude.<*> (x Data..:> "blobId")
+            Prelude.<*> (x Data..:> "filePath")
+            Prelude.<*> (x Data..:> "fileMode")
+            Prelude.<*> (x Data..:> "fileSize")
+            Prelude.<*> (x Data..:> "fileContent")
+      )
+
+instance Prelude.Hashable GetFile where
+  hashWithSalt _salt GetFile' {..} =
+    _salt
+      `Prelude.hashWithSalt` commitSpecifier
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` filePath
+
+instance Prelude.NFData GetFile where
+  rnf GetFile' {..} =
+    Prelude.rnf commitSpecifier
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf filePath
+
+instance Data.ToHeaders GetFile where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetFile" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetFile where
+  toJSON GetFile' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("commitSpecifier" Data..=)
+              Prelude.<$> commitSpecifier,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just ("filePath" Data..= filePath)
+          ]
+      )
+
+instance Data.ToPath GetFile where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetFile where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetFileResponse' smart constructor.
+data GetFileResponse = GetFileResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The full commit ID of the commit that contains the content returned by
+    -- GetFile.
+    commitId :: Prelude.Text,
+    -- | The blob ID of the object that represents the file content.
+    blobId :: Prelude.Text,
+    -- | The fully qualified path to the specified file. Returns the name and
+    -- extension of the file.
+    filePath :: Prelude.Text,
+    -- | The extrapolated file mode permissions of the blob. Valid values include
+    -- strings such as EXECUTABLE and not numeric values.
+    --
+    -- The file mode permissions returned by this API are not the standard file
+    -- mode permission values, such as 100644, but rather extrapolated values.
+    -- See the supported return values.
+    fileMode :: FileModeTypeEnum,
+    -- | The size of the contents of the file, in bytes.
+    fileSize :: Prelude.Integer,
+    -- | The base-64 encoded binary data object that represents the content of
+    -- the file.
+    fileContent :: Data.Base64
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetFileResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'getFileResponse_httpStatus' - The response's http status code.
+--
+-- 'commitId', 'getFileResponse_commitId' - The full commit ID of the commit that contains the content returned by
+-- GetFile.
+--
+-- 'blobId', 'getFileResponse_blobId' - The blob ID of the object that represents the file content.
+--
+-- 'filePath', 'getFileResponse_filePath' - The fully qualified path to the specified file. Returns the name and
+-- extension of the file.
+--
+-- 'fileMode', 'getFileResponse_fileMode' - The extrapolated file mode permissions of the blob. Valid values include
+-- strings such as EXECUTABLE and not numeric values.
+--
+-- The file mode permissions returned by this API are not the standard file
+-- mode permission values, such as 100644, but rather extrapolated values.
+-- See the supported return values.
+--
+-- 'fileSize', 'getFileResponse_fileSize' - The size of the contents of the file, in bytes.
+--
+-- 'fileContent', 'getFileResponse_fileContent' - The base-64 encoded binary data object that represents the content of
+-- the file.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+newGetFileResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'commitId'
+  Prelude.Text ->
+  -- | 'blobId'
+  Prelude.Text ->
+  -- | 'filePath'
+  Prelude.Text ->
+  -- | 'fileMode'
+  FileModeTypeEnum ->
+  -- | 'fileSize'
+  Prelude.Integer ->
+  -- | 'fileContent'
+  Prelude.ByteString ->
+  GetFileResponse
+newGetFileResponse
+  pHttpStatus_
+  pCommitId_
+  pBlobId_
+  pFilePath_
+  pFileMode_
+  pFileSize_
+  pFileContent_ =
+    GetFileResponse'
+      { httpStatus = pHttpStatus_,
+        commitId = pCommitId_,
+        blobId = pBlobId_,
+        filePath = pFilePath_,
+        fileMode = pFileMode_,
+        fileSize = pFileSize_,
+        fileContent = Data._Base64 Lens.# pFileContent_
+      }
+
+-- | The response's http status code.
+getFileResponse_httpStatus :: Lens.Lens' GetFileResponse Prelude.Int
+getFileResponse_httpStatus = Lens.lens (\GetFileResponse' {httpStatus} -> httpStatus) (\s@GetFileResponse' {} a -> s {httpStatus = a} :: GetFileResponse)
+
+-- | The full commit ID of the commit that contains the content returned by
+-- GetFile.
+getFileResponse_commitId :: Lens.Lens' GetFileResponse Prelude.Text
+getFileResponse_commitId = Lens.lens (\GetFileResponse' {commitId} -> commitId) (\s@GetFileResponse' {} a -> s {commitId = a} :: GetFileResponse)
+
+-- | The blob ID of the object that represents the file content.
+getFileResponse_blobId :: Lens.Lens' GetFileResponse Prelude.Text
+getFileResponse_blobId = Lens.lens (\GetFileResponse' {blobId} -> blobId) (\s@GetFileResponse' {} a -> s {blobId = a} :: GetFileResponse)
+
+-- | The fully qualified path to the specified file. Returns the name and
+-- extension of the file.
+getFileResponse_filePath :: Lens.Lens' GetFileResponse Prelude.Text
+getFileResponse_filePath = Lens.lens (\GetFileResponse' {filePath} -> filePath) (\s@GetFileResponse' {} a -> s {filePath = a} :: GetFileResponse)
+
+-- | The extrapolated file mode permissions of the blob. Valid values include
+-- strings such as EXECUTABLE and not numeric values.
+--
+-- The file mode permissions returned by this API are not the standard file
+-- mode permission values, such as 100644, but rather extrapolated values.
+-- See the supported return values.
+getFileResponse_fileMode :: Lens.Lens' GetFileResponse FileModeTypeEnum
+getFileResponse_fileMode = Lens.lens (\GetFileResponse' {fileMode} -> fileMode) (\s@GetFileResponse' {} a -> s {fileMode = a} :: GetFileResponse)
+
+-- | The size of the contents of the file, in bytes.
+getFileResponse_fileSize :: Lens.Lens' GetFileResponse Prelude.Integer
+getFileResponse_fileSize = Lens.lens (\GetFileResponse' {fileSize} -> fileSize) (\s@GetFileResponse' {} a -> s {fileSize = a} :: GetFileResponse)
+
+-- | The base-64 encoded binary data object that represents the content of
+-- the file.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+getFileResponse_fileContent :: Lens.Lens' GetFileResponse Prelude.ByteString
+getFileResponse_fileContent = Lens.lens (\GetFileResponse' {fileContent} -> fileContent) (\s@GetFileResponse' {} a -> s {fileContent = a} :: GetFileResponse) Prelude.. Data._Base64
+
+instance Prelude.NFData GetFileResponse where
+  rnf GetFileResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf commitId
+      `Prelude.seq` Prelude.rnf blobId
+      `Prelude.seq` Prelude.rnf filePath
+      `Prelude.seq` Prelude.rnf fileMode
+      `Prelude.seq` Prelude.rnf fileSize
+      `Prelude.seq` Prelude.rnf fileContent
diff --git a/gen/Amazonka/CodeCommit/GetFolder.hs b/gen/Amazonka/CodeCommit/GetFolder.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetFolder.hs
@@ -0,0 +1,309 @@
+{-# 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.CodeCommit.GetFolder
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the contents of a specified folder in a repository.
+module Amazonka.CodeCommit.GetFolder
+  ( -- * Creating a Request
+    GetFolder (..),
+    newGetFolder,
+
+    -- * Request Lenses
+    getFolder_commitSpecifier,
+    getFolder_repositoryName,
+    getFolder_folderPath,
+
+    -- * Destructuring the Response
+    GetFolderResponse (..),
+    newGetFolderResponse,
+
+    -- * Response Lenses
+    getFolderResponse_files,
+    getFolderResponse_subFolders,
+    getFolderResponse_subModules,
+    getFolderResponse_symbolicLinks,
+    getFolderResponse_treeId,
+    getFolderResponse_httpStatus,
+    getFolderResponse_commitId,
+    getFolderResponse_folderPath,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetFolder' smart constructor.
+data GetFolder = GetFolder'
+  { -- | A fully qualified reference used to identify a commit that contains the
+    -- version of the folder\'s content to return. A fully qualified reference
+    -- can be a commit ID, branch name, tag, or reference such as HEAD. If no
+    -- specifier is provided, the folder content is returned as it exists in
+    -- the HEAD commit.
+    commitSpecifier :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository.
+    repositoryName :: Prelude.Text,
+    -- | The fully qualified path to the folder whose contents are returned,
+    -- including the folder name. For example, \/examples is a fully-qualified
+    -- path to a folder named examples that was created off of the root
+    -- directory (\/) of a repository.
+    folderPath :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetFolder' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commitSpecifier', 'getFolder_commitSpecifier' - A fully qualified reference used to identify a commit that contains the
+-- version of the folder\'s content to return. A fully qualified reference
+-- can be a commit ID, branch name, tag, or reference such as HEAD. If no
+-- specifier is provided, the folder content is returned as it exists in
+-- the HEAD commit.
+--
+-- 'repositoryName', 'getFolder_repositoryName' - The name of the repository.
+--
+-- 'folderPath', 'getFolder_folderPath' - The fully qualified path to the folder whose contents are returned,
+-- including the folder name. For example, \/examples is a fully-qualified
+-- path to a folder named examples that was created off of the root
+-- directory (\/) of a repository.
+newGetFolder ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'folderPath'
+  Prelude.Text ->
+  GetFolder
+newGetFolder pRepositoryName_ pFolderPath_ =
+  GetFolder'
+    { commitSpecifier = Prelude.Nothing,
+      repositoryName = pRepositoryName_,
+      folderPath = pFolderPath_
+    }
+
+-- | A fully qualified reference used to identify a commit that contains the
+-- version of the folder\'s content to return. A fully qualified reference
+-- can be a commit ID, branch name, tag, or reference such as HEAD. If no
+-- specifier is provided, the folder content is returned as it exists in
+-- the HEAD commit.
+getFolder_commitSpecifier :: Lens.Lens' GetFolder (Prelude.Maybe Prelude.Text)
+getFolder_commitSpecifier = Lens.lens (\GetFolder' {commitSpecifier} -> commitSpecifier) (\s@GetFolder' {} a -> s {commitSpecifier = a} :: GetFolder)
+
+-- | The name of the repository.
+getFolder_repositoryName :: Lens.Lens' GetFolder Prelude.Text
+getFolder_repositoryName = Lens.lens (\GetFolder' {repositoryName} -> repositoryName) (\s@GetFolder' {} a -> s {repositoryName = a} :: GetFolder)
+
+-- | The fully qualified path to the folder whose contents are returned,
+-- including the folder name. For example, \/examples is a fully-qualified
+-- path to a folder named examples that was created off of the root
+-- directory (\/) of a repository.
+getFolder_folderPath :: Lens.Lens' GetFolder Prelude.Text
+getFolder_folderPath = Lens.lens (\GetFolder' {folderPath} -> folderPath) (\s@GetFolder' {} a -> s {folderPath = a} :: GetFolder)
+
+instance Core.AWSRequest GetFolder where
+  type AWSResponse GetFolder = GetFolderResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetFolderResponse'
+            Prelude.<$> (x Data..?> "files" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "subFolders" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "subModules" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "symbolicLinks" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "treeId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "commitId")
+            Prelude.<*> (x Data..:> "folderPath")
+      )
+
+instance Prelude.Hashable GetFolder where
+  hashWithSalt _salt GetFolder' {..} =
+    _salt
+      `Prelude.hashWithSalt` commitSpecifier
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` folderPath
+
+instance Prelude.NFData GetFolder where
+  rnf GetFolder' {..} =
+    Prelude.rnf commitSpecifier
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf folderPath
+
+instance Data.ToHeaders GetFolder where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetFolder" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetFolder where
+  toJSON GetFolder' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("commitSpecifier" Data..=)
+              Prelude.<$> commitSpecifier,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just ("folderPath" Data..= folderPath)
+          ]
+      )
+
+instance Data.ToPath GetFolder where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetFolder where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetFolderResponse' smart constructor.
+data GetFolderResponse = GetFolderResponse'
+  { -- | The list of files in the specified folder, if any.
+    files :: Prelude.Maybe [File],
+    -- | The list of folders that exist under the specified folder, if any.
+    subFolders :: Prelude.Maybe [Folder],
+    -- | The list of submodules in the specified folder, if any.
+    subModules :: Prelude.Maybe [SubModule],
+    -- | The list of symbolic links to other files and folders in the specified
+    -- folder, if any.
+    symbolicLinks :: Prelude.Maybe [SymbolicLink],
+    -- | The full SHA-1 pointer of the tree information for the commit that
+    -- contains the folder.
+    treeId :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The full commit ID used as a reference for the returned version of the
+    -- folder content.
+    commitId :: Prelude.Text,
+    -- | The fully qualified path of the folder whose contents are returned.
+    folderPath :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetFolderResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'files', 'getFolderResponse_files' - The list of files in the specified folder, if any.
+--
+-- 'subFolders', 'getFolderResponse_subFolders' - The list of folders that exist under the specified folder, if any.
+--
+-- 'subModules', 'getFolderResponse_subModules' - The list of submodules in the specified folder, if any.
+--
+-- 'symbolicLinks', 'getFolderResponse_symbolicLinks' - The list of symbolic links to other files and folders in the specified
+-- folder, if any.
+--
+-- 'treeId', 'getFolderResponse_treeId' - The full SHA-1 pointer of the tree information for the commit that
+-- contains the folder.
+--
+-- 'httpStatus', 'getFolderResponse_httpStatus' - The response's http status code.
+--
+-- 'commitId', 'getFolderResponse_commitId' - The full commit ID used as a reference for the returned version of the
+-- folder content.
+--
+-- 'folderPath', 'getFolderResponse_folderPath' - The fully qualified path of the folder whose contents are returned.
+newGetFolderResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'commitId'
+  Prelude.Text ->
+  -- | 'folderPath'
+  Prelude.Text ->
+  GetFolderResponse
+newGetFolderResponse
+  pHttpStatus_
+  pCommitId_
+  pFolderPath_ =
+    GetFolderResponse'
+      { files = Prelude.Nothing,
+        subFolders = Prelude.Nothing,
+        subModules = Prelude.Nothing,
+        symbolicLinks = Prelude.Nothing,
+        treeId = Prelude.Nothing,
+        httpStatus = pHttpStatus_,
+        commitId = pCommitId_,
+        folderPath = pFolderPath_
+      }
+
+-- | The list of files in the specified folder, if any.
+getFolderResponse_files :: Lens.Lens' GetFolderResponse (Prelude.Maybe [File])
+getFolderResponse_files = Lens.lens (\GetFolderResponse' {files} -> files) (\s@GetFolderResponse' {} a -> s {files = a} :: GetFolderResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The list of folders that exist under the specified folder, if any.
+getFolderResponse_subFolders :: Lens.Lens' GetFolderResponse (Prelude.Maybe [Folder])
+getFolderResponse_subFolders = Lens.lens (\GetFolderResponse' {subFolders} -> subFolders) (\s@GetFolderResponse' {} a -> s {subFolders = a} :: GetFolderResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The list of submodules in the specified folder, if any.
+getFolderResponse_subModules :: Lens.Lens' GetFolderResponse (Prelude.Maybe [SubModule])
+getFolderResponse_subModules = Lens.lens (\GetFolderResponse' {subModules} -> subModules) (\s@GetFolderResponse' {} a -> s {subModules = a} :: GetFolderResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The list of symbolic links to other files and folders in the specified
+-- folder, if any.
+getFolderResponse_symbolicLinks :: Lens.Lens' GetFolderResponse (Prelude.Maybe [SymbolicLink])
+getFolderResponse_symbolicLinks = Lens.lens (\GetFolderResponse' {symbolicLinks} -> symbolicLinks) (\s@GetFolderResponse' {} a -> s {symbolicLinks = a} :: GetFolderResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The full SHA-1 pointer of the tree information for the commit that
+-- contains the folder.
+getFolderResponse_treeId :: Lens.Lens' GetFolderResponse (Prelude.Maybe Prelude.Text)
+getFolderResponse_treeId = Lens.lens (\GetFolderResponse' {treeId} -> treeId) (\s@GetFolderResponse' {} a -> s {treeId = a} :: GetFolderResponse)
+
+-- | The response's http status code.
+getFolderResponse_httpStatus :: Lens.Lens' GetFolderResponse Prelude.Int
+getFolderResponse_httpStatus = Lens.lens (\GetFolderResponse' {httpStatus} -> httpStatus) (\s@GetFolderResponse' {} a -> s {httpStatus = a} :: GetFolderResponse)
+
+-- | The full commit ID used as a reference for the returned version of the
+-- folder content.
+getFolderResponse_commitId :: Lens.Lens' GetFolderResponse Prelude.Text
+getFolderResponse_commitId = Lens.lens (\GetFolderResponse' {commitId} -> commitId) (\s@GetFolderResponse' {} a -> s {commitId = a} :: GetFolderResponse)
+
+-- | The fully qualified path of the folder whose contents are returned.
+getFolderResponse_folderPath :: Lens.Lens' GetFolderResponse Prelude.Text
+getFolderResponse_folderPath = Lens.lens (\GetFolderResponse' {folderPath} -> folderPath) (\s@GetFolderResponse' {} a -> s {folderPath = a} :: GetFolderResponse)
+
+instance Prelude.NFData GetFolderResponse where
+  rnf GetFolderResponse' {..} =
+    Prelude.rnf files
+      `Prelude.seq` Prelude.rnf subFolders
+      `Prelude.seq` Prelude.rnf subModules
+      `Prelude.seq` Prelude.rnf symbolicLinks
+      `Prelude.seq` Prelude.rnf treeId
+      `Prelude.seq` Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf commitId
+      `Prelude.seq` Prelude.rnf folderPath
diff --git a/gen/Amazonka/CodeCommit/GetMergeCommit.hs b/gen/Amazonka/CodeCommit/GetMergeCommit.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetMergeCommit.hs
@@ -0,0 +1,321 @@
+{-# 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.CodeCommit.GetMergeCommit
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about a specified merge commit.
+module Amazonka.CodeCommit.GetMergeCommit
+  ( -- * Creating a Request
+    GetMergeCommit (..),
+    newGetMergeCommit,
+
+    -- * Request Lenses
+    getMergeCommit_conflictDetailLevel,
+    getMergeCommit_conflictResolutionStrategy,
+    getMergeCommit_repositoryName,
+    getMergeCommit_sourceCommitSpecifier,
+    getMergeCommit_destinationCommitSpecifier,
+
+    -- * Destructuring the Response
+    GetMergeCommitResponse (..),
+    newGetMergeCommitResponse,
+
+    -- * Response Lenses
+    getMergeCommitResponse_baseCommitId,
+    getMergeCommitResponse_destinationCommitId,
+    getMergeCommitResponse_mergedCommitId,
+    getMergeCommitResponse_sourceCommitId,
+    getMergeCommitResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetMergeCommit' smart constructor.
+data GetMergeCommit = GetMergeCommit'
+  { -- | The level of conflict detail to use. If unspecified, the default
+    -- FILE_LEVEL is used, which returns a not-mergeable result if the same
+    -- file has differences in both branches. If LINE_LEVEL is specified, a
+    -- conflict is considered not mergeable if the same file in both branches
+    -- has differences on the same line.
+    conflictDetailLevel :: Prelude.Maybe ConflictDetailLevelTypeEnum,
+    -- | Specifies which branch to use when resolving conflicts, or whether to
+    -- attempt automatically merging two versions of a file. The default is
+    -- NONE, which requires any conflicts to be resolved manually before the
+    -- merge operation is successful.
+    conflictResolutionStrategy :: Prelude.Maybe ConflictResolutionStrategyTypeEnum,
+    -- | The name of the repository that contains the merge commit about which
+    -- you want to get information.
+    repositoryName :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    sourceCommitSpecifier :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    destinationCommitSpecifier :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetMergeCommit' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'conflictDetailLevel', 'getMergeCommit_conflictDetailLevel' - The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+--
+-- 'conflictResolutionStrategy', 'getMergeCommit_conflictResolutionStrategy' - Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+--
+-- 'repositoryName', 'getMergeCommit_repositoryName' - The name of the repository that contains the merge commit about which
+-- you want to get information.
+--
+-- 'sourceCommitSpecifier', 'getMergeCommit_sourceCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'destinationCommitSpecifier', 'getMergeCommit_destinationCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+newGetMergeCommit ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'sourceCommitSpecifier'
+  Prelude.Text ->
+  -- | 'destinationCommitSpecifier'
+  Prelude.Text ->
+  GetMergeCommit
+newGetMergeCommit
+  pRepositoryName_
+  pSourceCommitSpecifier_
+  pDestinationCommitSpecifier_ =
+    GetMergeCommit'
+      { conflictDetailLevel =
+          Prelude.Nothing,
+        conflictResolutionStrategy = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        sourceCommitSpecifier = pSourceCommitSpecifier_,
+        destinationCommitSpecifier =
+          pDestinationCommitSpecifier_
+      }
+
+-- | The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+getMergeCommit_conflictDetailLevel :: Lens.Lens' GetMergeCommit (Prelude.Maybe ConflictDetailLevelTypeEnum)
+getMergeCommit_conflictDetailLevel = Lens.lens (\GetMergeCommit' {conflictDetailLevel} -> conflictDetailLevel) (\s@GetMergeCommit' {} a -> s {conflictDetailLevel = a} :: GetMergeCommit)
+
+-- | Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+getMergeCommit_conflictResolutionStrategy :: Lens.Lens' GetMergeCommit (Prelude.Maybe ConflictResolutionStrategyTypeEnum)
+getMergeCommit_conflictResolutionStrategy = Lens.lens (\GetMergeCommit' {conflictResolutionStrategy} -> conflictResolutionStrategy) (\s@GetMergeCommit' {} a -> s {conflictResolutionStrategy = a} :: GetMergeCommit)
+
+-- | The name of the repository that contains the merge commit about which
+-- you want to get information.
+getMergeCommit_repositoryName :: Lens.Lens' GetMergeCommit Prelude.Text
+getMergeCommit_repositoryName = Lens.lens (\GetMergeCommit' {repositoryName} -> repositoryName) (\s@GetMergeCommit' {} a -> s {repositoryName = a} :: GetMergeCommit)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+getMergeCommit_sourceCommitSpecifier :: Lens.Lens' GetMergeCommit Prelude.Text
+getMergeCommit_sourceCommitSpecifier = Lens.lens (\GetMergeCommit' {sourceCommitSpecifier} -> sourceCommitSpecifier) (\s@GetMergeCommit' {} a -> s {sourceCommitSpecifier = a} :: GetMergeCommit)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+getMergeCommit_destinationCommitSpecifier :: Lens.Lens' GetMergeCommit Prelude.Text
+getMergeCommit_destinationCommitSpecifier = Lens.lens (\GetMergeCommit' {destinationCommitSpecifier} -> destinationCommitSpecifier) (\s@GetMergeCommit' {} a -> s {destinationCommitSpecifier = a} :: GetMergeCommit)
+
+instance Core.AWSRequest GetMergeCommit where
+  type
+    AWSResponse GetMergeCommit =
+      GetMergeCommitResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetMergeCommitResponse'
+            Prelude.<$> (x Data..?> "baseCommitId")
+            Prelude.<*> (x Data..?> "destinationCommitId")
+            Prelude.<*> (x Data..?> "mergedCommitId")
+            Prelude.<*> (x Data..?> "sourceCommitId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetMergeCommit where
+  hashWithSalt _salt GetMergeCommit' {..} =
+    _salt
+      `Prelude.hashWithSalt` conflictDetailLevel
+      `Prelude.hashWithSalt` conflictResolutionStrategy
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` sourceCommitSpecifier
+      `Prelude.hashWithSalt` destinationCommitSpecifier
+
+instance Prelude.NFData GetMergeCommit where
+  rnf GetMergeCommit' {..} =
+    Prelude.rnf conflictDetailLevel
+      `Prelude.seq` Prelude.rnf conflictResolutionStrategy
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf sourceCommitSpecifier
+      `Prelude.seq` Prelude.rnf destinationCommitSpecifier
+
+instance Data.ToHeaders GetMergeCommit where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetMergeCommit" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetMergeCommit where
+  toJSON GetMergeCommit' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("conflictDetailLevel" Data..=)
+              Prelude.<$> conflictDetailLevel,
+            ("conflictResolutionStrategy" Data..=)
+              Prelude.<$> conflictResolutionStrategy,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ( "sourceCommitSpecifier"
+                  Data..= sourceCommitSpecifier
+              ),
+            Prelude.Just
+              ( "destinationCommitSpecifier"
+                  Data..= destinationCommitSpecifier
+              )
+          ]
+      )
+
+instance Data.ToPath GetMergeCommit where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetMergeCommit where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetMergeCommitResponse' smart constructor.
+data GetMergeCommitResponse = GetMergeCommitResponse'
+  { -- | The commit ID of the merge base.
+    baseCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The commit ID of the destination commit specifier that was used in the
+    -- merge evaluation.
+    destinationCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The commit ID for the merge commit created when the source branch was
+    -- merged into the destination branch. If the fast-forward merge strategy
+    -- was used, there is no merge commit.
+    mergedCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The commit ID of the source commit specifier that was used in the merge
+    -- evaluation.
+    sourceCommitId :: 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 'GetMergeCommitResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'baseCommitId', 'getMergeCommitResponse_baseCommitId' - The commit ID of the merge base.
+--
+-- 'destinationCommitId', 'getMergeCommitResponse_destinationCommitId' - The commit ID of the destination commit specifier that was used in the
+-- merge evaluation.
+--
+-- 'mergedCommitId', 'getMergeCommitResponse_mergedCommitId' - The commit ID for the merge commit created when the source branch was
+-- merged into the destination branch. If the fast-forward merge strategy
+-- was used, there is no merge commit.
+--
+-- 'sourceCommitId', 'getMergeCommitResponse_sourceCommitId' - The commit ID of the source commit specifier that was used in the merge
+-- evaluation.
+--
+-- 'httpStatus', 'getMergeCommitResponse_httpStatus' - The response's http status code.
+newGetMergeCommitResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetMergeCommitResponse
+newGetMergeCommitResponse pHttpStatus_ =
+  GetMergeCommitResponse'
+    { baseCommitId =
+        Prelude.Nothing,
+      destinationCommitId = Prelude.Nothing,
+      mergedCommitId = Prelude.Nothing,
+      sourceCommitId = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The commit ID of the merge base.
+getMergeCommitResponse_baseCommitId :: Lens.Lens' GetMergeCommitResponse (Prelude.Maybe Prelude.Text)
+getMergeCommitResponse_baseCommitId = Lens.lens (\GetMergeCommitResponse' {baseCommitId} -> baseCommitId) (\s@GetMergeCommitResponse' {} a -> s {baseCommitId = a} :: GetMergeCommitResponse)
+
+-- | The commit ID of the destination commit specifier that was used in the
+-- merge evaluation.
+getMergeCommitResponse_destinationCommitId :: Lens.Lens' GetMergeCommitResponse (Prelude.Maybe Prelude.Text)
+getMergeCommitResponse_destinationCommitId = Lens.lens (\GetMergeCommitResponse' {destinationCommitId} -> destinationCommitId) (\s@GetMergeCommitResponse' {} a -> s {destinationCommitId = a} :: GetMergeCommitResponse)
+
+-- | The commit ID for the merge commit created when the source branch was
+-- merged into the destination branch. If the fast-forward merge strategy
+-- was used, there is no merge commit.
+getMergeCommitResponse_mergedCommitId :: Lens.Lens' GetMergeCommitResponse (Prelude.Maybe Prelude.Text)
+getMergeCommitResponse_mergedCommitId = Lens.lens (\GetMergeCommitResponse' {mergedCommitId} -> mergedCommitId) (\s@GetMergeCommitResponse' {} a -> s {mergedCommitId = a} :: GetMergeCommitResponse)
+
+-- | The commit ID of the source commit specifier that was used in the merge
+-- evaluation.
+getMergeCommitResponse_sourceCommitId :: Lens.Lens' GetMergeCommitResponse (Prelude.Maybe Prelude.Text)
+getMergeCommitResponse_sourceCommitId = Lens.lens (\GetMergeCommitResponse' {sourceCommitId} -> sourceCommitId) (\s@GetMergeCommitResponse' {} a -> s {sourceCommitId = a} :: GetMergeCommitResponse)
+
+-- | The response's http status code.
+getMergeCommitResponse_httpStatus :: Lens.Lens' GetMergeCommitResponse Prelude.Int
+getMergeCommitResponse_httpStatus = Lens.lens (\GetMergeCommitResponse' {httpStatus} -> httpStatus) (\s@GetMergeCommitResponse' {} a -> s {httpStatus = a} :: GetMergeCommitResponse)
+
+instance Prelude.NFData GetMergeCommitResponse where
+  rnf GetMergeCommitResponse' {..} =
+    Prelude.rnf baseCommitId
+      `Prelude.seq` Prelude.rnf destinationCommitId
+      `Prelude.seq` Prelude.rnf mergedCommitId
+      `Prelude.seq` Prelude.rnf sourceCommitId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/GetMergeConflicts.hs b/gen/Amazonka/CodeCommit/GetMergeConflicts.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetMergeConflicts.hs
@@ -0,0 +1,405 @@
+{-# 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.CodeCommit.GetMergeConflicts
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about merge conflicts between the before and after
+-- commit IDs for a pull request in a repository.
+module Amazonka.CodeCommit.GetMergeConflicts
+  ( -- * Creating a Request
+    GetMergeConflicts (..),
+    newGetMergeConflicts,
+
+    -- * Request Lenses
+    getMergeConflicts_conflictDetailLevel,
+    getMergeConflicts_conflictResolutionStrategy,
+    getMergeConflicts_maxConflictFiles,
+    getMergeConflicts_nextToken,
+    getMergeConflicts_repositoryName,
+    getMergeConflicts_destinationCommitSpecifier,
+    getMergeConflicts_sourceCommitSpecifier,
+    getMergeConflicts_mergeOption,
+
+    -- * Destructuring the Response
+    GetMergeConflictsResponse (..),
+    newGetMergeConflictsResponse,
+
+    -- * Response Lenses
+    getMergeConflictsResponse_baseCommitId,
+    getMergeConflictsResponse_nextToken,
+    getMergeConflictsResponse_httpStatus,
+    getMergeConflictsResponse_mergeable,
+    getMergeConflictsResponse_destinationCommitId,
+    getMergeConflictsResponse_sourceCommitId,
+    getMergeConflictsResponse_conflictMetadataList,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetMergeConflicts' smart constructor.
+data GetMergeConflicts = GetMergeConflicts'
+  { -- | The level of conflict detail to use. If unspecified, the default
+    -- FILE_LEVEL is used, which returns a not-mergeable result if the same
+    -- file has differences in both branches. If LINE_LEVEL is specified, a
+    -- conflict is considered not mergeable if the same file in both branches
+    -- has differences on the same line.
+    conflictDetailLevel :: Prelude.Maybe ConflictDetailLevelTypeEnum,
+    -- | Specifies which branch to use when resolving conflicts, or whether to
+    -- attempt automatically merging two versions of a file. The default is
+    -- NONE, which requires any conflicts to be resolved manually before the
+    -- merge operation is successful.
+    conflictResolutionStrategy :: Prelude.Maybe ConflictResolutionStrategyTypeEnum,
+    -- | The maximum number of files to include in the output.
+    maxConflictFiles :: Prelude.Maybe Prelude.Int,
+    -- | An enumeration token that, when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where the pull request was created.
+    repositoryName :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    destinationCommitSpecifier :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    sourceCommitSpecifier :: Prelude.Text,
+    -- | The merge option or strategy you want to use to merge the code.
+    mergeOption :: MergeOptionTypeEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetMergeConflicts' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'conflictDetailLevel', 'getMergeConflicts_conflictDetailLevel' - The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+--
+-- 'conflictResolutionStrategy', 'getMergeConflicts_conflictResolutionStrategy' - Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+--
+-- 'maxConflictFiles', 'getMergeConflicts_maxConflictFiles' - The maximum number of files to include in the output.
+--
+-- 'nextToken', 'getMergeConflicts_nextToken' - An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+--
+-- 'repositoryName', 'getMergeConflicts_repositoryName' - The name of the repository where the pull request was created.
+--
+-- 'destinationCommitSpecifier', 'getMergeConflicts_destinationCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'sourceCommitSpecifier', 'getMergeConflicts_sourceCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'mergeOption', 'getMergeConflicts_mergeOption' - The merge option or strategy you want to use to merge the code.
+newGetMergeConflicts ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'destinationCommitSpecifier'
+  Prelude.Text ->
+  -- | 'sourceCommitSpecifier'
+  Prelude.Text ->
+  -- | 'mergeOption'
+  MergeOptionTypeEnum ->
+  GetMergeConflicts
+newGetMergeConflicts
+  pRepositoryName_
+  pDestinationCommitSpecifier_
+  pSourceCommitSpecifier_
+  pMergeOption_ =
+    GetMergeConflicts'
+      { conflictDetailLevel =
+          Prelude.Nothing,
+        conflictResolutionStrategy = Prelude.Nothing,
+        maxConflictFiles = Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        destinationCommitSpecifier =
+          pDestinationCommitSpecifier_,
+        sourceCommitSpecifier = pSourceCommitSpecifier_,
+        mergeOption = pMergeOption_
+      }
+
+-- | The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+getMergeConflicts_conflictDetailLevel :: Lens.Lens' GetMergeConflicts (Prelude.Maybe ConflictDetailLevelTypeEnum)
+getMergeConflicts_conflictDetailLevel = Lens.lens (\GetMergeConflicts' {conflictDetailLevel} -> conflictDetailLevel) (\s@GetMergeConflicts' {} a -> s {conflictDetailLevel = a} :: GetMergeConflicts)
+
+-- | Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+getMergeConflicts_conflictResolutionStrategy :: Lens.Lens' GetMergeConflicts (Prelude.Maybe ConflictResolutionStrategyTypeEnum)
+getMergeConflicts_conflictResolutionStrategy = Lens.lens (\GetMergeConflicts' {conflictResolutionStrategy} -> conflictResolutionStrategy) (\s@GetMergeConflicts' {} a -> s {conflictResolutionStrategy = a} :: GetMergeConflicts)
+
+-- | The maximum number of files to include in the output.
+getMergeConflicts_maxConflictFiles :: Lens.Lens' GetMergeConflicts (Prelude.Maybe Prelude.Int)
+getMergeConflicts_maxConflictFiles = Lens.lens (\GetMergeConflicts' {maxConflictFiles} -> maxConflictFiles) (\s@GetMergeConflicts' {} a -> s {maxConflictFiles = a} :: GetMergeConflicts)
+
+-- | An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+getMergeConflicts_nextToken :: Lens.Lens' GetMergeConflicts (Prelude.Maybe Prelude.Text)
+getMergeConflicts_nextToken = Lens.lens (\GetMergeConflicts' {nextToken} -> nextToken) (\s@GetMergeConflicts' {} a -> s {nextToken = a} :: GetMergeConflicts)
+
+-- | The name of the repository where the pull request was created.
+getMergeConflicts_repositoryName :: Lens.Lens' GetMergeConflicts Prelude.Text
+getMergeConflicts_repositoryName = Lens.lens (\GetMergeConflicts' {repositoryName} -> repositoryName) (\s@GetMergeConflicts' {} a -> s {repositoryName = a} :: GetMergeConflicts)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+getMergeConflicts_destinationCommitSpecifier :: Lens.Lens' GetMergeConflicts Prelude.Text
+getMergeConflicts_destinationCommitSpecifier = Lens.lens (\GetMergeConflicts' {destinationCommitSpecifier} -> destinationCommitSpecifier) (\s@GetMergeConflicts' {} a -> s {destinationCommitSpecifier = a} :: GetMergeConflicts)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+getMergeConflicts_sourceCommitSpecifier :: Lens.Lens' GetMergeConflicts Prelude.Text
+getMergeConflicts_sourceCommitSpecifier = Lens.lens (\GetMergeConflicts' {sourceCommitSpecifier} -> sourceCommitSpecifier) (\s@GetMergeConflicts' {} a -> s {sourceCommitSpecifier = a} :: GetMergeConflicts)
+
+-- | The merge option or strategy you want to use to merge the code.
+getMergeConflicts_mergeOption :: Lens.Lens' GetMergeConflicts MergeOptionTypeEnum
+getMergeConflicts_mergeOption = Lens.lens (\GetMergeConflicts' {mergeOption} -> mergeOption) (\s@GetMergeConflicts' {} a -> s {mergeOption = a} :: GetMergeConflicts)
+
+instance Core.AWSRequest GetMergeConflicts where
+  type
+    AWSResponse GetMergeConflicts =
+      GetMergeConflictsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetMergeConflictsResponse'
+            Prelude.<$> (x Data..?> "baseCommitId")
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "mergeable")
+            Prelude.<*> (x Data..:> "destinationCommitId")
+            Prelude.<*> (x Data..:> "sourceCommitId")
+            Prelude.<*> ( x
+                            Data..?> "conflictMetadataList"
+                            Core..!@ Prelude.mempty
+                        )
+      )
+
+instance Prelude.Hashable GetMergeConflicts where
+  hashWithSalt _salt GetMergeConflicts' {..} =
+    _salt
+      `Prelude.hashWithSalt` conflictDetailLevel
+      `Prelude.hashWithSalt` conflictResolutionStrategy
+      `Prelude.hashWithSalt` maxConflictFiles
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` destinationCommitSpecifier
+      `Prelude.hashWithSalt` sourceCommitSpecifier
+      `Prelude.hashWithSalt` mergeOption
+
+instance Prelude.NFData GetMergeConflicts where
+  rnf GetMergeConflicts' {..} =
+    Prelude.rnf conflictDetailLevel
+      `Prelude.seq` Prelude.rnf conflictResolutionStrategy
+      `Prelude.seq` Prelude.rnf maxConflictFiles
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf destinationCommitSpecifier
+      `Prelude.seq` Prelude.rnf sourceCommitSpecifier
+      `Prelude.seq` Prelude.rnf mergeOption
+
+instance Data.ToHeaders GetMergeConflicts where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetMergeConflicts" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetMergeConflicts where
+  toJSON GetMergeConflicts' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("conflictDetailLevel" Data..=)
+              Prelude.<$> conflictDetailLevel,
+            ("conflictResolutionStrategy" Data..=)
+              Prelude.<$> conflictResolutionStrategy,
+            ("maxConflictFiles" Data..=)
+              Prelude.<$> maxConflictFiles,
+            ("nextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ( "destinationCommitSpecifier"
+                  Data..= destinationCommitSpecifier
+              ),
+            Prelude.Just
+              ( "sourceCommitSpecifier"
+                  Data..= sourceCommitSpecifier
+              ),
+            Prelude.Just ("mergeOption" Data..= mergeOption)
+          ]
+      )
+
+instance Data.ToPath GetMergeConflicts where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetMergeConflicts where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetMergeConflictsResponse' smart constructor.
+data GetMergeConflictsResponse = GetMergeConflictsResponse'
+  { -- | The commit ID of the merge base.
+    baseCommitId :: Prelude.Maybe Prelude.Text,
+    -- | An enumeration token that can be used in a request to return the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | A Boolean value that indicates whether the code is mergeable by the
+    -- specified merge option.
+    mergeable :: Prelude.Bool,
+    -- | The commit ID of the destination commit specifier that was used in the
+    -- merge evaluation.
+    destinationCommitId :: Prelude.Text,
+    -- | The commit ID of the source commit specifier that was used in the merge
+    -- evaluation.
+    sourceCommitId :: Prelude.Text,
+    -- | A list of metadata for any conflicting files. If the specified merge
+    -- strategy is FAST_FORWARD_MERGE, this list is always empty.
+    conflictMetadataList :: [ConflictMetadata]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetMergeConflictsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'baseCommitId', 'getMergeConflictsResponse_baseCommitId' - The commit ID of the merge base.
+--
+-- 'nextToken', 'getMergeConflictsResponse_nextToken' - An enumeration token that can be used in a request to return the next
+-- batch of the results.
+--
+-- 'httpStatus', 'getMergeConflictsResponse_httpStatus' - The response's http status code.
+--
+-- 'mergeable', 'getMergeConflictsResponse_mergeable' - A Boolean value that indicates whether the code is mergeable by the
+-- specified merge option.
+--
+-- 'destinationCommitId', 'getMergeConflictsResponse_destinationCommitId' - The commit ID of the destination commit specifier that was used in the
+-- merge evaluation.
+--
+-- 'sourceCommitId', 'getMergeConflictsResponse_sourceCommitId' - The commit ID of the source commit specifier that was used in the merge
+-- evaluation.
+--
+-- 'conflictMetadataList', 'getMergeConflictsResponse_conflictMetadataList' - A list of metadata for any conflicting files. If the specified merge
+-- strategy is FAST_FORWARD_MERGE, this list is always empty.
+newGetMergeConflictsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'mergeable'
+  Prelude.Bool ->
+  -- | 'destinationCommitId'
+  Prelude.Text ->
+  -- | 'sourceCommitId'
+  Prelude.Text ->
+  GetMergeConflictsResponse
+newGetMergeConflictsResponse
+  pHttpStatus_
+  pMergeable_
+  pDestinationCommitId_
+  pSourceCommitId_ =
+    GetMergeConflictsResponse'
+      { baseCommitId =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        httpStatus = pHttpStatus_,
+        mergeable = pMergeable_,
+        destinationCommitId = pDestinationCommitId_,
+        sourceCommitId = pSourceCommitId_,
+        conflictMetadataList = Prelude.mempty
+      }
+
+-- | The commit ID of the merge base.
+getMergeConflictsResponse_baseCommitId :: Lens.Lens' GetMergeConflictsResponse (Prelude.Maybe Prelude.Text)
+getMergeConflictsResponse_baseCommitId = Lens.lens (\GetMergeConflictsResponse' {baseCommitId} -> baseCommitId) (\s@GetMergeConflictsResponse' {} a -> s {baseCommitId = a} :: GetMergeConflictsResponse)
+
+-- | An enumeration token that can be used in a request to return the next
+-- batch of the results.
+getMergeConflictsResponse_nextToken :: Lens.Lens' GetMergeConflictsResponse (Prelude.Maybe Prelude.Text)
+getMergeConflictsResponse_nextToken = Lens.lens (\GetMergeConflictsResponse' {nextToken} -> nextToken) (\s@GetMergeConflictsResponse' {} a -> s {nextToken = a} :: GetMergeConflictsResponse)
+
+-- | The response's http status code.
+getMergeConflictsResponse_httpStatus :: Lens.Lens' GetMergeConflictsResponse Prelude.Int
+getMergeConflictsResponse_httpStatus = Lens.lens (\GetMergeConflictsResponse' {httpStatus} -> httpStatus) (\s@GetMergeConflictsResponse' {} a -> s {httpStatus = a} :: GetMergeConflictsResponse)
+
+-- | A Boolean value that indicates whether the code is mergeable by the
+-- specified merge option.
+getMergeConflictsResponse_mergeable :: Lens.Lens' GetMergeConflictsResponse Prelude.Bool
+getMergeConflictsResponse_mergeable = Lens.lens (\GetMergeConflictsResponse' {mergeable} -> mergeable) (\s@GetMergeConflictsResponse' {} a -> s {mergeable = a} :: GetMergeConflictsResponse)
+
+-- | The commit ID of the destination commit specifier that was used in the
+-- merge evaluation.
+getMergeConflictsResponse_destinationCommitId :: Lens.Lens' GetMergeConflictsResponse Prelude.Text
+getMergeConflictsResponse_destinationCommitId = Lens.lens (\GetMergeConflictsResponse' {destinationCommitId} -> destinationCommitId) (\s@GetMergeConflictsResponse' {} a -> s {destinationCommitId = a} :: GetMergeConflictsResponse)
+
+-- | The commit ID of the source commit specifier that was used in the merge
+-- evaluation.
+getMergeConflictsResponse_sourceCommitId :: Lens.Lens' GetMergeConflictsResponse Prelude.Text
+getMergeConflictsResponse_sourceCommitId = Lens.lens (\GetMergeConflictsResponse' {sourceCommitId} -> sourceCommitId) (\s@GetMergeConflictsResponse' {} a -> s {sourceCommitId = a} :: GetMergeConflictsResponse)
+
+-- | A list of metadata for any conflicting files. If the specified merge
+-- strategy is FAST_FORWARD_MERGE, this list is always empty.
+getMergeConflictsResponse_conflictMetadataList :: Lens.Lens' GetMergeConflictsResponse [ConflictMetadata]
+getMergeConflictsResponse_conflictMetadataList = Lens.lens (\GetMergeConflictsResponse' {conflictMetadataList} -> conflictMetadataList) (\s@GetMergeConflictsResponse' {} a -> s {conflictMetadataList = a} :: GetMergeConflictsResponse) Prelude.. Lens.coerced
+
+instance Prelude.NFData GetMergeConflictsResponse where
+  rnf GetMergeConflictsResponse' {..} =
+    Prelude.rnf baseCommitId
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf mergeable
+      `Prelude.seq` Prelude.rnf destinationCommitId
+      `Prelude.seq` Prelude.rnf sourceCommitId
+      `Prelude.seq` Prelude.rnf conflictMetadataList
diff --git a/gen/Amazonka/CodeCommit/GetMergeOptions.hs b/gen/Amazonka/CodeCommit/GetMergeOptions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetMergeOptions.hs
@@ -0,0 +1,326 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.GetMergeOptions
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about the merge options available for merging two
+-- specified branches. For details about why a merge option is not
+-- available, use GetMergeConflicts or DescribeMergeConflicts.
+module Amazonka.CodeCommit.GetMergeOptions
+  ( -- * Creating a Request
+    GetMergeOptions (..),
+    newGetMergeOptions,
+
+    -- * Request Lenses
+    getMergeOptions_conflictDetailLevel,
+    getMergeOptions_conflictResolutionStrategy,
+    getMergeOptions_repositoryName,
+    getMergeOptions_sourceCommitSpecifier,
+    getMergeOptions_destinationCommitSpecifier,
+
+    -- * Destructuring the Response
+    GetMergeOptionsResponse (..),
+    newGetMergeOptionsResponse,
+
+    -- * Response Lenses
+    getMergeOptionsResponse_httpStatus,
+    getMergeOptionsResponse_mergeOptions,
+    getMergeOptionsResponse_sourceCommitId,
+    getMergeOptionsResponse_destinationCommitId,
+    getMergeOptionsResponse_baseCommitId,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetMergeOptions' smart constructor.
+data GetMergeOptions = GetMergeOptions'
+  { -- | The level of conflict detail to use. If unspecified, the default
+    -- FILE_LEVEL is used, which returns a not-mergeable result if the same
+    -- file has differences in both branches. If LINE_LEVEL is specified, a
+    -- conflict is considered not mergeable if the same file in both branches
+    -- has differences on the same line.
+    conflictDetailLevel :: Prelude.Maybe ConflictDetailLevelTypeEnum,
+    -- | Specifies which branch to use when resolving conflicts, or whether to
+    -- attempt automatically merging two versions of a file. The default is
+    -- NONE, which requires any conflicts to be resolved manually before the
+    -- merge operation is successful.
+    conflictResolutionStrategy :: Prelude.Maybe ConflictResolutionStrategyTypeEnum,
+    -- | The name of the repository that contains the commits about which you
+    -- want to get merge options.
+    repositoryName :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    sourceCommitSpecifier :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    destinationCommitSpecifier :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetMergeOptions' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'conflictDetailLevel', 'getMergeOptions_conflictDetailLevel' - The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+--
+-- 'conflictResolutionStrategy', 'getMergeOptions_conflictResolutionStrategy' - Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+--
+-- 'repositoryName', 'getMergeOptions_repositoryName' - The name of the repository that contains the commits about which you
+-- want to get merge options.
+--
+-- 'sourceCommitSpecifier', 'getMergeOptions_sourceCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'destinationCommitSpecifier', 'getMergeOptions_destinationCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+newGetMergeOptions ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'sourceCommitSpecifier'
+  Prelude.Text ->
+  -- | 'destinationCommitSpecifier'
+  Prelude.Text ->
+  GetMergeOptions
+newGetMergeOptions
+  pRepositoryName_
+  pSourceCommitSpecifier_
+  pDestinationCommitSpecifier_ =
+    GetMergeOptions'
+      { conflictDetailLevel =
+          Prelude.Nothing,
+        conflictResolutionStrategy = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        sourceCommitSpecifier = pSourceCommitSpecifier_,
+        destinationCommitSpecifier =
+          pDestinationCommitSpecifier_
+      }
+
+-- | The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+getMergeOptions_conflictDetailLevel :: Lens.Lens' GetMergeOptions (Prelude.Maybe ConflictDetailLevelTypeEnum)
+getMergeOptions_conflictDetailLevel = Lens.lens (\GetMergeOptions' {conflictDetailLevel} -> conflictDetailLevel) (\s@GetMergeOptions' {} a -> s {conflictDetailLevel = a} :: GetMergeOptions)
+
+-- | Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+getMergeOptions_conflictResolutionStrategy :: Lens.Lens' GetMergeOptions (Prelude.Maybe ConflictResolutionStrategyTypeEnum)
+getMergeOptions_conflictResolutionStrategy = Lens.lens (\GetMergeOptions' {conflictResolutionStrategy} -> conflictResolutionStrategy) (\s@GetMergeOptions' {} a -> s {conflictResolutionStrategy = a} :: GetMergeOptions)
+
+-- | The name of the repository that contains the commits about which you
+-- want to get merge options.
+getMergeOptions_repositoryName :: Lens.Lens' GetMergeOptions Prelude.Text
+getMergeOptions_repositoryName = Lens.lens (\GetMergeOptions' {repositoryName} -> repositoryName) (\s@GetMergeOptions' {} a -> s {repositoryName = a} :: GetMergeOptions)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+getMergeOptions_sourceCommitSpecifier :: Lens.Lens' GetMergeOptions Prelude.Text
+getMergeOptions_sourceCommitSpecifier = Lens.lens (\GetMergeOptions' {sourceCommitSpecifier} -> sourceCommitSpecifier) (\s@GetMergeOptions' {} a -> s {sourceCommitSpecifier = a} :: GetMergeOptions)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+getMergeOptions_destinationCommitSpecifier :: Lens.Lens' GetMergeOptions Prelude.Text
+getMergeOptions_destinationCommitSpecifier = Lens.lens (\GetMergeOptions' {destinationCommitSpecifier} -> destinationCommitSpecifier) (\s@GetMergeOptions' {} a -> s {destinationCommitSpecifier = a} :: GetMergeOptions)
+
+instance Core.AWSRequest GetMergeOptions where
+  type
+    AWSResponse GetMergeOptions =
+      GetMergeOptionsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetMergeOptionsResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..?> "mergeOptions" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..:> "sourceCommitId")
+            Prelude.<*> (x Data..:> "destinationCommitId")
+            Prelude.<*> (x Data..:> "baseCommitId")
+      )
+
+instance Prelude.Hashable GetMergeOptions where
+  hashWithSalt _salt GetMergeOptions' {..} =
+    _salt
+      `Prelude.hashWithSalt` conflictDetailLevel
+      `Prelude.hashWithSalt` conflictResolutionStrategy
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` sourceCommitSpecifier
+      `Prelude.hashWithSalt` destinationCommitSpecifier
+
+instance Prelude.NFData GetMergeOptions where
+  rnf GetMergeOptions' {..} =
+    Prelude.rnf conflictDetailLevel
+      `Prelude.seq` Prelude.rnf conflictResolutionStrategy
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf sourceCommitSpecifier
+      `Prelude.seq` Prelude.rnf destinationCommitSpecifier
+
+instance Data.ToHeaders GetMergeOptions where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetMergeOptions" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetMergeOptions where
+  toJSON GetMergeOptions' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("conflictDetailLevel" Data..=)
+              Prelude.<$> conflictDetailLevel,
+            ("conflictResolutionStrategy" Data..=)
+              Prelude.<$> conflictResolutionStrategy,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ( "sourceCommitSpecifier"
+                  Data..= sourceCommitSpecifier
+              ),
+            Prelude.Just
+              ( "destinationCommitSpecifier"
+                  Data..= destinationCommitSpecifier
+              )
+          ]
+      )
+
+instance Data.ToPath GetMergeOptions where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetMergeOptions where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetMergeOptionsResponse' smart constructor.
+data GetMergeOptionsResponse = GetMergeOptionsResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The merge option or strategy used to merge the code.
+    mergeOptions :: [MergeOptionTypeEnum],
+    -- | The commit ID of the source commit specifier that was used in the merge
+    -- evaluation.
+    sourceCommitId :: Prelude.Text,
+    -- | The commit ID of the destination commit specifier that was used in the
+    -- merge evaluation.
+    destinationCommitId :: Prelude.Text,
+    -- | The commit ID of the merge base.
+    baseCommitId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetMergeOptionsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'getMergeOptionsResponse_httpStatus' - The response's http status code.
+--
+-- 'mergeOptions', 'getMergeOptionsResponse_mergeOptions' - The merge option or strategy used to merge the code.
+--
+-- 'sourceCommitId', 'getMergeOptionsResponse_sourceCommitId' - The commit ID of the source commit specifier that was used in the merge
+-- evaluation.
+--
+-- 'destinationCommitId', 'getMergeOptionsResponse_destinationCommitId' - The commit ID of the destination commit specifier that was used in the
+-- merge evaluation.
+--
+-- 'baseCommitId', 'getMergeOptionsResponse_baseCommitId' - The commit ID of the merge base.
+newGetMergeOptionsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'sourceCommitId'
+  Prelude.Text ->
+  -- | 'destinationCommitId'
+  Prelude.Text ->
+  -- | 'baseCommitId'
+  Prelude.Text ->
+  GetMergeOptionsResponse
+newGetMergeOptionsResponse
+  pHttpStatus_
+  pSourceCommitId_
+  pDestinationCommitId_
+  pBaseCommitId_ =
+    GetMergeOptionsResponse'
+      { httpStatus = pHttpStatus_,
+        mergeOptions = Prelude.mempty,
+        sourceCommitId = pSourceCommitId_,
+        destinationCommitId = pDestinationCommitId_,
+        baseCommitId = pBaseCommitId_
+      }
+
+-- | The response's http status code.
+getMergeOptionsResponse_httpStatus :: Lens.Lens' GetMergeOptionsResponse Prelude.Int
+getMergeOptionsResponse_httpStatus = Lens.lens (\GetMergeOptionsResponse' {httpStatus} -> httpStatus) (\s@GetMergeOptionsResponse' {} a -> s {httpStatus = a} :: GetMergeOptionsResponse)
+
+-- | The merge option or strategy used to merge the code.
+getMergeOptionsResponse_mergeOptions :: Lens.Lens' GetMergeOptionsResponse [MergeOptionTypeEnum]
+getMergeOptionsResponse_mergeOptions = Lens.lens (\GetMergeOptionsResponse' {mergeOptions} -> mergeOptions) (\s@GetMergeOptionsResponse' {} a -> s {mergeOptions = a} :: GetMergeOptionsResponse) Prelude.. Lens.coerced
+
+-- | The commit ID of the source commit specifier that was used in the merge
+-- evaluation.
+getMergeOptionsResponse_sourceCommitId :: Lens.Lens' GetMergeOptionsResponse Prelude.Text
+getMergeOptionsResponse_sourceCommitId = Lens.lens (\GetMergeOptionsResponse' {sourceCommitId} -> sourceCommitId) (\s@GetMergeOptionsResponse' {} a -> s {sourceCommitId = a} :: GetMergeOptionsResponse)
+
+-- | The commit ID of the destination commit specifier that was used in the
+-- merge evaluation.
+getMergeOptionsResponse_destinationCommitId :: Lens.Lens' GetMergeOptionsResponse Prelude.Text
+getMergeOptionsResponse_destinationCommitId = Lens.lens (\GetMergeOptionsResponse' {destinationCommitId} -> destinationCommitId) (\s@GetMergeOptionsResponse' {} a -> s {destinationCommitId = a} :: GetMergeOptionsResponse)
+
+-- | The commit ID of the merge base.
+getMergeOptionsResponse_baseCommitId :: Lens.Lens' GetMergeOptionsResponse Prelude.Text
+getMergeOptionsResponse_baseCommitId = Lens.lens (\GetMergeOptionsResponse' {baseCommitId} -> baseCommitId) (\s@GetMergeOptionsResponse' {} a -> s {baseCommitId = a} :: GetMergeOptionsResponse)
+
+instance Prelude.NFData GetMergeOptionsResponse where
+  rnf GetMergeOptionsResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf mergeOptions
+      `Prelude.seq` Prelude.rnf sourceCommitId
+      `Prelude.seq` Prelude.rnf destinationCommitId
+      `Prelude.seq` Prelude.rnf baseCommitId
diff --git a/gen/Amazonka/CodeCommit/GetPullRequest.hs b/gen/Amazonka/CodeCommit/GetPullRequest.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetPullRequest.hs
@@ -0,0 +1,174 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.GetPullRequest
+-- 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 information about a pull request in a specified repository.
+module Amazonka.CodeCommit.GetPullRequest
+  ( -- * Creating a Request
+    GetPullRequest (..),
+    newGetPullRequest,
+
+    -- * Request Lenses
+    getPullRequest_pullRequestId,
+
+    -- * Destructuring the Response
+    GetPullRequestResponse (..),
+    newGetPullRequestResponse,
+
+    -- * Response Lenses
+    getPullRequestResponse_httpStatus,
+    getPullRequestResponse_pullRequest,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetPullRequest' smart constructor.
+data GetPullRequest = GetPullRequest'
+  { -- | The system-generated ID of the pull request. To get this ID, use
+    -- ListPullRequests.
+    pullRequestId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetPullRequest' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequestId', 'getPullRequest_pullRequestId' - The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+newGetPullRequest ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  GetPullRequest
+newGetPullRequest pPullRequestId_ =
+  GetPullRequest' {pullRequestId = pPullRequestId_}
+
+-- | The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+getPullRequest_pullRequestId :: Lens.Lens' GetPullRequest Prelude.Text
+getPullRequest_pullRequestId = Lens.lens (\GetPullRequest' {pullRequestId} -> pullRequestId) (\s@GetPullRequest' {} a -> s {pullRequestId = a} :: GetPullRequest)
+
+instance Core.AWSRequest GetPullRequest where
+  type
+    AWSResponse GetPullRequest =
+      GetPullRequestResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetPullRequestResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "pullRequest")
+      )
+
+instance Prelude.Hashable GetPullRequest where
+  hashWithSalt _salt GetPullRequest' {..} =
+    _salt `Prelude.hashWithSalt` pullRequestId
+
+instance Prelude.NFData GetPullRequest where
+  rnf GetPullRequest' {..} = Prelude.rnf pullRequestId
+
+instance Data.ToHeaders GetPullRequest where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetPullRequest" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetPullRequest where
+  toJSON GetPullRequest' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("pullRequestId" Data..= pullRequestId)
+          ]
+      )
+
+instance Data.ToPath GetPullRequest where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetPullRequest where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetPullRequestResponse' smart constructor.
+data GetPullRequestResponse = GetPullRequestResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | Information about the specified pull request.
+    pullRequest :: PullRequest
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetPullRequestResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'getPullRequestResponse_httpStatus' - The response's http status code.
+--
+-- 'pullRequest', 'getPullRequestResponse_pullRequest' - Information about the specified pull request.
+newGetPullRequestResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'pullRequest'
+  PullRequest ->
+  GetPullRequestResponse
+newGetPullRequestResponse pHttpStatus_ pPullRequest_ =
+  GetPullRequestResponse'
+    { httpStatus = pHttpStatus_,
+      pullRequest = pPullRequest_
+    }
+
+-- | The response's http status code.
+getPullRequestResponse_httpStatus :: Lens.Lens' GetPullRequestResponse Prelude.Int
+getPullRequestResponse_httpStatus = Lens.lens (\GetPullRequestResponse' {httpStatus} -> httpStatus) (\s@GetPullRequestResponse' {} a -> s {httpStatus = a} :: GetPullRequestResponse)
+
+-- | Information about the specified pull request.
+getPullRequestResponse_pullRequest :: Lens.Lens' GetPullRequestResponse PullRequest
+getPullRequestResponse_pullRequest = Lens.lens (\GetPullRequestResponse' {pullRequest} -> pullRequest) (\s@GetPullRequestResponse' {} a -> s {pullRequest = a} :: GetPullRequestResponse)
+
+instance Prelude.NFData GetPullRequestResponse where
+  rnf GetPullRequestResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf pullRequest
diff --git a/gen/Amazonka/CodeCommit/GetPullRequestApprovalStates.hs b/gen/Amazonka/CodeCommit/GetPullRequestApprovalStates.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetPullRequestApprovalStates.hs
@@ -0,0 +1,200 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.GetPullRequestApprovalStates
+-- 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 information about the approval states for a specified pull request.
+-- Approval states only apply to pull requests that have one or more
+-- approval rules applied to them.
+module Amazonka.CodeCommit.GetPullRequestApprovalStates
+  ( -- * Creating a Request
+    GetPullRequestApprovalStates (..),
+    newGetPullRequestApprovalStates,
+
+    -- * Request Lenses
+    getPullRequestApprovalStates_pullRequestId,
+    getPullRequestApprovalStates_revisionId,
+
+    -- * Destructuring the Response
+    GetPullRequestApprovalStatesResponse (..),
+    newGetPullRequestApprovalStatesResponse,
+
+    -- * Response Lenses
+    getPullRequestApprovalStatesResponse_approvals,
+    getPullRequestApprovalStatesResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetPullRequestApprovalStates' smart constructor.
+data GetPullRequestApprovalStates = GetPullRequestApprovalStates'
+  { -- | The system-generated ID for the pull request.
+    pullRequestId :: Prelude.Text,
+    -- | The system-generated ID for the pull request revision.
+    revisionId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetPullRequestApprovalStates' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequestId', 'getPullRequestApprovalStates_pullRequestId' - The system-generated ID for the pull request.
+--
+-- 'revisionId', 'getPullRequestApprovalStates_revisionId' - The system-generated ID for the pull request revision.
+newGetPullRequestApprovalStates ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'revisionId'
+  Prelude.Text ->
+  GetPullRequestApprovalStates
+newGetPullRequestApprovalStates
+  pPullRequestId_
+  pRevisionId_ =
+    GetPullRequestApprovalStates'
+      { pullRequestId =
+          pPullRequestId_,
+        revisionId = pRevisionId_
+      }
+
+-- | The system-generated ID for the pull request.
+getPullRequestApprovalStates_pullRequestId :: Lens.Lens' GetPullRequestApprovalStates Prelude.Text
+getPullRequestApprovalStates_pullRequestId = Lens.lens (\GetPullRequestApprovalStates' {pullRequestId} -> pullRequestId) (\s@GetPullRequestApprovalStates' {} a -> s {pullRequestId = a} :: GetPullRequestApprovalStates)
+
+-- | The system-generated ID for the pull request revision.
+getPullRequestApprovalStates_revisionId :: Lens.Lens' GetPullRequestApprovalStates Prelude.Text
+getPullRequestApprovalStates_revisionId = Lens.lens (\GetPullRequestApprovalStates' {revisionId} -> revisionId) (\s@GetPullRequestApprovalStates' {} a -> s {revisionId = a} :: GetPullRequestApprovalStates)
+
+instance Core.AWSRequest GetPullRequestApprovalStates where
+  type
+    AWSResponse GetPullRequestApprovalStates =
+      GetPullRequestApprovalStatesResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetPullRequestApprovalStatesResponse'
+            Prelude.<$> (x Data..?> "approvals" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    GetPullRequestApprovalStates
+  where
+  hashWithSalt _salt GetPullRequestApprovalStates' {..} =
+    _salt
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` revisionId
+
+instance Prelude.NFData GetPullRequestApprovalStates where
+  rnf GetPullRequestApprovalStates' {..} =
+    Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf revisionId
+
+instance Data.ToHeaders GetPullRequestApprovalStates where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetPullRequestApprovalStates" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetPullRequestApprovalStates where
+  toJSON GetPullRequestApprovalStates' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just ("revisionId" Data..= revisionId)
+          ]
+      )
+
+instance Data.ToPath GetPullRequestApprovalStates where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetPullRequestApprovalStates where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetPullRequestApprovalStatesResponse' smart constructor.
+data GetPullRequestApprovalStatesResponse = GetPullRequestApprovalStatesResponse'
+  { -- | Information about users who have approved the pull request.
+    approvals :: Prelude.Maybe [Approval],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetPullRequestApprovalStatesResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvals', 'getPullRequestApprovalStatesResponse_approvals' - Information about users who have approved the pull request.
+--
+-- 'httpStatus', 'getPullRequestApprovalStatesResponse_httpStatus' - The response's http status code.
+newGetPullRequestApprovalStatesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetPullRequestApprovalStatesResponse
+newGetPullRequestApprovalStatesResponse pHttpStatus_ =
+  GetPullRequestApprovalStatesResponse'
+    { approvals =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about users who have approved the pull request.
+getPullRequestApprovalStatesResponse_approvals :: Lens.Lens' GetPullRequestApprovalStatesResponse (Prelude.Maybe [Approval])
+getPullRequestApprovalStatesResponse_approvals = Lens.lens (\GetPullRequestApprovalStatesResponse' {approvals} -> approvals) (\s@GetPullRequestApprovalStatesResponse' {} a -> s {approvals = a} :: GetPullRequestApprovalStatesResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+getPullRequestApprovalStatesResponse_httpStatus :: Lens.Lens' GetPullRequestApprovalStatesResponse Prelude.Int
+getPullRequestApprovalStatesResponse_httpStatus = Lens.lens (\GetPullRequestApprovalStatesResponse' {httpStatus} -> httpStatus) (\s@GetPullRequestApprovalStatesResponse' {} a -> s {httpStatus = a} :: GetPullRequestApprovalStatesResponse)
+
+instance
+  Prelude.NFData
+    GetPullRequestApprovalStatesResponse
+  where
+  rnf GetPullRequestApprovalStatesResponse' {..} =
+    Prelude.rnf approvals
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/GetPullRequestOverrideState.hs b/gen/Amazonka/CodeCommit/GetPullRequestOverrideState.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetPullRequestOverrideState.hs
@@ -0,0 +1,222 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.GetPullRequestOverrideState
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about whether approval rules have been set aside
+-- (overridden) for a pull request, and if so, the Amazon Resource Name
+-- (ARN) of the user or identity that overrode the rules and their
+-- requirements for the pull request.
+module Amazonka.CodeCommit.GetPullRequestOverrideState
+  ( -- * Creating a Request
+    GetPullRequestOverrideState (..),
+    newGetPullRequestOverrideState,
+
+    -- * Request Lenses
+    getPullRequestOverrideState_pullRequestId,
+    getPullRequestOverrideState_revisionId,
+
+    -- * Destructuring the Response
+    GetPullRequestOverrideStateResponse (..),
+    newGetPullRequestOverrideStateResponse,
+
+    -- * Response Lenses
+    getPullRequestOverrideStateResponse_overridden,
+    getPullRequestOverrideStateResponse_overrider,
+    getPullRequestOverrideStateResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newGetPullRequestOverrideState' smart constructor.
+data GetPullRequestOverrideState = GetPullRequestOverrideState'
+  { -- | The ID of the pull request for which you want to get information about
+    -- whether approval rules have been set aside (overridden).
+    pullRequestId :: Prelude.Text,
+    -- | The system-generated ID of the revision for the pull request. To
+    -- retrieve the most recent revision ID, use GetPullRequest.
+    revisionId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetPullRequestOverrideState' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequestId', 'getPullRequestOverrideState_pullRequestId' - The ID of the pull request for which you want to get information about
+-- whether approval rules have been set aside (overridden).
+--
+-- 'revisionId', 'getPullRequestOverrideState_revisionId' - The system-generated ID of the revision for the pull request. To
+-- retrieve the most recent revision ID, use GetPullRequest.
+newGetPullRequestOverrideState ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'revisionId'
+  Prelude.Text ->
+  GetPullRequestOverrideState
+newGetPullRequestOverrideState
+  pPullRequestId_
+  pRevisionId_ =
+    GetPullRequestOverrideState'
+      { pullRequestId =
+          pPullRequestId_,
+        revisionId = pRevisionId_
+      }
+
+-- | The ID of the pull request for which you want to get information about
+-- whether approval rules have been set aside (overridden).
+getPullRequestOverrideState_pullRequestId :: Lens.Lens' GetPullRequestOverrideState Prelude.Text
+getPullRequestOverrideState_pullRequestId = Lens.lens (\GetPullRequestOverrideState' {pullRequestId} -> pullRequestId) (\s@GetPullRequestOverrideState' {} a -> s {pullRequestId = a} :: GetPullRequestOverrideState)
+
+-- | The system-generated ID of the revision for the pull request. To
+-- retrieve the most recent revision ID, use GetPullRequest.
+getPullRequestOverrideState_revisionId :: Lens.Lens' GetPullRequestOverrideState Prelude.Text
+getPullRequestOverrideState_revisionId = Lens.lens (\GetPullRequestOverrideState' {revisionId} -> revisionId) (\s@GetPullRequestOverrideState' {} a -> s {revisionId = a} :: GetPullRequestOverrideState)
+
+instance Core.AWSRequest GetPullRequestOverrideState where
+  type
+    AWSResponse GetPullRequestOverrideState =
+      GetPullRequestOverrideStateResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetPullRequestOverrideStateResponse'
+            Prelude.<$> (x Data..?> "overridden")
+            Prelude.<*> (x Data..?> "overrider")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetPullRequestOverrideState where
+  hashWithSalt _salt GetPullRequestOverrideState' {..} =
+    _salt
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` revisionId
+
+instance Prelude.NFData GetPullRequestOverrideState where
+  rnf GetPullRequestOverrideState' {..} =
+    Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf revisionId
+
+instance Data.ToHeaders GetPullRequestOverrideState where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetPullRequestOverrideState" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetPullRequestOverrideState where
+  toJSON GetPullRequestOverrideState' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just ("revisionId" Data..= revisionId)
+          ]
+      )
+
+instance Data.ToPath GetPullRequestOverrideState where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetPullRequestOverrideState where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetPullRequestOverrideStateResponse' smart constructor.
+data GetPullRequestOverrideStateResponse = GetPullRequestOverrideStateResponse'
+  { -- | A Boolean value that indicates whether a pull request has had its rules
+    -- set aside (TRUE) or whether all approval rules still apply (FALSE).
+    overridden :: Prelude.Maybe Prelude.Bool,
+    -- | The Amazon Resource Name (ARN) of the user or identity that overrode the
+    -- rules and their requirements for the pull request.
+    overrider :: 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 'GetPullRequestOverrideStateResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'overridden', 'getPullRequestOverrideStateResponse_overridden' - A Boolean value that indicates whether a pull request has had its rules
+-- set aside (TRUE) or whether all approval rules still apply (FALSE).
+--
+-- 'overrider', 'getPullRequestOverrideStateResponse_overrider' - The Amazon Resource Name (ARN) of the user or identity that overrode the
+-- rules and their requirements for the pull request.
+--
+-- 'httpStatus', 'getPullRequestOverrideStateResponse_httpStatus' - The response's http status code.
+newGetPullRequestOverrideStateResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetPullRequestOverrideStateResponse
+newGetPullRequestOverrideStateResponse pHttpStatus_ =
+  GetPullRequestOverrideStateResponse'
+    { overridden =
+        Prelude.Nothing,
+      overrider = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | A Boolean value that indicates whether a pull request has had its rules
+-- set aside (TRUE) or whether all approval rules still apply (FALSE).
+getPullRequestOverrideStateResponse_overridden :: Lens.Lens' GetPullRequestOverrideStateResponse (Prelude.Maybe Prelude.Bool)
+getPullRequestOverrideStateResponse_overridden = Lens.lens (\GetPullRequestOverrideStateResponse' {overridden} -> overridden) (\s@GetPullRequestOverrideStateResponse' {} a -> s {overridden = a} :: GetPullRequestOverrideStateResponse)
+
+-- | The Amazon Resource Name (ARN) of the user or identity that overrode the
+-- rules and their requirements for the pull request.
+getPullRequestOverrideStateResponse_overrider :: Lens.Lens' GetPullRequestOverrideStateResponse (Prelude.Maybe Prelude.Text)
+getPullRequestOverrideStateResponse_overrider = Lens.lens (\GetPullRequestOverrideStateResponse' {overrider} -> overrider) (\s@GetPullRequestOverrideStateResponse' {} a -> s {overrider = a} :: GetPullRequestOverrideStateResponse)
+
+-- | The response's http status code.
+getPullRequestOverrideStateResponse_httpStatus :: Lens.Lens' GetPullRequestOverrideStateResponse Prelude.Int
+getPullRequestOverrideStateResponse_httpStatus = Lens.lens (\GetPullRequestOverrideStateResponse' {httpStatus} -> httpStatus) (\s@GetPullRequestOverrideStateResponse' {} a -> s {httpStatus = a} :: GetPullRequestOverrideStateResponse)
+
+instance
+  Prelude.NFData
+    GetPullRequestOverrideStateResponse
+  where
+  rnf GetPullRequestOverrideStateResponse' {..} =
+    Prelude.rnf overridden
+      `Prelude.seq` Prelude.rnf overrider
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/GetRepository.hs b/gen/Amazonka/CodeCommit/GetRepository.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetRepository.hs
@@ -0,0 +1,181 @@
+{-# 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.CodeCommit.GetRepository
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about a repository.
+--
+-- The description field for a repository accepts all HTML characters and
+-- all valid Unicode characters. Applications that do not HTML-encode the
+-- description and display it in a webpage can expose users to potentially
+-- malicious code. Make sure that you HTML-encode the description field in
+-- any application that uses this API to display the repository description
+-- on a webpage.
+module Amazonka.CodeCommit.GetRepository
+  ( -- * Creating a Request
+    GetRepository (..),
+    newGetRepository,
+
+    -- * Request Lenses
+    getRepository_repositoryName,
+
+    -- * Destructuring the Response
+    GetRepositoryResponse (..),
+    newGetRepositoryResponse,
+
+    -- * Response Lenses
+    getRepositoryResponse_repositoryMetadata,
+    getRepositoryResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a get repository operation.
+--
+-- /See:/ 'newGetRepository' smart constructor.
+data GetRepository = GetRepository'
+  { -- | The name of the repository to get information about.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetRepository' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryName', 'getRepository_repositoryName' - The name of the repository to get information about.
+newGetRepository ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  GetRepository
+newGetRepository pRepositoryName_ =
+  GetRepository' {repositoryName = pRepositoryName_}
+
+-- | The name of the repository to get information about.
+getRepository_repositoryName :: Lens.Lens' GetRepository Prelude.Text
+getRepository_repositoryName = Lens.lens (\GetRepository' {repositoryName} -> repositoryName) (\s@GetRepository' {} a -> s {repositoryName = a} :: GetRepository)
+
+instance Core.AWSRequest GetRepository where
+  type
+    AWSResponse GetRepository =
+      GetRepositoryResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetRepositoryResponse'
+            Prelude.<$> (x Data..?> "repositoryMetadata")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetRepository where
+  hashWithSalt _salt GetRepository' {..} =
+    _salt `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData GetRepository where
+  rnf GetRepository' {..} = Prelude.rnf repositoryName
+
+instance Data.ToHeaders GetRepository where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetRepository" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetRepository where
+  toJSON GetRepository' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("repositoryName" Data..= repositoryName)
+          ]
+      )
+
+instance Data.ToPath GetRepository where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetRepository where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a get repository operation.
+--
+-- /See:/ 'newGetRepositoryResponse' smart constructor.
+data GetRepositoryResponse = GetRepositoryResponse'
+  { -- | Information about the repository.
+    repositoryMetadata :: Prelude.Maybe RepositoryMetadata,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetRepositoryResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryMetadata', 'getRepositoryResponse_repositoryMetadata' - Information about the repository.
+--
+-- 'httpStatus', 'getRepositoryResponse_httpStatus' - The response's http status code.
+newGetRepositoryResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetRepositoryResponse
+newGetRepositoryResponse pHttpStatus_ =
+  GetRepositoryResponse'
+    { repositoryMetadata =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about the repository.
+getRepositoryResponse_repositoryMetadata :: Lens.Lens' GetRepositoryResponse (Prelude.Maybe RepositoryMetadata)
+getRepositoryResponse_repositoryMetadata = Lens.lens (\GetRepositoryResponse' {repositoryMetadata} -> repositoryMetadata) (\s@GetRepositoryResponse' {} a -> s {repositoryMetadata = a} :: GetRepositoryResponse)
+
+-- | The response's http status code.
+getRepositoryResponse_httpStatus :: Lens.Lens' GetRepositoryResponse Prelude.Int
+getRepositoryResponse_httpStatus = Lens.lens (\GetRepositoryResponse' {httpStatus} -> httpStatus) (\s@GetRepositoryResponse' {} a -> s {httpStatus = a} :: GetRepositoryResponse)
+
+instance Prelude.NFData GetRepositoryResponse where
+  rnf GetRepositoryResponse' {..} =
+    Prelude.rnf repositoryMetadata
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/GetRepositoryTriggers.hs b/gen/Amazonka/CodeCommit/GetRepositoryTriggers.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/GetRepositoryTriggers.hs
@@ -0,0 +1,190 @@
+{-# 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.CodeCommit.GetRepositoryTriggers
+-- 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 information about triggers configured for a repository.
+module Amazonka.CodeCommit.GetRepositoryTriggers
+  ( -- * Creating a Request
+    GetRepositoryTriggers (..),
+    newGetRepositoryTriggers,
+
+    -- * Request Lenses
+    getRepositoryTriggers_repositoryName,
+
+    -- * Destructuring the Response
+    GetRepositoryTriggersResponse (..),
+    newGetRepositoryTriggersResponse,
+
+    -- * Response Lenses
+    getRepositoryTriggersResponse_configurationId,
+    getRepositoryTriggersResponse_triggers,
+    getRepositoryTriggersResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a get repository triggers operation.
+--
+-- /See:/ 'newGetRepositoryTriggers' smart constructor.
+data GetRepositoryTriggers = GetRepositoryTriggers'
+  { -- | The name of the repository for which the trigger is configured.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetRepositoryTriggers' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryName', 'getRepositoryTriggers_repositoryName' - The name of the repository for which the trigger is configured.
+newGetRepositoryTriggers ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  GetRepositoryTriggers
+newGetRepositoryTriggers pRepositoryName_ =
+  GetRepositoryTriggers'
+    { repositoryName =
+        pRepositoryName_
+    }
+
+-- | The name of the repository for which the trigger is configured.
+getRepositoryTriggers_repositoryName :: Lens.Lens' GetRepositoryTriggers Prelude.Text
+getRepositoryTriggers_repositoryName = Lens.lens (\GetRepositoryTriggers' {repositoryName} -> repositoryName) (\s@GetRepositoryTriggers' {} a -> s {repositoryName = a} :: GetRepositoryTriggers)
+
+instance Core.AWSRequest GetRepositoryTriggers where
+  type
+    AWSResponse GetRepositoryTriggers =
+      GetRepositoryTriggersResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetRepositoryTriggersResponse'
+            Prelude.<$> (x Data..?> "configurationId")
+            Prelude.<*> (x Data..?> "triggers" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetRepositoryTriggers where
+  hashWithSalt _salt GetRepositoryTriggers' {..} =
+    _salt `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData GetRepositoryTriggers where
+  rnf GetRepositoryTriggers' {..} =
+    Prelude.rnf repositoryName
+
+instance Data.ToHeaders GetRepositoryTriggers where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.GetRepositoryTriggers" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON GetRepositoryTriggers where
+  toJSON GetRepositoryTriggers' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("repositoryName" Data..= repositoryName)
+          ]
+      )
+
+instance Data.ToPath GetRepositoryTriggers where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery GetRepositoryTriggers where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a get repository triggers operation.
+--
+-- /See:/ 'newGetRepositoryTriggersResponse' smart constructor.
+data GetRepositoryTriggersResponse = GetRepositoryTriggersResponse'
+  { -- | The system-generated unique ID for the trigger.
+    configurationId :: Prelude.Maybe Prelude.Text,
+    -- | The JSON block of configuration information for each trigger.
+    triggers :: Prelude.Maybe [RepositoryTrigger],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetRepositoryTriggersResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'configurationId', 'getRepositoryTriggersResponse_configurationId' - The system-generated unique ID for the trigger.
+--
+-- 'triggers', 'getRepositoryTriggersResponse_triggers' - The JSON block of configuration information for each trigger.
+--
+-- 'httpStatus', 'getRepositoryTriggersResponse_httpStatus' - The response's http status code.
+newGetRepositoryTriggersResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetRepositoryTriggersResponse
+newGetRepositoryTriggersResponse pHttpStatus_ =
+  GetRepositoryTriggersResponse'
+    { configurationId =
+        Prelude.Nothing,
+      triggers = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The system-generated unique ID for the trigger.
+getRepositoryTriggersResponse_configurationId :: Lens.Lens' GetRepositoryTriggersResponse (Prelude.Maybe Prelude.Text)
+getRepositoryTriggersResponse_configurationId = Lens.lens (\GetRepositoryTriggersResponse' {configurationId} -> configurationId) (\s@GetRepositoryTriggersResponse' {} a -> s {configurationId = a} :: GetRepositoryTriggersResponse)
+
+-- | The JSON block of configuration information for each trigger.
+getRepositoryTriggersResponse_triggers :: Lens.Lens' GetRepositoryTriggersResponse (Prelude.Maybe [RepositoryTrigger])
+getRepositoryTriggersResponse_triggers = Lens.lens (\GetRepositoryTriggersResponse' {triggers} -> triggers) (\s@GetRepositoryTriggersResponse' {} a -> s {triggers = a} :: GetRepositoryTriggersResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+getRepositoryTriggersResponse_httpStatus :: Lens.Lens' GetRepositoryTriggersResponse Prelude.Int
+getRepositoryTriggersResponse_httpStatus = Lens.lens (\GetRepositoryTriggersResponse' {httpStatus} -> httpStatus) (\s@GetRepositoryTriggersResponse' {} a -> s {httpStatus = a} :: GetRepositoryTriggersResponse)
+
+instance Prelude.NFData GetRepositoryTriggersResponse where
+  rnf GetRepositoryTriggersResponse' {..} =
+    Prelude.rnf configurationId
+      `Prelude.seq` Prelude.rnf triggers
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/Lens.hs b/gen/Amazonka/CodeCommit/Lens.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Lens.hs
@@ -0,0 +1,1141 @@
+{-# 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.CodeCommit.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.CodeCommit.Lens
+  ( -- * Operations
+
+    -- ** AssociateApprovalRuleTemplateWithRepository
+    associateApprovalRuleTemplateWithRepository_approvalRuleTemplateName,
+    associateApprovalRuleTemplateWithRepository_repositoryName,
+
+    -- ** BatchAssociateApprovalRuleTemplateWithRepositories
+    batchAssociateApprovalRuleTemplateWithRepositories_approvalRuleTemplateName,
+    batchAssociateApprovalRuleTemplateWithRepositories_repositoryNames,
+    batchAssociateApprovalRuleTemplateWithRepositoriesResponse_httpStatus,
+    batchAssociateApprovalRuleTemplateWithRepositoriesResponse_associatedRepositoryNames,
+    batchAssociateApprovalRuleTemplateWithRepositoriesResponse_errors,
+
+    -- ** BatchDescribeMergeConflicts
+    batchDescribeMergeConflicts_conflictDetailLevel,
+    batchDescribeMergeConflicts_conflictResolutionStrategy,
+    batchDescribeMergeConflicts_filePaths,
+    batchDescribeMergeConflicts_maxConflictFiles,
+    batchDescribeMergeConflicts_maxMergeHunks,
+    batchDescribeMergeConflicts_nextToken,
+    batchDescribeMergeConflicts_repositoryName,
+    batchDescribeMergeConflicts_destinationCommitSpecifier,
+    batchDescribeMergeConflicts_sourceCommitSpecifier,
+    batchDescribeMergeConflicts_mergeOption,
+    batchDescribeMergeConflictsResponse_baseCommitId,
+    batchDescribeMergeConflictsResponse_errors,
+    batchDescribeMergeConflictsResponse_nextToken,
+    batchDescribeMergeConflictsResponse_httpStatus,
+    batchDescribeMergeConflictsResponse_conflicts,
+    batchDescribeMergeConflictsResponse_destinationCommitId,
+    batchDescribeMergeConflictsResponse_sourceCommitId,
+
+    -- ** BatchDisassociateApprovalRuleTemplateFromRepositories
+    batchDisassociateApprovalRuleTemplateFromRepositories_approvalRuleTemplateName,
+    batchDisassociateApprovalRuleTemplateFromRepositories_repositoryNames,
+    batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_httpStatus,
+    batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_disassociatedRepositoryNames,
+    batchDisassociateApprovalRuleTemplateFromRepositoriesResponse_errors,
+
+    -- ** BatchGetCommits
+    batchGetCommits_commitIds,
+    batchGetCommits_repositoryName,
+    batchGetCommitsResponse_commits,
+    batchGetCommitsResponse_errors,
+    batchGetCommitsResponse_httpStatus,
+
+    -- ** BatchGetRepositories
+    batchGetRepositories_repositoryNames,
+    batchGetRepositoriesResponse_repositories,
+    batchGetRepositoriesResponse_repositoriesNotFound,
+    batchGetRepositoriesResponse_httpStatus,
+
+    -- ** CreateApprovalRuleTemplate
+    createApprovalRuleTemplate_approvalRuleTemplateDescription,
+    createApprovalRuleTemplate_approvalRuleTemplateName,
+    createApprovalRuleTemplate_approvalRuleTemplateContent,
+    createApprovalRuleTemplateResponse_httpStatus,
+    createApprovalRuleTemplateResponse_approvalRuleTemplate,
+
+    -- ** CreateBranch
+    createBranch_repositoryName,
+    createBranch_branchName,
+    createBranch_commitId,
+
+    -- ** CreateCommit
+    createCommit_authorName,
+    createCommit_commitMessage,
+    createCommit_deleteFiles,
+    createCommit_email,
+    createCommit_keepEmptyFolders,
+    createCommit_parentCommitId,
+    createCommit_putFiles,
+    createCommit_setFileModes,
+    createCommit_repositoryName,
+    createCommit_branchName,
+    createCommitResponse_commitId,
+    createCommitResponse_filesAdded,
+    createCommitResponse_filesDeleted,
+    createCommitResponse_filesUpdated,
+    createCommitResponse_treeId,
+    createCommitResponse_httpStatus,
+
+    -- ** CreatePullRequest
+    createPullRequest_clientRequestToken,
+    createPullRequest_description,
+    createPullRequest_title,
+    createPullRequest_targets,
+    createPullRequestResponse_httpStatus,
+    createPullRequestResponse_pullRequest,
+
+    -- ** CreatePullRequestApprovalRule
+    createPullRequestApprovalRule_pullRequestId,
+    createPullRequestApprovalRule_approvalRuleName,
+    createPullRequestApprovalRule_approvalRuleContent,
+    createPullRequestApprovalRuleResponse_httpStatus,
+    createPullRequestApprovalRuleResponse_approvalRule,
+
+    -- ** CreateRepository
+    createRepository_repositoryDescription,
+    createRepository_tags,
+    createRepository_repositoryName,
+    createRepositoryResponse_repositoryMetadata,
+    createRepositoryResponse_httpStatus,
+
+    -- ** CreateUnreferencedMergeCommit
+    createUnreferencedMergeCommit_authorName,
+    createUnreferencedMergeCommit_commitMessage,
+    createUnreferencedMergeCommit_conflictDetailLevel,
+    createUnreferencedMergeCommit_conflictResolution,
+    createUnreferencedMergeCommit_conflictResolutionStrategy,
+    createUnreferencedMergeCommit_email,
+    createUnreferencedMergeCommit_keepEmptyFolders,
+    createUnreferencedMergeCommit_repositoryName,
+    createUnreferencedMergeCommit_sourceCommitSpecifier,
+    createUnreferencedMergeCommit_destinationCommitSpecifier,
+    createUnreferencedMergeCommit_mergeOption,
+    createUnreferencedMergeCommitResponse_commitId,
+    createUnreferencedMergeCommitResponse_treeId,
+    createUnreferencedMergeCommitResponse_httpStatus,
+
+    -- ** DeleteApprovalRuleTemplate
+    deleteApprovalRuleTemplate_approvalRuleTemplateName,
+    deleteApprovalRuleTemplateResponse_httpStatus,
+    deleteApprovalRuleTemplateResponse_approvalRuleTemplateId,
+
+    -- ** DeleteBranch
+    deleteBranch_repositoryName,
+    deleteBranch_branchName,
+    deleteBranchResponse_deletedBranch,
+    deleteBranchResponse_httpStatus,
+
+    -- ** DeleteCommentContent
+    deleteCommentContent_commentId,
+    deleteCommentContentResponse_comment,
+    deleteCommentContentResponse_httpStatus,
+
+    -- ** DeleteFile
+    deleteFile_commitMessage,
+    deleteFile_email,
+    deleteFile_keepEmptyFolders,
+    deleteFile_name,
+    deleteFile_repositoryName,
+    deleteFile_branchName,
+    deleteFile_filePath,
+    deleteFile_parentCommitId,
+    deleteFileResponse_httpStatus,
+    deleteFileResponse_commitId,
+    deleteFileResponse_blobId,
+    deleteFileResponse_treeId,
+    deleteFileResponse_filePath,
+
+    -- ** DeletePullRequestApprovalRule
+    deletePullRequestApprovalRule_pullRequestId,
+    deletePullRequestApprovalRule_approvalRuleName,
+    deletePullRequestApprovalRuleResponse_httpStatus,
+    deletePullRequestApprovalRuleResponse_approvalRuleId,
+
+    -- ** DeleteRepository
+    deleteRepository_repositoryName,
+    deleteRepositoryResponse_repositoryId,
+    deleteRepositoryResponse_httpStatus,
+
+    -- ** DescribeMergeConflicts
+    describeMergeConflicts_conflictDetailLevel,
+    describeMergeConflicts_conflictResolutionStrategy,
+    describeMergeConflicts_maxMergeHunks,
+    describeMergeConflicts_nextToken,
+    describeMergeConflicts_repositoryName,
+    describeMergeConflicts_destinationCommitSpecifier,
+    describeMergeConflicts_sourceCommitSpecifier,
+    describeMergeConflicts_mergeOption,
+    describeMergeConflicts_filePath,
+    describeMergeConflictsResponse_baseCommitId,
+    describeMergeConflictsResponse_nextToken,
+    describeMergeConflictsResponse_httpStatus,
+    describeMergeConflictsResponse_conflictMetadata,
+    describeMergeConflictsResponse_mergeHunks,
+    describeMergeConflictsResponse_destinationCommitId,
+    describeMergeConflictsResponse_sourceCommitId,
+
+    -- ** DescribePullRequestEvents
+    describePullRequestEvents_actorArn,
+    describePullRequestEvents_maxResults,
+    describePullRequestEvents_nextToken,
+    describePullRequestEvents_pullRequestEventType,
+    describePullRequestEvents_pullRequestId,
+    describePullRequestEventsResponse_nextToken,
+    describePullRequestEventsResponse_httpStatus,
+    describePullRequestEventsResponse_pullRequestEvents,
+
+    -- ** DisassociateApprovalRuleTemplateFromRepository
+    disassociateApprovalRuleTemplateFromRepository_approvalRuleTemplateName,
+    disassociateApprovalRuleTemplateFromRepository_repositoryName,
+
+    -- ** EvaluatePullRequestApprovalRules
+    evaluatePullRequestApprovalRules_pullRequestId,
+    evaluatePullRequestApprovalRules_revisionId,
+    evaluatePullRequestApprovalRulesResponse_httpStatus,
+    evaluatePullRequestApprovalRulesResponse_evaluation,
+
+    -- ** GetApprovalRuleTemplate
+    getApprovalRuleTemplate_approvalRuleTemplateName,
+    getApprovalRuleTemplateResponse_httpStatus,
+    getApprovalRuleTemplateResponse_approvalRuleTemplate,
+
+    -- ** GetBlob
+    getBlob_repositoryName,
+    getBlob_blobId,
+    getBlobResponse_httpStatus,
+    getBlobResponse_content,
+
+    -- ** GetBranch
+    getBranch_branchName,
+    getBranch_repositoryName,
+    getBranchResponse_branch,
+    getBranchResponse_httpStatus,
+
+    -- ** GetComment
+    getComment_commentId,
+    getCommentResponse_comment,
+    getCommentResponse_httpStatus,
+
+    -- ** GetCommentReactions
+    getCommentReactions_maxResults,
+    getCommentReactions_nextToken,
+    getCommentReactions_reactionUserArn,
+    getCommentReactions_commentId,
+    getCommentReactionsResponse_nextToken,
+    getCommentReactionsResponse_httpStatus,
+    getCommentReactionsResponse_reactionsForComment,
+
+    -- ** GetCommentsForComparedCommit
+    getCommentsForComparedCommit_beforeCommitId,
+    getCommentsForComparedCommit_maxResults,
+    getCommentsForComparedCommit_nextToken,
+    getCommentsForComparedCommit_repositoryName,
+    getCommentsForComparedCommit_afterCommitId,
+    getCommentsForComparedCommitResponse_commentsForComparedCommitData,
+    getCommentsForComparedCommitResponse_nextToken,
+    getCommentsForComparedCommitResponse_httpStatus,
+
+    -- ** GetCommentsForPullRequest
+    getCommentsForPullRequest_afterCommitId,
+    getCommentsForPullRequest_beforeCommitId,
+    getCommentsForPullRequest_maxResults,
+    getCommentsForPullRequest_nextToken,
+    getCommentsForPullRequest_repositoryName,
+    getCommentsForPullRequest_pullRequestId,
+    getCommentsForPullRequestResponse_commentsForPullRequestData,
+    getCommentsForPullRequestResponse_nextToken,
+    getCommentsForPullRequestResponse_httpStatus,
+
+    -- ** GetCommit
+    getCommit_repositoryName,
+    getCommit_commitId,
+    getCommitResponse_httpStatus,
+    getCommitResponse_commit,
+
+    -- ** GetDifferences
+    getDifferences_maxResults,
+    getDifferences_nextToken,
+    getDifferences_afterPath,
+    getDifferences_beforeCommitSpecifier,
+    getDifferences_beforePath,
+    getDifferences_repositoryName,
+    getDifferences_afterCommitSpecifier,
+    getDifferencesResponse_nextToken,
+    getDifferencesResponse_differences,
+    getDifferencesResponse_httpStatus,
+
+    -- ** GetFile
+    getFile_commitSpecifier,
+    getFile_repositoryName,
+    getFile_filePath,
+    getFileResponse_httpStatus,
+    getFileResponse_commitId,
+    getFileResponse_blobId,
+    getFileResponse_filePath,
+    getFileResponse_fileMode,
+    getFileResponse_fileSize,
+    getFileResponse_fileContent,
+
+    -- ** GetFolder
+    getFolder_commitSpecifier,
+    getFolder_repositoryName,
+    getFolder_folderPath,
+    getFolderResponse_files,
+    getFolderResponse_subFolders,
+    getFolderResponse_subModules,
+    getFolderResponse_symbolicLinks,
+    getFolderResponse_treeId,
+    getFolderResponse_httpStatus,
+    getFolderResponse_commitId,
+    getFolderResponse_folderPath,
+
+    -- ** GetMergeCommit
+    getMergeCommit_conflictDetailLevel,
+    getMergeCommit_conflictResolutionStrategy,
+    getMergeCommit_repositoryName,
+    getMergeCommit_sourceCommitSpecifier,
+    getMergeCommit_destinationCommitSpecifier,
+    getMergeCommitResponse_baseCommitId,
+    getMergeCommitResponse_destinationCommitId,
+    getMergeCommitResponse_mergedCommitId,
+    getMergeCommitResponse_sourceCommitId,
+    getMergeCommitResponse_httpStatus,
+
+    -- ** GetMergeConflicts
+    getMergeConflicts_conflictDetailLevel,
+    getMergeConflicts_conflictResolutionStrategy,
+    getMergeConflicts_maxConflictFiles,
+    getMergeConflicts_nextToken,
+    getMergeConflicts_repositoryName,
+    getMergeConflicts_destinationCommitSpecifier,
+    getMergeConflicts_sourceCommitSpecifier,
+    getMergeConflicts_mergeOption,
+    getMergeConflictsResponse_baseCommitId,
+    getMergeConflictsResponse_nextToken,
+    getMergeConflictsResponse_httpStatus,
+    getMergeConflictsResponse_mergeable,
+    getMergeConflictsResponse_destinationCommitId,
+    getMergeConflictsResponse_sourceCommitId,
+    getMergeConflictsResponse_conflictMetadataList,
+
+    -- ** GetMergeOptions
+    getMergeOptions_conflictDetailLevel,
+    getMergeOptions_conflictResolutionStrategy,
+    getMergeOptions_repositoryName,
+    getMergeOptions_sourceCommitSpecifier,
+    getMergeOptions_destinationCommitSpecifier,
+    getMergeOptionsResponse_httpStatus,
+    getMergeOptionsResponse_mergeOptions,
+    getMergeOptionsResponse_sourceCommitId,
+    getMergeOptionsResponse_destinationCommitId,
+    getMergeOptionsResponse_baseCommitId,
+
+    -- ** GetPullRequest
+    getPullRequest_pullRequestId,
+    getPullRequestResponse_httpStatus,
+    getPullRequestResponse_pullRequest,
+
+    -- ** GetPullRequestApprovalStates
+    getPullRequestApprovalStates_pullRequestId,
+    getPullRequestApprovalStates_revisionId,
+    getPullRequestApprovalStatesResponse_approvals,
+    getPullRequestApprovalStatesResponse_httpStatus,
+
+    -- ** GetPullRequestOverrideState
+    getPullRequestOverrideState_pullRequestId,
+    getPullRequestOverrideState_revisionId,
+    getPullRequestOverrideStateResponse_overridden,
+    getPullRequestOverrideStateResponse_overrider,
+    getPullRequestOverrideStateResponse_httpStatus,
+
+    -- ** GetRepository
+    getRepository_repositoryName,
+    getRepositoryResponse_repositoryMetadata,
+    getRepositoryResponse_httpStatus,
+
+    -- ** GetRepositoryTriggers
+    getRepositoryTriggers_repositoryName,
+    getRepositoryTriggersResponse_configurationId,
+    getRepositoryTriggersResponse_triggers,
+    getRepositoryTriggersResponse_httpStatus,
+
+    -- ** ListApprovalRuleTemplates
+    listApprovalRuleTemplates_maxResults,
+    listApprovalRuleTemplates_nextToken,
+    listApprovalRuleTemplatesResponse_approvalRuleTemplateNames,
+    listApprovalRuleTemplatesResponse_nextToken,
+    listApprovalRuleTemplatesResponse_httpStatus,
+
+    -- ** ListAssociatedApprovalRuleTemplatesForRepository
+    listAssociatedApprovalRuleTemplatesForRepository_maxResults,
+    listAssociatedApprovalRuleTemplatesForRepository_nextToken,
+    listAssociatedApprovalRuleTemplatesForRepository_repositoryName,
+    listAssociatedApprovalRuleTemplatesForRepositoryResponse_approvalRuleTemplateNames,
+    listAssociatedApprovalRuleTemplatesForRepositoryResponse_nextToken,
+    listAssociatedApprovalRuleTemplatesForRepositoryResponse_httpStatus,
+
+    -- ** ListBranches
+    listBranches_nextToken,
+    listBranches_repositoryName,
+    listBranchesResponse_branches,
+    listBranchesResponse_nextToken,
+    listBranchesResponse_httpStatus,
+
+    -- ** ListPullRequests
+    listPullRequests_authorArn,
+    listPullRequests_maxResults,
+    listPullRequests_nextToken,
+    listPullRequests_pullRequestStatus,
+    listPullRequests_repositoryName,
+    listPullRequestsResponse_nextToken,
+    listPullRequestsResponse_httpStatus,
+    listPullRequestsResponse_pullRequestIds,
+
+    -- ** ListRepositories
+    listRepositories_nextToken,
+    listRepositories_order,
+    listRepositories_sortBy,
+    listRepositoriesResponse_nextToken,
+    listRepositoriesResponse_repositories,
+    listRepositoriesResponse_httpStatus,
+
+    -- ** ListRepositoriesForApprovalRuleTemplate
+    listRepositoriesForApprovalRuleTemplate_maxResults,
+    listRepositoriesForApprovalRuleTemplate_nextToken,
+    listRepositoriesForApprovalRuleTemplate_approvalRuleTemplateName,
+    listRepositoriesForApprovalRuleTemplateResponse_nextToken,
+    listRepositoriesForApprovalRuleTemplateResponse_repositoryNames,
+    listRepositoriesForApprovalRuleTemplateResponse_httpStatus,
+
+    -- ** ListTagsForResource
+    listTagsForResource_nextToken,
+    listTagsForResource_resourceArn,
+    listTagsForResourceResponse_nextToken,
+    listTagsForResourceResponse_tags,
+    listTagsForResourceResponse_httpStatus,
+
+    -- ** MergeBranchesByFastForward
+    mergeBranchesByFastForward_targetBranch,
+    mergeBranchesByFastForward_repositoryName,
+    mergeBranchesByFastForward_sourceCommitSpecifier,
+    mergeBranchesByFastForward_destinationCommitSpecifier,
+    mergeBranchesByFastForwardResponse_commitId,
+    mergeBranchesByFastForwardResponse_treeId,
+    mergeBranchesByFastForwardResponse_httpStatus,
+
+    -- ** MergeBranchesBySquash
+    mergeBranchesBySquash_authorName,
+    mergeBranchesBySquash_commitMessage,
+    mergeBranchesBySquash_conflictDetailLevel,
+    mergeBranchesBySquash_conflictResolution,
+    mergeBranchesBySquash_conflictResolutionStrategy,
+    mergeBranchesBySquash_email,
+    mergeBranchesBySquash_keepEmptyFolders,
+    mergeBranchesBySquash_targetBranch,
+    mergeBranchesBySquash_repositoryName,
+    mergeBranchesBySquash_sourceCommitSpecifier,
+    mergeBranchesBySquash_destinationCommitSpecifier,
+    mergeBranchesBySquashResponse_commitId,
+    mergeBranchesBySquashResponse_treeId,
+    mergeBranchesBySquashResponse_httpStatus,
+
+    -- ** MergeBranchesByThreeWay
+    mergeBranchesByThreeWay_authorName,
+    mergeBranchesByThreeWay_commitMessage,
+    mergeBranchesByThreeWay_conflictDetailLevel,
+    mergeBranchesByThreeWay_conflictResolution,
+    mergeBranchesByThreeWay_conflictResolutionStrategy,
+    mergeBranchesByThreeWay_email,
+    mergeBranchesByThreeWay_keepEmptyFolders,
+    mergeBranchesByThreeWay_targetBranch,
+    mergeBranchesByThreeWay_repositoryName,
+    mergeBranchesByThreeWay_sourceCommitSpecifier,
+    mergeBranchesByThreeWay_destinationCommitSpecifier,
+    mergeBranchesByThreeWayResponse_commitId,
+    mergeBranchesByThreeWayResponse_treeId,
+    mergeBranchesByThreeWayResponse_httpStatus,
+
+    -- ** MergePullRequestByFastForward
+    mergePullRequestByFastForward_sourceCommitId,
+    mergePullRequestByFastForward_pullRequestId,
+    mergePullRequestByFastForward_repositoryName,
+    mergePullRequestByFastForwardResponse_pullRequest,
+    mergePullRequestByFastForwardResponse_httpStatus,
+
+    -- ** MergePullRequestBySquash
+    mergePullRequestBySquash_authorName,
+    mergePullRequestBySquash_commitMessage,
+    mergePullRequestBySquash_conflictDetailLevel,
+    mergePullRequestBySquash_conflictResolution,
+    mergePullRequestBySquash_conflictResolutionStrategy,
+    mergePullRequestBySquash_email,
+    mergePullRequestBySquash_keepEmptyFolders,
+    mergePullRequestBySquash_sourceCommitId,
+    mergePullRequestBySquash_pullRequestId,
+    mergePullRequestBySquash_repositoryName,
+    mergePullRequestBySquashResponse_pullRequest,
+    mergePullRequestBySquashResponse_httpStatus,
+
+    -- ** MergePullRequestByThreeWay
+    mergePullRequestByThreeWay_authorName,
+    mergePullRequestByThreeWay_commitMessage,
+    mergePullRequestByThreeWay_conflictDetailLevel,
+    mergePullRequestByThreeWay_conflictResolution,
+    mergePullRequestByThreeWay_conflictResolutionStrategy,
+    mergePullRequestByThreeWay_email,
+    mergePullRequestByThreeWay_keepEmptyFolders,
+    mergePullRequestByThreeWay_sourceCommitId,
+    mergePullRequestByThreeWay_pullRequestId,
+    mergePullRequestByThreeWay_repositoryName,
+    mergePullRequestByThreeWayResponse_pullRequest,
+    mergePullRequestByThreeWayResponse_httpStatus,
+
+    -- ** OverridePullRequestApprovalRules
+    overridePullRequestApprovalRules_pullRequestId,
+    overridePullRequestApprovalRules_revisionId,
+    overridePullRequestApprovalRules_overrideStatus,
+
+    -- ** PostCommentForComparedCommit
+    postCommentForComparedCommit_beforeCommitId,
+    postCommentForComparedCommit_clientRequestToken,
+    postCommentForComparedCommit_location,
+    postCommentForComparedCommit_repositoryName,
+    postCommentForComparedCommit_afterCommitId,
+    postCommentForComparedCommit_content,
+    postCommentForComparedCommitResponse_afterBlobId,
+    postCommentForComparedCommitResponse_afterCommitId,
+    postCommentForComparedCommitResponse_beforeBlobId,
+    postCommentForComparedCommitResponse_beforeCommitId,
+    postCommentForComparedCommitResponse_comment,
+    postCommentForComparedCommitResponse_location,
+    postCommentForComparedCommitResponse_repositoryName,
+    postCommentForComparedCommitResponse_httpStatus,
+
+    -- ** PostCommentForPullRequest
+    postCommentForPullRequest_clientRequestToken,
+    postCommentForPullRequest_location,
+    postCommentForPullRequest_pullRequestId,
+    postCommentForPullRequest_repositoryName,
+    postCommentForPullRequest_beforeCommitId,
+    postCommentForPullRequest_afterCommitId,
+    postCommentForPullRequest_content,
+    postCommentForPullRequestResponse_afterBlobId,
+    postCommentForPullRequestResponse_afterCommitId,
+    postCommentForPullRequestResponse_beforeBlobId,
+    postCommentForPullRequestResponse_beforeCommitId,
+    postCommentForPullRequestResponse_comment,
+    postCommentForPullRequestResponse_location,
+    postCommentForPullRequestResponse_pullRequestId,
+    postCommentForPullRequestResponse_repositoryName,
+    postCommentForPullRequestResponse_httpStatus,
+
+    -- ** PostCommentReply
+    postCommentReply_clientRequestToken,
+    postCommentReply_inReplyTo,
+    postCommentReply_content,
+    postCommentReplyResponse_comment,
+    postCommentReplyResponse_httpStatus,
+
+    -- ** PutCommentReaction
+    putCommentReaction_commentId,
+    putCommentReaction_reactionValue,
+
+    -- ** PutFile
+    putFile_commitMessage,
+    putFile_email,
+    putFile_fileMode,
+    putFile_name,
+    putFile_parentCommitId,
+    putFile_repositoryName,
+    putFile_branchName,
+    putFile_fileContent,
+    putFile_filePath,
+    putFileResponse_httpStatus,
+    putFileResponse_commitId,
+    putFileResponse_blobId,
+    putFileResponse_treeId,
+
+    -- ** PutRepositoryTriggers
+    putRepositoryTriggers_repositoryName,
+    putRepositoryTriggers_triggers,
+    putRepositoryTriggersResponse_configurationId,
+    putRepositoryTriggersResponse_httpStatus,
+
+    -- ** TagResource
+    tagResource_resourceArn,
+    tagResource_tags,
+
+    -- ** TestRepositoryTriggers
+    testRepositoryTriggers_repositoryName,
+    testRepositoryTriggers_triggers,
+    testRepositoryTriggersResponse_failedExecutions,
+    testRepositoryTriggersResponse_successfulExecutions,
+    testRepositoryTriggersResponse_httpStatus,
+
+    -- ** UntagResource
+    untagResource_resourceArn,
+    untagResource_tagKeys,
+
+    -- ** UpdateApprovalRuleTemplateContent
+    updateApprovalRuleTemplateContent_existingRuleContentSha256,
+    updateApprovalRuleTemplateContent_approvalRuleTemplateName,
+    updateApprovalRuleTemplateContent_newRuleContent,
+    updateApprovalRuleTemplateContentResponse_httpStatus,
+    updateApprovalRuleTemplateContentResponse_approvalRuleTemplate,
+
+    -- ** UpdateApprovalRuleTemplateDescription
+    updateApprovalRuleTemplateDescription_approvalRuleTemplateName,
+    updateApprovalRuleTemplateDescription_approvalRuleTemplateDescription,
+    updateApprovalRuleTemplateDescriptionResponse_httpStatus,
+    updateApprovalRuleTemplateDescriptionResponse_approvalRuleTemplate,
+
+    -- ** UpdateApprovalRuleTemplateName
+    updateApprovalRuleTemplateName_oldApprovalRuleTemplateName,
+    updateApprovalRuleTemplateName_newApprovalRuleTemplateName,
+    updateApprovalRuleTemplateNameResponse_httpStatus,
+    updateApprovalRuleTemplateNameResponse_approvalRuleTemplate,
+
+    -- ** UpdateComment
+    updateComment_commentId,
+    updateComment_content,
+    updateCommentResponse_comment,
+    updateCommentResponse_httpStatus,
+
+    -- ** UpdateDefaultBranch
+    updateDefaultBranch_repositoryName,
+    updateDefaultBranch_defaultBranchName,
+
+    -- ** UpdatePullRequestApprovalRuleContent
+    updatePullRequestApprovalRuleContent_existingRuleContentSha256,
+    updatePullRequestApprovalRuleContent_pullRequestId,
+    updatePullRequestApprovalRuleContent_approvalRuleName,
+    updatePullRequestApprovalRuleContent_newRuleContent,
+    updatePullRequestApprovalRuleContentResponse_httpStatus,
+    updatePullRequestApprovalRuleContentResponse_approvalRule,
+
+    -- ** UpdatePullRequestApprovalState
+    updatePullRequestApprovalState_pullRequestId,
+    updatePullRequestApprovalState_revisionId,
+    updatePullRequestApprovalState_approvalState,
+
+    -- ** UpdatePullRequestDescription
+    updatePullRequestDescription_pullRequestId,
+    updatePullRequestDescription_description,
+    updatePullRequestDescriptionResponse_httpStatus,
+    updatePullRequestDescriptionResponse_pullRequest,
+
+    -- ** UpdatePullRequestStatus
+    updatePullRequestStatus_pullRequestId,
+    updatePullRequestStatus_pullRequestStatus,
+    updatePullRequestStatusResponse_httpStatus,
+    updatePullRequestStatusResponse_pullRequest,
+
+    -- ** UpdatePullRequestTitle
+    updatePullRequestTitle_pullRequestId,
+    updatePullRequestTitle_title,
+    updatePullRequestTitleResponse_httpStatus,
+    updatePullRequestTitleResponse_pullRequest,
+
+    -- ** UpdateRepositoryDescription
+    updateRepositoryDescription_repositoryDescription,
+    updateRepositoryDescription_repositoryName,
+
+    -- ** UpdateRepositoryName
+    updateRepositoryName_oldName,
+    updateRepositoryName_newName,
+
+    -- * Types
+
+    -- ** Approval
+    approval_approvalState,
+    approval_userArn,
+
+    -- ** ApprovalRule
+    approvalRule_approvalRuleContent,
+    approvalRule_approvalRuleId,
+    approvalRule_approvalRuleName,
+    approvalRule_creationDate,
+    approvalRule_lastModifiedDate,
+    approvalRule_lastModifiedUser,
+    approvalRule_originApprovalRuleTemplate,
+    approvalRule_ruleContentSha256,
+
+    -- ** ApprovalRuleEventMetadata
+    approvalRuleEventMetadata_approvalRuleContent,
+    approvalRuleEventMetadata_approvalRuleId,
+    approvalRuleEventMetadata_approvalRuleName,
+
+    -- ** ApprovalRuleOverriddenEventMetadata
+    approvalRuleOverriddenEventMetadata_overrideStatus,
+    approvalRuleOverriddenEventMetadata_revisionId,
+
+    -- ** ApprovalRuleTemplate
+    approvalRuleTemplate_approvalRuleTemplateContent,
+    approvalRuleTemplate_approvalRuleTemplateDescription,
+    approvalRuleTemplate_approvalRuleTemplateId,
+    approvalRuleTemplate_approvalRuleTemplateName,
+    approvalRuleTemplate_creationDate,
+    approvalRuleTemplate_lastModifiedDate,
+    approvalRuleTemplate_lastModifiedUser,
+    approvalRuleTemplate_ruleContentSha256,
+
+    -- ** ApprovalStateChangedEventMetadata
+    approvalStateChangedEventMetadata_approvalStatus,
+    approvalStateChangedEventMetadata_revisionId,
+
+    -- ** BatchAssociateApprovalRuleTemplateWithRepositoriesError
+    batchAssociateApprovalRuleTemplateWithRepositoriesError_errorCode,
+    batchAssociateApprovalRuleTemplateWithRepositoriesError_errorMessage,
+    batchAssociateApprovalRuleTemplateWithRepositoriesError_repositoryName,
+
+    -- ** BatchDescribeMergeConflictsError
+    batchDescribeMergeConflictsError_filePath,
+    batchDescribeMergeConflictsError_exceptionName,
+    batchDescribeMergeConflictsError_message,
+
+    -- ** BatchDisassociateApprovalRuleTemplateFromRepositoriesError
+    batchDisassociateApprovalRuleTemplateFromRepositoriesError_errorCode,
+    batchDisassociateApprovalRuleTemplateFromRepositoriesError_errorMessage,
+    batchDisassociateApprovalRuleTemplateFromRepositoriesError_repositoryName,
+
+    -- ** BatchGetCommitsError
+    batchGetCommitsError_commitId,
+    batchGetCommitsError_errorCode,
+    batchGetCommitsError_errorMessage,
+
+    -- ** BlobMetadata
+    blobMetadata_blobId,
+    blobMetadata_mode,
+    blobMetadata_path,
+
+    -- ** BranchInfo
+    branchInfo_branchName,
+    branchInfo_commitId,
+
+    -- ** Comment
+    comment_authorArn,
+    comment_callerReactions,
+    comment_clientRequestToken,
+    comment_commentId,
+    comment_content,
+    comment_creationDate,
+    comment_deleted,
+    comment_inReplyTo,
+    comment_lastModifiedDate,
+    comment_reactionCounts,
+
+    -- ** CommentsForComparedCommit
+    commentsForComparedCommit_afterBlobId,
+    commentsForComparedCommit_afterCommitId,
+    commentsForComparedCommit_beforeBlobId,
+    commentsForComparedCommit_beforeCommitId,
+    commentsForComparedCommit_comments,
+    commentsForComparedCommit_location,
+    commentsForComparedCommit_repositoryName,
+
+    -- ** CommentsForPullRequest
+    commentsForPullRequest_afterBlobId,
+    commentsForPullRequest_afterCommitId,
+    commentsForPullRequest_beforeBlobId,
+    commentsForPullRequest_beforeCommitId,
+    commentsForPullRequest_comments,
+    commentsForPullRequest_location,
+    commentsForPullRequest_pullRequestId,
+    commentsForPullRequest_repositoryName,
+
+    -- ** Commit
+    commit_additionalData,
+    commit_author,
+    commit_commitId,
+    commit_committer,
+    commit_message,
+    commit_parents,
+    commit_treeId,
+
+    -- ** Conflict
+    conflict_conflictMetadata,
+    conflict_mergeHunks,
+
+    -- ** ConflictMetadata
+    conflictMetadata_contentConflict,
+    conflictMetadata_fileModeConflict,
+    conflictMetadata_fileModes,
+    conflictMetadata_filePath,
+    conflictMetadata_fileSizes,
+    conflictMetadata_isBinaryFile,
+    conflictMetadata_mergeOperations,
+    conflictMetadata_numberOfConflicts,
+    conflictMetadata_objectTypeConflict,
+    conflictMetadata_objectTypes,
+
+    -- ** ConflictResolution
+    conflictResolution_deleteFiles,
+    conflictResolution_replaceContents,
+    conflictResolution_setFileModes,
+
+    -- ** DeleteFileEntry
+    deleteFileEntry_filePath,
+
+    -- ** Difference
+    difference_afterBlob,
+    difference_beforeBlob,
+    difference_changeType,
+
+    -- ** Evaluation
+    evaluation_approvalRulesNotSatisfied,
+    evaluation_approvalRulesSatisfied,
+    evaluation_approved,
+    evaluation_overridden,
+
+    -- ** File
+    file_absolutePath,
+    file_blobId,
+    file_fileMode,
+    file_relativePath,
+
+    -- ** FileMetadata
+    fileMetadata_absolutePath,
+    fileMetadata_blobId,
+    fileMetadata_fileMode,
+
+    -- ** FileModes
+    fileModes_base,
+    fileModes_destination,
+    fileModes_source,
+
+    -- ** FileSizes
+    fileSizes_base,
+    fileSizes_destination,
+    fileSizes_source,
+
+    -- ** Folder
+    folder_absolutePath,
+    folder_relativePath,
+    folder_treeId,
+
+    -- ** IsBinaryFile
+    isBinaryFile_base,
+    isBinaryFile_destination,
+    isBinaryFile_source,
+
+    -- ** Location
+    location_filePath,
+    location_filePosition,
+    location_relativeFileVersion,
+
+    -- ** MergeHunk
+    mergeHunk_base,
+    mergeHunk_destination,
+    mergeHunk_isConflict,
+    mergeHunk_source,
+
+    -- ** MergeHunkDetail
+    mergeHunkDetail_endLine,
+    mergeHunkDetail_hunkContent,
+    mergeHunkDetail_startLine,
+
+    -- ** MergeMetadata
+    mergeMetadata_isMerged,
+    mergeMetadata_mergeCommitId,
+    mergeMetadata_mergeOption,
+    mergeMetadata_mergedBy,
+
+    -- ** MergeOperations
+    mergeOperations_destination,
+    mergeOperations_source,
+
+    -- ** ObjectTypes
+    objectTypes_base,
+    objectTypes_destination,
+    objectTypes_source,
+
+    -- ** OriginApprovalRuleTemplate
+    originApprovalRuleTemplate_approvalRuleTemplateId,
+    originApprovalRuleTemplate_approvalRuleTemplateName,
+
+    -- ** PullRequest
+    pullRequest_approvalRules,
+    pullRequest_authorArn,
+    pullRequest_clientRequestToken,
+    pullRequest_creationDate,
+    pullRequest_description,
+    pullRequest_lastActivityDate,
+    pullRequest_pullRequestId,
+    pullRequest_pullRequestStatus,
+    pullRequest_pullRequestTargets,
+    pullRequest_revisionId,
+    pullRequest_title,
+
+    -- ** PullRequestCreatedEventMetadata
+    pullRequestCreatedEventMetadata_destinationCommitId,
+    pullRequestCreatedEventMetadata_mergeBase,
+    pullRequestCreatedEventMetadata_repositoryName,
+    pullRequestCreatedEventMetadata_sourceCommitId,
+
+    -- ** PullRequestEvent
+    pullRequestEvent_actorArn,
+    pullRequestEvent_approvalRuleEventMetadata,
+    pullRequestEvent_approvalRuleOverriddenEventMetadata,
+    pullRequestEvent_approvalStateChangedEventMetadata,
+    pullRequestEvent_eventDate,
+    pullRequestEvent_pullRequestCreatedEventMetadata,
+    pullRequestEvent_pullRequestEventType,
+    pullRequestEvent_pullRequestId,
+    pullRequestEvent_pullRequestMergedStateChangedEventMetadata,
+    pullRequestEvent_pullRequestSourceReferenceUpdatedEventMetadata,
+    pullRequestEvent_pullRequestStatusChangedEventMetadata,
+
+    -- ** PullRequestMergedStateChangedEventMetadata
+    pullRequestMergedStateChangedEventMetadata_destinationReference,
+    pullRequestMergedStateChangedEventMetadata_mergeMetadata,
+    pullRequestMergedStateChangedEventMetadata_repositoryName,
+
+    -- ** PullRequestSourceReferenceUpdatedEventMetadata
+    pullRequestSourceReferenceUpdatedEventMetadata_afterCommitId,
+    pullRequestSourceReferenceUpdatedEventMetadata_beforeCommitId,
+    pullRequestSourceReferenceUpdatedEventMetadata_mergeBase,
+    pullRequestSourceReferenceUpdatedEventMetadata_repositoryName,
+
+    -- ** PullRequestStatusChangedEventMetadata
+    pullRequestStatusChangedEventMetadata_pullRequestStatus,
+
+    -- ** PullRequestTarget
+    pullRequestTarget_destinationCommit,
+    pullRequestTarget_destinationReference,
+    pullRequestTarget_mergeBase,
+    pullRequestTarget_mergeMetadata,
+    pullRequestTarget_repositoryName,
+    pullRequestTarget_sourceCommit,
+    pullRequestTarget_sourceReference,
+
+    -- ** PutFileEntry
+    putFileEntry_fileContent,
+    putFileEntry_fileMode,
+    putFileEntry_sourceFile,
+    putFileEntry_filePath,
+
+    -- ** ReactionForComment
+    reactionForComment_reaction,
+    reactionForComment_reactionUsers,
+    reactionForComment_reactionsFromDeletedUsersCount,
+
+    -- ** ReactionValueFormats
+    reactionValueFormats_emoji,
+    reactionValueFormats_shortCode,
+    reactionValueFormats_unicode,
+
+    -- ** ReplaceContentEntry
+    replaceContentEntry_content,
+    replaceContentEntry_fileMode,
+    replaceContentEntry_filePath,
+    replaceContentEntry_replacementType,
+
+    -- ** RepositoryMetadata
+    repositoryMetadata_arn,
+    repositoryMetadata_accountId,
+    repositoryMetadata_cloneUrlHttp,
+    repositoryMetadata_cloneUrlSsh,
+    repositoryMetadata_creationDate,
+    repositoryMetadata_defaultBranch,
+    repositoryMetadata_lastModifiedDate,
+    repositoryMetadata_repositoryDescription,
+    repositoryMetadata_repositoryId,
+    repositoryMetadata_repositoryName,
+
+    -- ** RepositoryNameIdPair
+    repositoryNameIdPair_repositoryId,
+    repositoryNameIdPair_repositoryName,
+
+    -- ** RepositoryTrigger
+    repositoryTrigger_branches,
+    repositoryTrigger_customData,
+    repositoryTrigger_name,
+    repositoryTrigger_destinationArn,
+    repositoryTrigger_events,
+
+    -- ** RepositoryTriggerExecutionFailure
+    repositoryTriggerExecutionFailure_failureMessage,
+    repositoryTriggerExecutionFailure_trigger,
+
+    -- ** SetFileModeEntry
+    setFileModeEntry_filePath,
+    setFileModeEntry_fileMode,
+
+    -- ** SourceFileSpecifier
+    sourceFileSpecifier_isMove,
+    sourceFileSpecifier_filePath,
+
+    -- ** SubModule
+    subModule_absolutePath,
+    subModule_commitId,
+    subModule_relativePath,
+
+    -- ** SymbolicLink
+    symbolicLink_absolutePath,
+    symbolicLink_blobId,
+    symbolicLink_fileMode,
+    symbolicLink_relativePath,
+
+    -- ** Target
+    target_destinationReference,
+    target_repositoryName,
+    target_sourceReference,
+
+    -- ** UserInfo
+    userInfo_date,
+    userInfo_email,
+    userInfo_name,
+  )
+where
+
+import Amazonka.CodeCommit.AssociateApprovalRuleTemplateWithRepository
+import Amazonka.CodeCommit.BatchAssociateApprovalRuleTemplateWithRepositories
+import Amazonka.CodeCommit.BatchDescribeMergeConflicts
+import Amazonka.CodeCommit.BatchDisassociateApprovalRuleTemplateFromRepositories
+import Amazonka.CodeCommit.BatchGetCommits
+import Amazonka.CodeCommit.BatchGetRepositories
+import Amazonka.CodeCommit.CreateApprovalRuleTemplate
+import Amazonka.CodeCommit.CreateBranch
+import Amazonka.CodeCommit.CreateCommit
+import Amazonka.CodeCommit.CreatePullRequest
+import Amazonka.CodeCommit.CreatePullRequestApprovalRule
+import Amazonka.CodeCommit.CreateRepository
+import Amazonka.CodeCommit.CreateUnreferencedMergeCommit
+import Amazonka.CodeCommit.DeleteApprovalRuleTemplate
+import Amazonka.CodeCommit.DeleteBranch
+import Amazonka.CodeCommit.DeleteCommentContent
+import Amazonka.CodeCommit.DeleteFile
+import Amazonka.CodeCommit.DeletePullRequestApprovalRule
+import Amazonka.CodeCommit.DeleteRepository
+import Amazonka.CodeCommit.DescribeMergeConflicts
+import Amazonka.CodeCommit.DescribePullRequestEvents
+import Amazonka.CodeCommit.DisassociateApprovalRuleTemplateFromRepository
+import Amazonka.CodeCommit.EvaluatePullRequestApprovalRules
+import Amazonka.CodeCommit.GetApprovalRuleTemplate
+import Amazonka.CodeCommit.GetBlob
+import Amazonka.CodeCommit.GetBranch
+import Amazonka.CodeCommit.GetComment
+import Amazonka.CodeCommit.GetCommentReactions
+import Amazonka.CodeCommit.GetCommentsForComparedCommit
+import Amazonka.CodeCommit.GetCommentsForPullRequest
+import Amazonka.CodeCommit.GetCommit
+import Amazonka.CodeCommit.GetDifferences
+import Amazonka.CodeCommit.GetFile
+import Amazonka.CodeCommit.GetFolder
+import Amazonka.CodeCommit.GetMergeCommit
+import Amazonka.CodeCommit.GetMergeConflicts
+import Amazonka.CodeCommit.GetMergeOptions
+import Amazonka.CodeCommit.GetPullRequest
+import Amazonka.CodeCommit.GetPullRequestApprovalStates
+import Amazonka.CodeCommit.GetPullRequestOverrideState
+import Amazonka.CodeCommit.GetRepository
+import Amazonka.CodeCommit.GetRepositoryTriggers
+import Amazonka.CodeCommit.ListApprovalRuleTemplates
+import Amazonka.CodeCommit.ListAssociatedApprovalRuleTemplatesForRepository
+import Amazonka.CodeCommit.ListBranches
+import Amazonka.CodeCommit.ListPullRequests
+import Amazonka.CodeCommit.ListRepositories
+import Amazonka.CodeCommit.ListRepositoriesForApprovalRuleTemplate
+import Amazonka.CodeCommit.ListTagsForResource
+import Amazonka.CodeCommit.MergeBranchesByFastForward
+import Amazonka.CodeCommit.MergeBranchesBySquash
+import Amazonka.CodeCommit.MergeBranchesByThreeWay
+import Amazonka.CodeCommit.MergePullRequestByFastForward
+import Amazonka.CodeCommit.MergePullRequestBySquash
+import Amazonka.CodeCommit.MergePullRequestByThreeWay
+import Amazonka.CodeCommit.OverridePullRequestApprovalRules
+import Amazonka.CodeCommit.PostCommentForComparedCommit
+import Amazonka.CodeCommit.PostCommentForPullRequest
+import Amazonka.CodeCommit.PostCommentReply
+import Amazonka.CodeCommit.PutCommentReaction
+import Amazonka.CodeCommit.PutFile
+import Amazonka.CodeCommit.PutRepositoryTriggers
+import Amazonka.CodeCommit.TagResource
+import Amazonka.CodeCommit.TestRepositoryTriggers
+import Amazonka.CodeCommit.Types.Approval
+import Amazonka.CodeCommit.Types.ApprovalRule
+import Amazonka.CodeCommit.Types.ApprovalRuleEventMetadata
+import Amazonka.CodeCommit.Types.ApprovalRuleOverriddenEventMetadata
+import Amazonka.CodeCommit.Types.ApprovalRuleTemplate
+import Amazonka.CodeCommit.Types.ApprovalStateChangedEventMetadata
+import Amazonka.CodeCommit.Types.BatchAssociateApprovalRuleTemplateWithRepositoriesError
+import Amazonka.CodeCommit.Types.BatchDescribeMergeConflictsError
+import Amazonka.CodeCommit.Types.BatchDisassociateApprovalRuleTemplateFromRepositoriesError
+import Amazonka.CodeCommit.Types.BatchGetCommitsError
+import Amazonka.CodeCommit.Types.BlobMetadata
+import Amazonka.CodeCommit.Types.BranchInfo
+import Amazonka.CodeCommit.Types.Comment
+import Amazonka.CodeCommit.Types.CommentsForComparedCommit
+import Amazonka.CodeCommit.Types.CommentsForPullRequest
+import Amazonka.CodeCommit.Types.Commit
+import Amazonka.CodeCommit.Types.Conflict
+import Amazonka.CodeCommit.Types.ConflictMetadata
+import Amazonka.CodeCommit.Types.ConflictResolution
+import Amazonka.CodeCommit.Types.DeleteFileEntry
+import Amazonka.CodeCommit.Types.Difference
+import Amazonka.CodeCommit.Types.Evaluation
+import Amazonka.CodeCommit.Types.File
+import Amazonka.CodeCommit.Types.FileMetadata
+import Amazonka.CodeCommit.Types.FileModes
+import Amazonka.CodeCommit.Types.FileSizes
+import Amazonka.CodeCommit.Types.Folder
+import Amazonka.CodeCommit.Types.IsBinaryFile
+import Amazonka.CodeCommit.Types.Location
+import Amazonka.CodeCommit.Types.MergeHunk
+import Amazonka.CodeCommit.Types.MergeHunkDetail
+import Amazonka.CodeCommit.Types.MergeMetadata
+import Amazonka.CodeCommit.Types.MergeOperations
+import Amazonka.CodeCommit.Types.ObjectTypes
+import Amazonka.CodeCommit.Types.OriginApprovalRuleTemplate
+import Amazonka.CodeCommit.Types.PullRequest
+import Amazonka.CodeCommit.Types.PullRequestCreatedEventMetadata
+import Amazonka.CodeCommit.Types.PullRequestEvent
+import Amazonka.CodeCommit.Types.PullRequestMergedStateChangedEventMetadata
+import Amazonka.CodeCommit.Types.PullRequestSourceReferenceUpdatedEventMetadata
+import Amazonka.CodeCommit.Types.PullRequestStatusChangedEventMetadata
+import Amazonka.CodeCommit.Types.PullRequestTarget
+import Amazonka.CodeCommit.Types.PutFileEntry
+import Amazonka.CodeCommit.Types.ReactionForComment
+import Amazonka.CodeCommit.Types.ReactionValueFormats
+import Amazonka.CodeCommit.Types.ReplaceContentEntry
+import Amazonka.CodeCommit.Types.RepositoryMetadata
+import Amazonka.CodeCommit.Types.RepositoryNameIdPair
+import Amazonka.CodeCommit.Types.RepositoryTrigger
+import Amazonka.CodeCommit.Types.RepositoryTriggerExecutionFailure
+import Amazonka.CodeCommit.Types.SetFileModeEntry
+import Amazonka.CodeCommit.Types.SourceFileSpecifier
+import Amazonka.CodeCommit.Types.SubModule
+import Amazonka.CodeCommit.Types.SymbolicLink
+import Amazonka.CodeCommit.Types.Target
+import Amazonka.CodeCommit.Types.UserInfo
+import Amazonka.CodeCommit.UntagResource
+import Amazonka.CodeCommit.UpdateApprovalRuleTemplateContent
+import Amazonka.CodeCommit.UpdateApprovalRuleTemplateDescription
+import Amazonka.CodeCommit.UpdateApprovalRuleTemplateName
+import Amazonka.CodeCommit.UpdateComment
+import Amazonka.CodeCommit.UpdateDefaultBranch
+import Amazonka.CodeCommit.UpdatePullRequestApprovalRuleContent
+import Amazonka.CodeCommit.UpdatePullRequestApprovalState
+import Amazonka.CodeCommit.UpdatePullRequestDescription
+import Amazonka.CodeCommit.UpdatePullRequestStatus
+import Amazonka.CodeCommit.UpdatePullRequestTitle
+import Amazonka.CodeCommit.UpdateRepositoryDescription
+import Amazonka.CodeCommit.UpdateRepositoryName
diff --git a/gen/Amazonka/CodeCommit/ListApprovalRuleTemplates.hs b/gen/Amazonka/CodeCommit/ListApprovalRuleTemplates.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/ListApprovalRuleTemplates.hs
@@ -0,0 +1,217 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.ListApprovalRuleTemplates
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all approval rule templates in the specified AWS Region in your
+-- AWS account. If an AWS Region is not specified, the AWS Region where you
+-- are signed in is used.
+module Amazonka.CodeCommit.ListApprovalRuleTemplates
+  ( -- * Creating a Request
+    ListApprovalRuleTemplates (..),
+    newListApprovalRuleTemplates,
+
+    -- * Request Lenses
+    listApprovalRuleTemplates_maxResults,
+    listApprovalRuleTemplates_nextToken,
+
+    -- * Destructuring the Response
+    ListApprovalRuleTemplatesResponse (..),
+    newListApprovalRuleTemplatesResponse,
+
+    -- * Response Lenses
+    listApprovalRuleTemplatesResponse_approvalRuleTemplateNames,
+    listApprovalRuleTemplatesResponse_nextToken,
+    listApprovalRuleTemplatesResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newListApprovalRuleTemplates' smart constructor.
+data ListApprovalRuleTemplates = ListApprovalRuleTemplates'
+  { -- | A non-zero, non-negative integer used to limit the number of returned
+    -- results.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | An enumeration token that, when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListApprovalRuleTemplates' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'maxResults', 'listApprovalRuleTemplates_maxResults' - A non-zero, non-negative integer used to limit the number of returned
+-- results.
+--
+-- 'nextToken', 'listApprovalRuleTemplates_nextToken' - An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+newListApprovalRuleTemplates ::
+  ListApprovalRuleTemplates
+newListApprovalRuleTemplates =
+  ListApprovalRuleTemplates'
+    { maxResults =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | A non-zero, non-negative integer used to limit the number of returned
+-- results.
+listApprovalRuleTemplates_maxResults :: Lens.Lens' ListApprovalRuleTemplates (Prelude.Maybe Prelude.Int)
+listApprovalRuleTemplates_maxResults = Lens.lens (\ListApprovalRuleTemplates' {maxResults} -> maxResults) (\s@ListApprovalRuleTemplates' {} a -> s {maxResults = a} :: ListApprovalRuleTemplates)
+
+-- | An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+listApprovalRuleTemplates_nextToken :: Lens.Lens' ListApprovalRuleTemplates (Prelude.Maybe Prelude.Text)
+listApprovalRuleTemplates_nextToken = Lens.lens (\ListApprovalRuleTemplates' {nextToken} -> nextToken) (\s@ListApprovalRuleTemplates' {} a -> s {nextToken = a} :: ListApprovalRuleTemplates)
+
+instance Core.AWSRequest ListApprovalRuleTemplates where
+  type
+    AWSResponse ListApprovalRuleTemplates =
+      ListApprovalRuleTemplatesResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListApprovalRuleTemplatesResponse'
+            Prelude.<$> ( x
+                            Data..?> "approvalRuleTemplateNames"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListApprovalRuleTemplates where
+  hashWithSalt _salt ListApprovalRuleTemplates' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListApprovalRuleTemplates where
+  rnf ListApprovalRuleTemplates' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListApprovalRuleTemplates where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.ListApprovalRuleTemplates" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListApprovalRuleTemplates where
+  toJSON ListApprovalRuleTemplates' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("maxResults" Data..=) Prelude.<$> maxResults,
+            ("nextToken" Data..=) Prelude.<$> nextToken
+          ]
+      )
+
+instance Data.ToPath ListApprovalRuleTemplates where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListApprovalRuleTemplates where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListApprovalRuleTemplatesResponse' smart constructor.
+data ListApprovalRuleTemplatesResponse = ListApprovalRuleTemplatesResponse'
+  { -- | The names of all the approval rule templates found in the AWS Region for
+    -- your AWS account.
+    approvalRuleTemplateNames :: Prelude.Maybe [Prelude.Text],
+    -- | An enumeration token that allows the operation to batch the next results
+    -- of the operation.
+    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 'ListApprovalRuleTemplatesResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleTemplateNames', 'listApprovalRuleTemplatesResponse_approvalRuleTemplateNames' - The names of all the approval rule templates found in the AWS Region for
+-- your AWS account.
+--
+-- 'nextToken', 'listApprovalRuleTemplatesResponse_nextToken' - An enumeration token that allows the operation to batch the next results
+-- of the operation.
+--
+-- 'httpStatus', 'listApprovalRuleTemplatesResponse_httpStatus' - The response's http status code.
+newListApprovalRuleTemplatesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListApprovalRuleTemplatesResponse
+newListApprovalRuleTemplatesResponse pHttpStatus_ =
+  ListApprovalRuleTemplatesResponse'
+    { approvalRuleTemplateNames =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The names of all the approval rule templates found in the AWS Region for
+-- your AWS account.
+listApprovalRuleTemplatesResponse_approvalRuleTemplateNames :: Lens.Lens' ListApprovalRuleTemplatesResponse (Prelude.Maybe [Prelude.Text])
+listApprovalRuleTemplatesResponse_approvalRuleTemplateNames = Lens.lens (\ListApprovalRuleTemplatesResponse' {approvalRuleTemplateNames} -> approvalRuleTemplateNames) (\s@ListApprovalRuleTemplatesResponse' {} a -> s {approvalRuleTemplateNames = a} :: ListApprovalRuleTemplatesResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | An enumeration token that allows the operation to batch the next results
+-- of the operation.
+listApprovalRuleTemplatesResponse_nextToken :: Lens.Lens' ListApprovalRuleTemplatesResponse (Prelude.Maybe Prelude.Text)
+listApprovalRuleTemplatesResponse_nextToken = Lens.lens (\ListApprovalRuleTemplatesResponse' {nextToken} -> nextToken) (\s@ListApprovalRuleTemplatesResponse' {} a -> s {nextToken = a} :: ListApprovalRuleTemplatesResponse)
+
+-- | The response's http status code.
+listApprovalRuleTemplatesResponse_httpStatus :: Lens.Lens' ListApprovalRuleTemplatesResponse Prelude.Int
+listApprovalRuleTemplatesResponse_httpStatus = Lens.lens (\ListApprovalRuleTemplatesResponse' {httpStatus} -> httpStatus) (\s@ListApprovalRuleTemplatesResponse' {} a -> s {httpStatus = a} :: ListApprovalRuleTemplatesResponse)
+
+instance
+  Prelude.NFData
+    ListApprovalRuleTemplatesResponse
+  where
+  rnf ListApprovalRuleTemplatesResponse' {..} =
+    Prelude.rnf approvalRuleTemplateNames
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/ListAssociatedApprovalRuleTemplatesForRepository.hs b/gen/Amazonka/CodeCommit/ListAssociatedApprovalRuleTemplatesForRepository.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/ListAssociatedApprovalRuleTemplatesForRepository.hs
@@ -0,0 +1,265 @@
+{-# 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.CodeCommit.ListAssociatedApprovalRuleTemplatesForRepository
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all approval rule templates that are associated with a specified
+-- repository.
+module Amazonka.CodeCommit.ListAssociatedApprovalRuleTemplatesForRepository
+  ( -- * Creating a Request
+    ListAssociatedApprovalRuleTemplatesForRepository (..),
+    newListAssociatedApprovalRuleTemplatesForRepository,
+
+    -- * Request Lenses
+    listAssociatedApprovalRuleTemplatesForRepository_maxResults,
+    listAssociatedApprovalRuleTemplatesForRepository_nextToken,
+    listAssociatedApprovalRuleTemplatesForRepository_repositoryName,
+
+    -- * Destructuring the Response
+    ListAssociatedApprovalRuleTemplatesForRepositoryResponse (..),
+    newListAssociatedApprovalRuleTemplatesForRepositoryResponse,
+
+    -- * Response Lenses
+    listAssociatedApprovalRuleTemplatesForRepositoryResponse_approvalRuleTemplateNames,
+    listAssociatedApprovalRuleTemplatesForRepositoryResponse_nextToken,
+    listAssociatedApprovalRuleTemplatesForRepositoryResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newListAssociatedApprovalRuleTemplatesForRepository' smart constructor.
+data ListAssociatedApprovalRuleTemplatesForRepository = ListAssociatedApprovalRuleTemplatesForRepository'
+  { -- | A non-zero, non-negative integer used to limit the number of returned
+    -- results.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | An enumeration token that, when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository for which you want to list all associated
+    -- approval rule templates.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListAssociatedApprovalRuleTemplatesForRepository' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'maxResults', 'listAssociatedApprovalRuleTemplatesForRepository_maxResults' - A non-zero, non-negative integer used to limit the number of returned
+-- results.
+--
+-- 'nextToken', 'listAssociatedApprovalRuleTemplatesForRepository_nextToken' - An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+--
+-- 'repositoryName', 'listAssociatedApprovalRuleTemplatesForRepository_repositoryName' - The name of the repository for which you want to list all associated
+-- approval rule templates.
+newListAssociatedApprovalRuleTemplatesForRepository ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  ListAssociatedApprovalRuleTemplatesForRepository
+newListAssociatedApprovalRuleTemplatesForRepository
+  pRepositoryName_ =
+    ListAssociatedApprovalRuleTemplatesForRepository'
+      { maxResults =
+          Prelude.Nothing,
+        nextToken =
+          Prelude.Nothing,
+        repositoryName =
+          pRepositoryName_
+      }
+
+-- | A non-zero, non-negative integer used to limit the number of returned
+-- results.
+listAssociatedApprovalRuleTemplatesForRepository_maxResults :: Lens.Lens' ListAssociatedApprovalRuleTemplatesForRepository (Prelude.Maybe Prelude.Int)
+listAssociatedApprovalRuleTemplatesForRepository_maxResults = Lens.lens (\ListAssociatedApprovalRuleTemplatesForRepository' {maxResults} -> maxResults) (\s@ListAssociatedApprovalRuleTemplatesForRepository' {} a -> s {maxResults = a} :: ListAssociatedApprovalRuleTemplatesForRepository)
+
+-- | An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+listAssociatedApprovalRuleTemplatesForRepository_nextToken :: Lens.Lens' ListAssociatedApprovalRuleTemplatesForRepository (Prelude.Maybe Prelude.Text)
+listAssociatedApprovalRuleTemplatesForRepository_nextToken = Lens.lens (\ListAssociatedApprovalRuleTemplatesForRepository' {nextToken} -> nextToken) (\s@ListAssociatedApprovalRuleTemplatesForRepository' {} a -> s {nextToken = a} :: ListAssociatedApprovalRuleTemplatesForRepository)
+
+-- | The name of the repository for which you want to list all associated
+-- approval rule templates.
+listAssociatedApprovalRuleTemplatesForRepository_repositoryName :: Lens.Lens' ListAssociatedApprovalRuleTemplatesForRepository Prelude.Text
+listAssociatedApprovalRuleTemplatesForRepository_repositoryName = Lens.lens (\ListAssociatedApprovalRuleTemplatesForRepository' {repositoryName} -> repositoryName) (\s@ListAssociatedApprovalRuleTemplatesForRepository' {} a -> s {repositoryName = a} :: ListAssociatedApprovalRuleTemplatesForRepository)
+
+instance
+  Core.AWSRequest
+    ListAssociatedApprovalRuleTemplatesForRepository
+  where
+  type
+    AWSResponse
+      ListAssociatedApprovalRuleTemplatesForRepository =
+      ListAssociatedApprovalRuleTemplatesForRepositoryResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListAssociatedApprovalRuleTemplatesForRepositoryResponse'
+            Prelude.<$> ( x
+                            Data..?> "approvalRuleTemplateNames"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListAssociatedApprovalRuleTemplatesForRepository
+  where
+  hashWithSalt
+    _salt
+    ListAssociatedApprovalRuleTemplatesForRepository' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` repositoryName
+
+instance
+  Prelude.NFData
+    ListAssociatedApprovalRuleTemplatesForRepository
+  where
+  rnf
+    ListAssociatedApprovalRuleTemplatesForRepository' {..} =
+      Prelude.rnf maxResults
+        `Prelude.seq` Prelude.rnf nextToken
+        `Prelude.seq` Prelude.rnf repositoryName
+
+instance
+  Data.ToHeaders
+    ListAssociatedApprovalRuleTemplatesForRepository
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.ListAssociatedApprovalRuleTemplatesForRepository" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    ListAssociatedApprovalRuleTemplatesForRepository
+  where
+  toJSON
+    ListAssociatedApprovalRuleTemplatesForRepository' {..} =
+      Data.object
+        ( Prelude.catMaybes
+            [ ("maxResults" Data..=) Prelude.<$> maxResults,
+              ("nextToken" Data..=) Prelude.<$> nextToken,
+              Prelude.Just
+                ("repositoryName" Data..= repositoryName)
+            ]
+        )
+
+instance
+  Data.ToPath
+    ListAssociatedApprovalRuleTemplatesForRepository
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    ListAssociatedApprovalRuleTemplatesForRepository
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListAssociatedApprovalRuleTemplatesForRepositoryResponse' smart constructor.
+data ListAssociatedApprovalRuleTemplatesForRepositoryResponse = ListAssociatedApprovalRuleTemplatesForRepositoryResponse'
+  { -- | The names of all approval rule templates associated with the repository.
+    approvalRuleTemplateNames :: Prelude.Maybe [Prelude.Text],
+    -- | An enumeration token that allows the operation to batch the next results
+    -- of the operation.
+    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 'ListAssociatedApprovalRuleTemplatesForRepositoryResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleTemplateNames', 'listAssociatedApprovalRuleTemplatesForRepositoryResponse_approvalRuleTemplateNames' - The names of all approval rule templates associated with the repository.
+--
+-- 'nextToken', 'listAssociatedApprovalRuleTemplatesForRepositoryResponse_nextToken' - An enumeration token that allows the operation to batch the next results
+-- of the operation.
+--
+-- 'httpStatus', 'listAssociatedApprovalRuleTemplatesForRepositoryResponse_httpStatus' - The response's http status code.
+newListAssociatedApprovalRuleTemplatesForRepositoryResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListAssociatedApprovalRuleTemplatesForRepositoryResponse
+newListAssociatedApprovalRuleTemplatesForRepositoryResponse
+  pHttpStatus_ =
+    ListAssociatedApprovalRuleTemplatesForRepositoryResponse'
+      { approvalRuleTemplateNames =
+          Prelude.Nothing,
+        nextToken =
+          Prelude.Nothing,
+        httpStatus =
+          pHttpStatus_
+      }
+
+-- | The names of all approval rule templates associated with the repository.
+listAssociatedApprovalRuleTemplatesForRepositoryResponse_approvalRuleTemplateNames :: Lens.Lens' ListAssociatedApprovalRuleTemplatesForRepositoryResponse (Prelude.Maybe [Prelude.Text])
+listAssociatedApprovalRuleTemplatesForRepositoryResponse_approvalRuleTemplateNames = Lens.lens (\ListAssociatedApprovalRuleTemplatesForRepositoryResponse' {approvalRuleTemplateNames} -> approvalRuleTemplateNames) (\s@ListAssociatedApprovalRuleTemplatesForRepositoryResponse' {} a -> s {approvalRuleTemplateNames = a} :: ListAssociatedApprovalRuleTemplatesForRepositoryResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | An enumeration token that allows the operation to batch the next results
+-- of the operation.
+listAssociatedApprovalRuleTemplatesForRepositoryResponse_nextToken :: Lens.Lens' ListAssociatedApprovalRuleTemplatesForRepositoryResponse (Prelude.Maybe Prelude.Text)
+listAssociatedApprovalRuleTemplatesForRepositoryResponse_nextToken = Lens.lens (\ListAssociatedApprovalRuleTemplatesForRepositoryResponse' {nextToken} -> nextToken) (\s@ListAssociatedApprovalRuleTemplatesForRepositoryResponse' {} a -> s {nextToken = a} :: ListAssociatedApprovalRuleTemplatesForRepositoryResponse)
+
+-- | The response's http status code.
+listAssociatedApprovalRuleTemplatesForRepositoryResponse_httpStatus :: Lens.Lens' ListAssociatedApprovalRuleTemplatesForRepositoryResponse Prelude.Int
+listAssociatedApprovalRuleTemplatesForRepositoryResponse_httpStatus = Lens.lens (\ListAssociatedApprovalRuleTemplatesForRepositoryResponse' {httpStatus} -> httpStatus) (\s@ListAssociatedApprovalRuleTemplatesForRepositoryResponse' {} a -> s {httpStatus = a} :: ListAssociatedApprovalRuleTemplatesForRepositoryResponse)
+
+instance
+  Prelude.NFData
+    ListAssociatedApprovalRuleTemplatesForRepositoryResponse
+  where
+  rnf
+    ListAssociatedApprovalRuleTemplatesForRepositoryResponse' {..} =
+      Prelude.rnf approvalRuleTemplateNames
+        `Prelude.seq` Prelude.rnf nextToken
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/ListBranches.hs b/gen/Amazonka/CodeCommit/ListBranches.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/ListBranches.hs
@@ -0,0 +1,224 @@
+{-# 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.CodeCommit.ListBranches
+-- 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 information about one or more branches in a repository.
+--
+-- This operation returns paginated results.
+module Amazonka.CodeCommit.ListBranches
+  ( -- * Creating a Request
+    ListBranches (..),
+    newListBranches,
+
+    -- * Request Lenses
+    listBranches_nextToken,
+    listBranches_repositoryName,
+
+    -- * Destructuring the Response
+    ListBranchesResponse (..),
+    newListBranchesResponse,
+
+    -- * Response Lenses
+    listBranchesResponse_branches,
+    listBranchesResponse_nextToken,
+    listBranchesResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a list branches operation.
+--
+-- /See:/ 'newListBranches' smart constructor.
+data ListBranches = ListBranches'
+  { -- | An enumeration token that allows the operation to batch the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository that contains the branches.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListBranches' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listBranches_nextToken' - An enumeration token that allows the operation to batch the results.
+--
+-- 'repositoryName', 'listBranches_repositoryName' - The name of the repository that contains the branches.
+newListBranches ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  ListBranches
+newListBranches pRepositoryName_ =
+  ListBranches'
+    { nextToken = Prelude.Nothing,
+      repositoryName = pRepositoryName_
+    }
+
+-- | An enumeration token that allows the operation to batch the results.
+listBranches_nextToken :: Lens.Lens' ListBranches (Prelude.Maybe Prelude.Text)
+listBranches_nextToken = Lens.lens (\ListBranches' {nextToken} -> nextToken) (\s@ListBranches' {} a -> s {nextToken = a} :: ListBranches)
+
+-- | The name of the repository that contains the branches.
+listBranches_repositoryName :: Lens.Lens' ListBranches Prelude.Text
+listBranches_repositoryName = Lens.lens (\ListBranches' {repositoryName} -> repositoryName) (\s@ListBranches' {} a -> s {repositoryName = a} :: ListBranches)
+
+instance Core.AWSPager ListBranches where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listBranchesResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? listBranchesResponse_branches
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listBranches_nextToken
+          Lens..~ rs
+          Lens.^? listBranchesResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest ListBranches where
+  type AWSResponse ListBranches = ListBranchesResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListBranchesResponse'
+            Prelude.<$> (x Data..?> "branches" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListBranches where
+  hashWithSalt _salt ListBranches' {..} =
+    _salt
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData ListBranches where
+  rnf ListBranches' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf repositoryName
+
+instance Data.ToHeaders ListBranches where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.ListBranches" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListBranches where
+  toJSON ListBranches' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("nextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName)
+          ]
+      )
+
+instance Data.ToPath ListBranches where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListBranches where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a list branches operation.
+--
+-- /See:/ 'newListBranchesResponse' smart constructor.
+data ListBranchesResponse = ListBranchesResponse'
+  { -- | The list of branch names.
+    branches :: Prelude.Maybe [Prelude.Text],
+    -- | An enumeration token that returns the batch of the 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 'ListBranchesResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'branches', 'listBranchesResponse_branches' - The list of branch names.
+--
+-- 'nextToken', 'listBranchesResponse_nextToken' - An enumeration token that returns the batch of the results.
+--
+-- 'httpStatus', 'listBranchesResponse_httpStatus' - The response's http status code.
+newListBranchesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListBranchesResponse
+newListBranchesResponse pHttpStatus_ =
+  ListBranchesResponse'
+    { branches = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The list of branch names.
+listBranchesResponse_branches :: Lens.Lens' ListBranchesResponse (Prelude.Maybe [Prelude.Text])
+listBranchesResponse_branches = Lens.lens (\ListBranchesResponse' {branches} -> branches) (\s@ListBranchesResponse' {} a -> s {branches = a} :: ListBranchesResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | An enumeration token that returns the batch of the results.
+listBranchesResponse_nextToken :: Lens.Lens' ListBranchesResponse (Prelude.Maybe Prelude.Text)
+listBranchesResponse_nextToken = Lens.lens (\ListBranchesResponse' {nextToken} -> nextToken) (\s@ListBranchesResponse' {} a -> s {nextToken = a} :: ListBranchesResponse)
+
+-- | The response's http status code.
+listBranchesResponse_httpStatus :: Lens.Lens' ListBranchesResponse Prelude.Int
+listBranchesResponse_httpStatus = Lens.lens (\ListBranchesResponse' {httpStatus} -> httpStatus) (\s@ListBranchesResponse' {} a -> s {httpStatus = a} :: ListBranchesResponse)
+
+instance Prelude.NFData ListBranchesResponse where
+  rnf ListBranchesResponse' {..} =
+    Prelude.rnf branches
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/ListPullRequests.hs b/gen/Amazonka/CodeCommit/ListPullRequests.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/ListPullRequests.hs
@@ -0,0 +1,282 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.ListPullRequests
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a list of pull requests for a specified repository. The return
+-- list can be refined by pull request status or pull request author ARN.
+--
+-- This operation returns paginated results.
+module Amazonka.CodeCommit.ListPullRequests
+  ( -- * Creating a Request
+    ListPullRequests (..),
+    newListPullRequests,
+
+    -- * Request Lenses
+    listPullRequests_authorArn,
+    listPullRequests_maxResults,
+    listPullRequests_nextToken,
+    listPullRequests_pullRequestStatus,
+    listPullRequests_repositoryName,
+
+    -- * Destructuring the Response
+    ListPullRequestsResponse (..),
+    newListPullRequestsResponse,
+
+    -- * Response Lenses
+    listPullRequestsResponse_nextToken,
+    listPullRequestsResponse_httpStatus,
+    listPullRequestsResponse_pullRequestIds,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newListPullRequests' smart constructor.
+data ListPullRequests = ListPullRequests'
+  { -- | Optional. The Amazon Resource Name (ARN) of the user who created the
+    -- pull request. If used, this filters the results to pull requests created
+    -- by that user.
+    authorArn :: Prelude.Maybe Prelude.Text,
+    -- | A non-zero, non-negative integer used to limit the number of returned
+    -- results.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | An enumeration token that, when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Optional. The status of the pull request. If used, this refines the
+    -- results to the pull requests that match the specified status.
+    pullRequestStatus :: Prelude.Maybe PullRequestStatusEnum,
+    -- | The name of the repository for which you want to list pull requests.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListPullRequests' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authorArn', 'listPullRequests_authorArn' - Optional. The Amazon Resource Name (ARN) of the user who created the
+-- pull request. If used, this filters the results to pull requests created
+-- by that user.
+--
+-- 'maxResults', 'listPullRequests_maxResults' - A non-zero, non-negative integer used to limit the number of returned
+-- results.
+--
+-- 'nextToken', 'listPullRequests_nextToken' - An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+--
+-- 'pullRequestStatus', 'listPullRequests_pullRequestStatus' - Optional. The status of the pull request. If used, this refines the
+-- results to the pull requests that match the specified status.
+--
+-- 'repositoryName', 'listPullRequests_repositoryName' - The name of the repository for which you want to list pull requests.
+newListPullRequests ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  ListPullRequests
+newListPullRequests pRepositoryName_ =
+  ListPullRequests'
+    { authorArn = Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      pullRequestStatus = Prelude.Nothing,
+      repositoryName = pRepositoryName_
+    }
+
+-- | Optional. The Amazon Resource Name (ARN) of the user who created the
+-- pull request. If used, this filters the results to pull requests created
+-- by that user.
+listPullRequests_authorArn :: Lens.Lens' ListPullRequests (Prelude.Maybe Prelude.Text)
+listPullRequests_authorArn = Lens.lens (\ListPullRequests' {authorArn} -> authorArn) (\s@ListPullRequests' {} a -> s {authorArn = a} :: ListPullRequests)
+
+-- | A non-zero, non-negative integer used to limit the number of returned
+-- results.
+listPullRequests_maxResults :: Lens.Lens' ListPullRequests (Prelude.Maybe Prelude.Int)
+listPullRequests_maxResults = Lens.lens (\ListPullRequests' {maxResults} -> maxResults) (\s@ListPullRequests' {} a -> s {maxResults = a} :: ListPullRequests)
+
+-- | An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+listPullRequests_nextToken :: Lens.Lens' ListPullRequests (Prelude.Maybe Prelude.Text)
+listPullRequests_nextToken = Lens.lens (\ListPullRequests' {nextToken} -> nextToken) (\s@ListPullRequests' {} a -> s {nextToken = a} :: ListPullRequests)
+
+-- | Optional. The status of the pull request. If used, this refines the
+-- results to the pull requests that match the specified status.
+listPullRequests_pullRequestStatus :: Lens.Lens' ListPullRequests (Prelude.Maybe PullRequestStatusEnum)
+listPullRequests_pullRequestStatus = Lens.lens (\ListPullRequests' {pullRequestStatus} -> pullRequestStatus) (\s@ListPullRequests' {} a -> s {pullRequestStatus = a} :: ListPullRequests)
+
+-- | The name of the repository for which you want to list pull requests.
+listPullRequests_repositoryName :: Lens.Lens' ListPullRequests Prelude.Text
+listPullRequests_repositoryName = Lens.lens (\ListPullRequests' {repositoryName} -> repositoryName) (\s@ListPullRequests' {} a -> s {repositoryName = a} :: ListPullRequests)
+
+instance Core.AWSPager ListPullRequests where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listPullRequestsResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        (rs Lens.^. listPullRequestsResponse_pullRequestIds) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listPullRequests_nextToken
+          Lens..~ rs
+          Lens.^? listPullRequestsResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest ListPullRequests where
+  type
+    AWSResponse ListPullRequests =
+      ListPullRequestsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListPullRequestsResponse'
+            Prelude.<$> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> ( x
+                            Data..?> "pullRequestIds"
+                            Core..!@ Prelude.mempty
+                        )
+      )
+
+instance Prelude.Hashable ListPullRequests where
+  hashWithSalt _salt ListPullRequests' {..} =
+    _salt
+      `Prelude.hashWithSalt` authorArn
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` pullRequestStatus
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData ListPullRequests where
+  rnf ListPullRequests' {..} =
+    Prelude.rnf authorArn
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf pullRequestStatus
+      `Prelude.seq` Prelude.rnf repositoryName
+
+instance Data.ToHeaders ListPullRequests where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.ListPullRequests" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListPullRequests where
+  toJSON ListPullRequests' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("authorArn" Data..=) Prelude.<$> authorArn,
+            ("maxResults" Data..=) Prelude.<$> maxResults,
+            ("nextToken" Data..=) Prelude.<$> nextToken,
+            ("pullRequestStatus" Data..=)
+              Prelude.<$> pullRequestStatus,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName)
+          ]
+      )
+
+instance Data.ToPath ListPullRequests where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListPullRequests where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListPullRequestsResponse' smart constructor.
+data ListPullRequestsResponse = ListPullRequestsResponse'
+  { -- | An enumeration token that allows the operation to batch the next results
+    -- of the operation.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The system-generated IDs of the pull requests.
+    pullRequestIds :: [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListPullRequestsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listPullRequestsResponse_nextToken' - An enumeration token that allows the operation to batch the next results
+-- of the operation.
+--
+-- 'httpStatus', 'listPullRequestsResponse_httpStatus' - The response's http status code.
+--
+-- 'pullRequestIds', 'listPullRequestsResponse_pullRequestIds' - The system-generated IDs of the pull requests.
+newListPullRequestsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListPullRequestsResponse
+newListPullRequestsResponse pHttpStatus_ =
+  ListPullRequestsResponse'
+    { nextToken =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_,
+      pullRequestIds = Prelude.mempty
+    }
+
+-- | An enumeration token that allows the operation to batch the next results
+-- of the operation.
+listPullRequestsResponse_nextToken :: Lens.Lens' ListPullRequestsResponse (Prelude.Maybe Prelude.Text)
+listPullRequestsResponse_nextToken = Lens.lens (\ListPullRequestsResponse' {nextToken} -> nextToken) (\s@ListPullRequestsResponse' {} a -> s {nextToken = a} :: ListPullRequestsResponse)
+
+-- | The response's http status code.
+listPullRequestsResponse_httpStatus :: Lens.Lens' ListPullRequestsResponse Prelude.Int
+listPullRequestsResponse_httpStatus = Lens.lens (\ListPullRequestsResponse' {httpStatus} -> httpStatus) (\s@ListPullRequestsResponse' {} a -> s {httpStatus = a} :: ListPullRequestsResponse)
+
+-- | The system-generated IDs of the pull requests.
+listPullRequestsResponse_pullRequestIds :: Lens.Lens' ListPullRequestsResponse [Prelude.Text]
+listPullRequestsResponse_pullRequestIds = Lens.lens (\ListPullRequestsResponse' {pullRequestIds} -> pullRequestIds) (\s@ListPullRequestsResponse' {} a -> s {pullRequestIds = a} :: ListPullRequestsResponse) Prelude.. Lens.coerced
+
+instance Prelude.NFData ListPullRequestsResponse where
+  rnf ListPullRequestsResponse' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf pullRequestIds
diff --git a/gen/Amazonka/CodeCommit/ListRepositories.hs b/gen/Amazonka/CodeCommit/ListRepositories.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/ListRepositories.hs
@@ -0,0 +1,255 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.ListRepositories
+-- 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 information about one or more repositories.
+--
+-- This operation returns paginated results.
+module Amazonka.CodeCommit.ListRepositories
+  ( -- * Creating a Request
+    ListRepositories (..),
+    newListRepositories,
+
+    -- * Request Lenses
+    listRepositories_nextToken,
+    listRepositories_order,
+    listRepositories_sortBy,
+
+    -- * Destructuring the Response
+    ListRepositoriesResponse (..),
+    newListRepositoriesResponse,
+
+    -- * Response Lenses
+    listRepositoriesResponse_nextToken,
+    listRepositoriesResponse_repositories,
+    listRepositoriesResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a list repositories operation.
+--
+-- /See:/ 'newListRepositories' smart constructor.
+data ListRepositories = ListRepositories'
+  { -- | An enumeration token that allows the operation to batch the results of
+    -- the operation. Batch sizes are 1,000 for list repository operations.
+    -- When the client sends the token back to AWS CodeCommit, another page of
+    -- 1,000 records is retrieved.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The order in which to sort the results of a list repositories operation.
+    order :: Prelude.Maybe OrderEnum,
+    -- | The criteria used to sort the results of a list repositories operation.
+    sortBy :: Prelude.Maybe SortByEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListRepositories' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRepositories_nextToken' - An enumeration token that allows the operation to batch the results of
+-- the operation. Batch sizes are 1,000 for list repository operations.
+-- When the client sends the token back to AWS CodeCommit, another page of
+-- 1,000 records is retrieved.
+--
+-- 'order', 'listRepositories_order' - The order in which to sort the results of a list repositories operation.
+--
+-- 'sortBy', 'listRepositories_sortBy' - The criteria used to sort the results of a list repositories operation.
+newListRepositories ::
+  ListRepositories
+newListRepositories =
+  ListRepositories'
+    { nextToken = Prelude.Nothing,
+      order = Prelude.Nothing,
+      sortBy = Prelude.Nothing
+    }
+
+-- | An enumeration token that allows the operation to batch the results of
+-- the operation. Batch sizes are 1,000 for list repository operations.
+-- When the client sends the token back to AWS CodeCommit, another page of
+-- 1,000 records is retrieved.
+listRepositories_nextToken :: Lens.Lens' ListRepositories (Prelude.Maybe Prelude.Text)
+listRepositories_nextToken = Lens.lens (\ListRepositories' {nextToken} -> nextToken) (\s@ListRepositories' {} a -> s {nextToken = a} :: ListRepositories)
+
+-- | The order in which to sort the results of a list repositories operation.
+listRepositories_order :: Lens.Lens' ListRepositories (Prelude.Maybe OrderEnum)
+listRepositories_order = Lens.lens (\ListRepositories' {order} -> order) (\s@ListRepositories' {} a -> s {order = a} :: ListRepositories)
+
+-- | The criteria used to sort the results of a list repositories operation.
+listRepositories_sortBy :: Lens.Lens' ListRepositories (Prelude.Maybe SortByEnum)
+listRepositories_sortBy = Lens.lens (\ListRepositories' {sortBy} -> sortBy) (\s@ListRepositories' {} a -> s {sortBy = a} :: ListRepositories)
+
+instance Core.AWSPager ListRepositories where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listRepositoriesResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? listRepositoriesResponse_repositories
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listRepositories_nextToken
+          Lens..~ rs
+          Lens.^? listRepositoriesResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest ListRepositories where
+  type
+    AWSResponse ListRepositories =
+      ListRepositoriesResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListRepositoriesResponse'
+            Prelude.<$> (x Data..?> "nextToken")
+            Prelude.<*> (x Data..?> "repositories" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListRepositories where
+  hashWithSalt _salt ListRepositories' {..} =
+    _salt
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` order
+      `Prelude.hashWithSalt` sortBy
+
+instance Prelude.NFData ListRepositories where
+  rnf ListRepositories' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf order
+      `Prelude.seq` Prelude.rnf sortBy
+
+instance Data.ToHeaders ListRepositories where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.ListRepositories" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListRepositories where
+  toJSON ListRepositories' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("nextToken" Data..=) Prelude.<$> nextToken,
+            ("order" Data..=) Prelude.<$> order,
+            ("sortBy" Data..=) Prelude.<$> sortBy
+          ]
+      )
+
+instance Data.ToPath ListRepositories where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListRepositories where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a list repositories operation.
+--
+-- /See:/ 'newListRepositoriesResponse' smart constructor.
+data ListRepositoriesResponse = ListRepositoriesResponse'
+  { -- | An enumeration token that allows the operation to batch the results of
+    -- the operation. Batch sizes are 1,000 for list repository operations.
+    -- When the client sends the token back to AWS CodeCommit, another page of
+    -- 1,000 records is retrieved.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Lists the repositories called by the list repositories operation.
+    repositories :: Prelude.Maybe [RepositoryNameIdPair],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListRepositoriesResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRepositoriesResponse_nextToken' - An enumeration token that allows the operation to batch the results of
+-- the operation. Batch sizes are 1,000 for list repository operations.
+-- When the client sends the token back to AWS CodeCommit, another page of
+-- 1,000 records is retrieved.
+--
+-- 'repositories', 'listRepositoriesResponse_repositories' - Lists the repositories called by the list repositories operation.
+--
+-- 'httpStatus', 'listRepositoriesResponse_httpStatus' - The response's http status code.
+newListRepositoriesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListRepositoriesResponse
+newListRepositoriesResponse pHttpStatus_ =
+  ListRepositoriesResponse'
+    { nextToken =
+        Prelude.Nothing,
+      repositories = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | An enumeration token that allows the operation to batch the results of
+-- the operation. Batch sizes are 1,000 for list repository operations.
+-- When the client sends the token back to AWS CodeCommit, another page of
+-- 1,000 records is retrieved.
+listRepositoriesResponse_nextToken :: Lens.Lens' ListRepositoriesResponse (Prelude.Maybe Prelude.Text)
+listRepositoriesResponse_nextToken = Lens.lens (\ListRepositoriesResponse' {nextToken} -> nextToken) (\s@ListRepositoriesResponse' {} a -> s {nextToken = a} :: ListRepositoriesResponse)
+
+-- | Lists the repositories called by the list repositories operation.
+listRepositoriesResponse_repositories :: Lens.Lens' ListRepositoriesResponse (Prelude.Maybe [RepositoryNameIdPair])
+listRepositoriesResponse_repositories = Lens.lens (\ListRepositoriesResponse' {repositories} -> repositories) (\s@ListRepositoriesResponse' {} a -> s {repositories = a} :: ListRepositoriesResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listRepositoriesResponse_httpStatus :: Lens.Lens' ListRepositoriesResponse Prelude.Int
+listRepositoriesResponse_httpStatus = Lens.lens (\ListRepositoriesResponse' {httpStatus} -> httpStatus) (\s@ListRepositoriesResponse' {} a -> s {httpStatus = a} :: ListRepositoriesResponse)
+
+instance Prelude.NFData ListRepositoriesResponse where
+  rnf ListRepositoriesResponse' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf repositories
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/ListRepositoriesForApprovalRuleTemplate.hs b/gen/Amazonka/CodeCommit/ListRepositoriesForApprovalRuleTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/ListRepositoriesForApprovalRuleTemplate.hs
@@ -0,0 +1,266 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.ListRepositoriesForApprovalRuleTemplate
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all repositories associated with the specified approval rule
+-- template.
+module Amazonka.CodeCommit.ListRepositoriesForApprovalRuleTemplate
+  ( -- * Creating a Request
+    ListRepositoriesForApprovalRuleTemplate (..),
+    newListRepositoriesForApprovalRuleTemplate,
+
+    -- * Request Lenses
+    listRepositoriesForApprovalRuleTemplate_maxResults,
+    listRepositoriesForApprovalRuleTemplate_nextToken,
+    listRepositoriesForApprovalRuleTemplate_approvalRuleTemplateName,
+
+    -- * Destructuring the Response
+    ListRepositoriesForApprovalRuleTemplateResponse (..),
+    newListRepositoriesForApprovalRuleTemplateResponse,
+
+    -- * Response Lenses
+    listRepositoriesForApprovalRuleTemplateResponse_nextToken,
+    listRepositoriesForApprovalRuleTemplateResponse_repositoryNames,
+    listRepositoriesForApprovalRuleTemplateResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newListRepositoriesForApprovalRuleTemplate' smart constructor.
+data ListRepositoriesForApprovalRuleTemplate = ListRepositoriesForApprovalRuleTemplate'
+  { -- | A non-zero, non-negative integer used to limit the number of returned
+    -- results.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | An enumeration token that, when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The name of the approval rule template for which you want to list
+    -- repositories that are associated with that template.
+    approvalRuleTemplateName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListRepositoriesForApprovalRuleTemplate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'maxResults', 'listRepositoriesForApprovalRuleTemplate_maxResults' - A non-zero, non-negative integer used to limit the number of returned
+-- results.
+--
+-- 'nextToken', 'listRepositoriesForApprovalRuleTemplate_nextToken' - An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+--
+-- 'approvalRuleTemplateName', 'listRepositoriesForApprovalRuleTemplate_approvalRuleTemplateName' - The name of the approval rule template for which you want to list
+-- repositories that are associated with that template.
+newListRepositoriesForApprovalRuleTemplate ::
+  -- | 'approvalRuleTemplateName'
+  Prelude.Text ->
+  ListRepositoriesForApprovalRuleTemplate
+newListRepositoriesForApprovalRuleTemplate
+  pApprovalRuleTemplateName_ =
+    ListRepositoriesForApprovalRuleTemplate'
+      { maxResults =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        approvalRuleTemplateName =
+          pApprovalRuleTemplateName_
+      }
+
+-- | A non-zero, non-negative integer used to limit the number of returned
+-- results.
+listRepositoriesForApprovalRuleTemplate_maxResults :: Lens.Lens' ListRepositoriesForApprovalRuleTemplate (Prelude.Maybe Prelude.Int)
+listRepositoriesForApprovalRuleTemplate_maxResults = Lens.lens (\ListRepositoriesForApprovalRuleTemplate' {maxResults} -> maxResults) (\s@ListRepositoriesForApprovalRuleTemplate' {} a -> s {maxResults = a} :: ListRepositoriesForApprovalRuleTemplate)
+
+-- | An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+listRepositoriesForApprovalRuleTemplate_nextToken :: Lens.Lens' ListRepositoriesForApprovalRuleTemplate (Prelude.Maybe Prelude.Text)
+listRepositoriesForApprovalRuleTemplate_nextToken = Lens.lens (\ListRepositoriesForApprovalRuleTemplate' {nextToken} -> nextToken) (\s@ListRepositoriesForApprovalRuleTemplate' {} a -> s {nextToken = a} :: ListRepositoriesForApprovalRuleTemplate)
+
+-- | The name of the approval rule template for which you want to list
+-- repositories that are associated with that template.
+listRepositoriesForApprovalRuleTemplate_approvalRuleTemplateName :: Lens.Lens' ListRepositoriesForApprovalRuleTemplate Prelude.Text
+listRepositoriesForApprovalRuleTemplate_approvalRuleTemplateName = Lens.lens (\ListRepositoriesForApprovalRuleTemplate' {approvalRuleTemplateName} -> approvalRuleTemplateName) (\s@ListRepositoriesForApprovalRuleTemplate' {} a -> s {approvalRuleTemplateName = a} :: ListRepositoriesForApprovalRuleTemplate)
+
+instance
+  Core.AWSRequest
+    ListRepositoriesForApprovalRuleTemplate
+  where
+  type
+    AWSResponse
+      ListRepositoriesForApprovalRuleTemplate =
+      ListRepositoriesForApprovalRuleTemplateResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListRepositoriesForApprovalRuleTemplateResponse'
+            Prelude.<$> (x Data..?> "nextToken")
+            Prelude.<*> ( x
+                            Data..?> "repositoryNames"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListRepositoriesForApprovalRuleTemplate
+  where
+  hashWithSalt
+    _salt
+    ListRepositoriesForApprovalRuleTemplate' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` approvalRuleTemplateName
+
+instance
+  Prelude.NFData
+    ListRepositoriesForApprovalRuleTemplate
+  where
+  rnf ListRepositoriesForApprovalRuleTemplate' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf approvalRuleTemplateName
+
+instance
+  Data.ToHeaders
+    ListRepositoriesForApprovalRuleTemplate
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.ListRepositoriesForApprovalRuleTemplate" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    ListRepositoriesForApprovalRuleTemplate
+  where
+  toJSON ListRepositoriesForApprovalRuleTemplate' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("maxResults" Data..=) Prelude.<$> maxResults,
+            ("nextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just
+              ( "approvalRuleTemplateName"
+                  Data..= approvalRuleTemplateName
+              )
+          ]
+      )
+
+instance
+  Data.ToPath
+    ListRepositoriesForApprovalRuleTemplate
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    ListRepositoriesForApprovalRuleTemplate
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListRepositoriesForApprovalRuleTemplateResponse' smart constructor.
+data ListRepositoriesForApprovalRuleTemplateResponse = ListRepositoriesForApprovalRuleTemplateResponse'
+  { -- | An enumeration token that allows the operation to batch the next results
+    -- of the operation.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | A list of repository names that are associated with the specified
+    -- approval rule template.
+    repositoryNames :: 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 'ListRepositoriesForApprovalRuleTemplateResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRepositoriesForApprovalRuleTemplateResponse_nextToken' - An enumeration token that allows the operation to batch the next results
+-- of the operation.
+--
+-- 'repositoryNames', 'listRepositoriesForApprovalRuleTemplateResponse_repositoryNames' - A list of repository names that are associated with the specified
+-- approval rule template.
+--
+-- 'httpStatus', 'listRepositoriesForApprovalRuleTemplateResponse_httpStatus' - The response's http status code.
+newListRepositoriesForApprovalRuleTemplateResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListRepositoriesForApprovalRuleTemplateResponse
+newListRepositoriesForApprovalRuleTemplateResponse
+  pHttpStatus_ =
+    ListRepositoriesForApprovalRuleTemplateResponse'
+      { nextToken =
+          Prelude.Nothing,
+        repositoryNames =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | An enumeration token that allows the operation to batch the next results
+-- of the operation.
+listRepositoriesForApprovalRuleTemplateResponse_nextToken :: Lens.Lens' ListRepositoriesForApprovalRuleTemplateResponse (Prelude.Maybe Prelude.Text)
+listRepositoriesForApprovalRuleTemplateResponse_nextToken = Lens.lens (\ListRepositoriesForApprovalRuleTemplateResponse' {nextToken} -> nextToken) (\s@ListRepositoriesForApprovalRuleTemplateResponse' {} a -> s {nextToken = a} :: ListRepositoriesForApprovalRuleTemplateResponse)
+
+-- | A list of repository names that are associated with the specified
+-- approval rule template.
+listRepositoriesForApprovalRuleTemplateResponse_repositoryNames :: Lens.Lens' ListRepositoriesForApprovalRuleTemplateResponse (Prelude.Maybe [Prelude.Text])
+listRepositoriesForApprovalRuleTemplateResponse_repositoryNames = Lens.lens (\ListRepositoriesForApprovalRuleTemplateResponse' {repositoryNames} -> repositoryNames) (\s@ListRepositoriesForApprovalRuleTemplateResponse' {} a -> s {repositoryNames = a} :: ListRepositoriesForApprovalRuleTemplateResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listRepositoriesForApprovalRuleTemplateResponse_httpStatus :: Lens.Lens' ListRepositoriesForApprovalRuleTemplateResponse Prelude.Int
+listRepositoriesForApprovalRuleTemplateResponse_httpStatus = Lens.lens (\ListRepositoriesForApprovalRuleTemplateResponse' {httpStatus} -> httpStatus) (\s@ListRepositoriesForApprovalRuleTemplateResponse' {} a -> s {httpStatus = a} :: ListRepositoriesForApprovalRuleTemplateResponse)
+
+instance
+  Prelude.NFData
+    ListRepositoriesForApprovalRuleTemplateResponse
+  where
+  rnf
+    ListRepositoriesForApprovalRuleTemplateResponse' {..} =
+      Prelude.rnf nextToken
+        `Prelude.seq` Prelude.rnf repositoryNames
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/ListTagsForResource.hs b/gen/Amazonka/CodeCommit/ListTagsForResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/ListTagsForResource.hs
@@ -0,0 +1,214 @@
+{-# 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.CodeCommit.ListTagsForResource
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets information about AWS tags for a specified Amazon Resource Name
+-- (ARN) in AWS CodeCommit. For a list of valid resources in AWS
+-- CodeCommit, see
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats CodeCommit Resources and Operations>
+-- in the /AWS CodeCommit User Guide/.
+module Amazonka.CodeCommit.ListTagsForResource
+  ( -- * Creating a Request
+    ListTagsForResource (..),
+    newListTagsForResource,
+
+    -- * Request Lenses
+    listTagsForResource_nextToken,
+    listTagsForResource_resourceArn,
+
+    -- * Destructuring the Response
+    ListTagsForResourceResponse (..),
+    newListTagsForResourceResponse,
+
+    -- * Response Lenses
+    listTagsForResourceResponse_nextToken,
+    listTagsForResourceResponse_tags,
+    listTagsForResourceResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newListTagsForResource' smart constructor.
+data ListTagsForResource = ListTagsForResource'
+  { -- | An enumeration token that, when provided in a request, returns the next
+    -- batch of the results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the resource for which you want to get
+    -- information about tags, if any.
+    resourceArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListTagsForResource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'nextToken', 'listTagsForResource_nextToken' - An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+--
+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) of the resource for which you want to get
+-- information about tags, if any.
+newListTagsForResource ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  ListTagsForResource
+newListTagsForResource pResourceArn_ =
+  ListTagsForResource'
+    { nextToken = Prelude.Nothing,
+      resourceArn = pResourceArn_
+    }
+
+-- | An enumeration token that, when provided in a request, returns the next
+-- batch of the results.
+listTagsForResource_nextToken :: Lens.Lens' ListTagsForResource (Prelude.Maybe Prelude.Text)
+listTagsForResource_nextToken = Lens.lens (\ListTagsForResource' {nextToken} -> nextToken) (\s@ListTagsForResource' {} a -> s {nextToken = a} :: ListTagsForResource)
+
+-- | The Amazon Resource Name (ARN) of the resource for which you want to get
+-- information about tags, if any.
+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text
+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)
+
+instance Core.AWSRequest ListTagsForResource where
+  type
+    AWSResponse ListTagsForResource =
+      ListTagsForResourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListTagsForResourceResponse'
+            Prelude.<$> (x Data..?> "nextToken")
+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListTagsForResource where
+  hashWithSalt _salt ListTagsForResource' {..} =
+    _salt
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` resourceArn
+
+instance Prelude.NFData ListTagsForResource where
+  rnf ListTagsForResource' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf resourceArn
+
+instance Data.ToHeaders ListTagsForResource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.ListTagsForResource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON ListTagsForResource where
+  toJSON ListTagsForResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("nextToken" Data..=) Prelude.<$> nextToken,
+            Prelude.Just ("resourceArn" Data..= resourceArn)
+          ]
+      )
+
+instance Data.ToPath ListTagsForResource where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery ListTagsForResource where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListTagsForResourceResponse' smart constructor.
+data ListTagsForResourceResponse = ListTagsForResourceResponse'
+  { -- | An enumeration token that allows the operation to batch the next results
+    -- of the operation.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | A list of tag key and value pairs associated with the specified
+    -- resource.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'nextToken', 'listTagsForResourceResponse_nextToken' - An enumeration token that allows the operation to batch the next results
+-- of the operation.
+--
+-- 'tags', 'listTagsForResourceResponse_tags' - A list of tag key and value pairs associated with the specified
+-- resource.
+--
+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.
+newListTagsForResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListTagsForResourceResponse
+newListTagsForResourceResponse pHttpStatus_ =
+  ListTagsForResourceResponse'
+    { nextToken =
+        Prelude.Nothing,
+      tags = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | An enumeration token that allows the operation to batch the next results
+-- of the operation.
+listTagsForResourceResponse_nextToken :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe Prelude.Text)
+listTagsForResourceResponse_nextToken = Lens.lens (\ListTagsForResourceResponse' {nextToken} -> nextToken) (\s@ListTagsForResourceResponse' {} a -> s {nextToken = a} :: ListTagsForResourceResponse)
+
+-- | A list of tag key and value pairs associated with the specified
+-- resource.
+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int
+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)
+
+instance Prelude.NFData ListTagsForResourceResponse where
+  rnf ListTagsForResourceResponse' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/MergeBranchesByFastForward.hs b/gen/Amazonka/CodeCommit/MergeBranchesByFastForward.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/MergeBranchesByFastForward.hs
@@ -0,0 +1,249 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.MergeBranchesByFastForward
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Merges two branches using the fast-forward merge strategy.
+module Amazonka.CodeCommit.MergeBranchesByFastForward
+  ( -- * Creating a Request
+    MergeBranchesByFastForward (..),
+    newMergeBranchesByFastForward,
+
+    -- * Request Lenses
+    mergeBranchesByFastForward_targetBranch,
+    mergeBranchesByFastForward_repositoryName,
+    mergeBranchesByFastForward_sourceCommitSpecifier,
+    mergeBranchesByFastForward_destinationCommitSpecifier,
+
+    -- * Destructuring the Response
+    MergeBranchesByFastForwardResponse (..),
+    newMergeBranchesByFastForwardResponse,
+
+    -- * Response Lenses
+    mergeBranchesByFastForwardResponse_commitId,
+    mergeBranchesByFastForwardResponse_treeId,
+    mergeBranchesByFastForwardResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newMergeBranchesByFastForward' smart constructor.
+data MergeBranchesByFastForward = MergeBranchesByFastForward'
+  { -- | The branch where the merge is applied.
+    targetBranch :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where you want to merge two branches.
+    repositoryName :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    sourceCommitSpecifier :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    destinationCommitSpecifier :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergeBranchesByFastForward' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'targetBranch', 'mergeBranchesByFastForward_targetBranch' - The branch where the merge is applied.
+--
+-- 'repositoryName', 'mergeBranchesByFastForward_repositoryName' - The name of the repository where you want to merge two branches.
+--
+-- 'sourceCommitSpecifier', 'mergeBranchesByFastForward_sourceCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'destinationCommitSpecifier', 'mergeBranchesByFastForward_destinationCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+newMergeBranchesByFastForward ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'sourceCommitSpecifier'
+  Prelude.Text ->
+  -- | 'destinationCommitSpecifier'
+  Prelude.Text ->
+  MergeBranchesByFastForward
+newMergeBranchesByFastForward
+  pRepositoryName_
+  pSourceCommitSpecifier_
+  pDestinationCommitSpecifier_ =
+    MergeBranchesByFastForward'
+      { targetBranch =
+          Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        sourceCommitSpecifier = pSourceCommitSpecifier_,
+        destinationCommitSpecifier =
+          pDestinationCommitSpecifier_
+      }
+
+-- | The branch where the merge is applied.
+mergeBranchesByFastForward_targetBranch :: Lens.Lens' MergeBranchesByFastForward (Prelude.Maybe Prelude.Text)
+mergeBranchesByFastForward_targetBranch = Lens.lens (\MergeBranchesByFastForward' {targetBranch} -> targetBranch) (\s@MergeBranchesByFastForward' {} a -> s {targetBranch = a} :: MergeBranchesByFastForward)
+
+-- | The name of the repository where you want to merge two branches.
+mergeBranchesByFastForward_repositoryName :: Lens.Lens' MergeBranchesByFastForward Prelude.Text
+mergeBranchesByFastForward_repositoryName = Lens.lens (\MergeBranchesByFastForward' {repositoryName} -> repositoryName) (\s@MergeBranchesByFastForward' {} a -> s {repositoryName = a} :: MergeBranchesByFastForward)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+mergeBranchesByFastForward_sourceCommitSpecifier :: Lens.Lens' MergeBranchesByFastForward Prelude.Text
+mergeBranchesByFastForward_sourceCommitSpecifier = Lens.lens (\MergeBranchesByFastForward' {sourceCommitSpecifier} -> sourceCommitSpecifier) (\s@MergeBranchesByFastForward' {} a -> s {sourceCommitSpecifier = a} :: MergeBranchesByFastForward)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+mergeBranchesByFastForward_destinationCommitSpecifier :: Lens.Lens' MergeBranchesByFastForward Prelude.Text
+mergeBranchesByFastForward_destinationCommitSpecifier = Lens.lens (\MergeBranchesByFastForward' {destinationCommitSpecifier} -> destinationCommitSpecifier) (\s@MergeBranchesByFastForward' {} a -> s {destinationCommitSpecifier = a} :: MergeBranchesByFastForward)
+
+instance Core.AWSRequest MergeBranchesByFastForward where
+  type
+    AWSResponse MergeBranchesByFastForward =
+      MergeBranchesByFastForwardResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          MergeBranchesByFastForwardResponse'
+            Prelude.<$> (x Data..?> "commitId")
+            Prelude.<*> (x Data..?> "treeId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable MergeBranchesByFastForward where
+  hashWithSalt _salt MergeBranchesByFastForward' {..} =
+    _salt
+      `Prelude.hashWithSalt` targetBranch
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` sourceCommitSpecifier
+      `Prelude.hashWithSalt` destinationCommitSpecifier
+
+instance Prelude.NFData MergeBranchesByFastForward where
+  rnf MergeBranchesByFastForward' {..} =
+    Prelude.rnf targetBranch
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf sourceCommitSpecifier
+      `Prelude.seq` Prelude.rnf destinationCommitSpecifier
+
+instance Data.ToHeaders MergeBranchesByFastForward where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.MergeBranchesByFastForward" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON MergeBranchesByFastForward where
+  toJSON MergeBranchesByFastForward' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("targetBranch" Data..=) Prelude.<$> targetBranch,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ( "sourceCommitSpecifier"
+                  Data..= sourceCommitSpecifier
+              ),
+            Prelude.Just
+              ( "destinationCommitSpecifier"
+                  Data..= destinationCommitSpecifier
+              )
+          ]
+      )
+
+instance Data.ToPath MergeBranchesByFastForward where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery MergeBranchesByFastForward where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newMergeBranchesByFastForwardResponse' smart constructor.
+data MergeBranchesByFastForwardResponse = MergeBranchesByFastForwardResponse'
+  { -- | The commit ID of the merge in the destination or target branch.
+    commitId :: Prelude.Maybe Prelude.Text,
+    -- | The tree ID of the merge in the destination or target branch.
+    treeId :: 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 'MergeBranchesByFastForwardResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commitId', 'mergeBranchesByFastForwardResponse_commitId' - The commit ID of the merge in the destination or target branch.
+--
+-- 'treeId', 'mergeBranchesByFastForwardResponse_treeId' - The tree ID of the merge in the destination or target branch.
+--
+-- 'httpStatus', 'mergeBranchesByFastForwardResponse_httpStatus' - The response's http status code.
+newMergeBranchesByFastForwardResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  MergeBranchesByFastForwardResponse
+newMergeBranchesByFastForwardResponse pHttpStatus_ =
+  MergeBranchesByFastForwardResponse'
+    { commitId =
+        Prelude.Nothing,
+      treeId = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The commit ID of the merge in the destination or target branch.
+mergeBranchesByFastForwardResponse_commitId :: Lens.Lens' MergeBranchesByFastForwardResponse (Prelude.Maybe Prelude.Text)
+mergeBranchesByFastForwardResponse_commitId = Lens.lens (\MergeBranchesByFastForwardResponse' {commitId} -> commitId) (\s@MergeBranchesByFastForwardResponse' {} a -> s {commitId = a} :: MergeBranchesByFastForwardResponse)
+
+-- | The tree ID of the merge in the destination or target branch.
+mergeBranchesByFastForwardResponse_treeId :: Lens.Lens' MergeBranchesByFastForwardResponse (Prelude.Maybe Prelude.Text)
+mergeBranchesByFastForwardResponse_treeId = Lens.lens (\MergeBranchesByFastForwardResponse' {treeId} -> treeId) (\s@MergeBranchesByFastForwardResponse' {} a -> s {treeId = a} :: MergeBranchesByFastForwardResponse)
+
+-- | The response's http status code.
+mergeBranchesByFastForwardResponse_httpStatus :: Lens.Lens' MergeBranchesByFastForwardResponse Prelude.Int
+mergeBranchesByFastForwardResponse_httpStatus = Lens.lens (\MergeBranchesByFastForwardResponse' {httpStatus} -> httpStatus) (\s@MergeBranchesByFastForwardResponse' {} a -> s {httpStatus = a} :: MergeBranchesByFastForwardResponse)
+
+instance
+  Prelude.NFData
+    MergeBranchesByFastForwardResponse
+  where
+  rnf MergeBranchesByFastForwardResponse' {..} =
+    Prelude.rnf commitId
+      `Prelude.seq` Prelude.rnf treeId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/MergeBranchesBySquash.hs b/gen/Amazonka/CodeCommit/MergeBranchesBySquash.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/MergeBranchesBySquash.hs
@@ -0,0 +1,380 @@
+{-# 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.CodeCommit.MergeBranchesBySquash
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Merges two branches using the squash merge strategy.
+module Amazonka.CodeCommit.MergeBranchesBySquash
+  ( -- * Creating a Request
+    MergeBranchesBySquash (..),
+    newMergeBranchesBySquash,
+
+    -- * Request Lenses
+    mergeBranchesBySquash_authorName,
+    mergeBranchesBySquash_commitMessage,
+    mergeBranchesBySquash_conflictDetailLevel,
+    mergeBranchesBySquash_conflictResolution,
+    mergeBranchesBySquash_conflictResolutionStrategy,
+    mergeBranchesBySquash_email,
+    mergeBranchesBySquash_keepEmptyFolders,
+    mergeBranchesBySquash_targetBranch,
+    mergeBranchesBySquash_repositoryName,
+    mergeBranchesBySquash_sourceCommitSpecifier,
+    mergeBranchesBySquash_destinationCommitSpecifier,
+
+    -- * Destructuring the Response
+    MergeBranchesBySquashResponse (..),
+    newMergeBranchesBySquashResponse,
+
+    -- * Response Lenses
+    mergeBranchesBySquashResponse_commitId,
+    mergeBranchesBySquashResponse_treeId,
+    mergeBranchesBySquashResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newMergeBranchesBySquash' smart constructor.
+data MergeBranchesBySquash = MergeBranchesBySquash'
+  { -- | The name of the author who created the commit. This information is used
+    -- as both the author and committer for the commit.
+    authorName :: Prelude.Maybe Prelude.Text,
+    -- | The commit message for the merge.
+    commitMessage :: Prelude.Maybe Prelude.Text,
+    -- | The level of conflict detail to use. If unspecified, the default
+    -- FILE_LEVEL is used, which returns a not-mergeable result if the same
+    -- file has differences in both branches. If LINE_LEVEL is specified, a
+    -- conflict is considered not mergeable if the same file in both branches
+    -- has differences on the same line.
+    conflictDetailLevel :: Prelude.Maybe ConflictDetailLevelTypeEnum,
+    -- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+    -- use when resolving conflicts during a merge.
+    conflictResolution :: Prelude.Maybe ConflictResolution,
+    -- | Specifies which branch to use when resolving conflicts, or whether to
+    -- attempt automatically merging two versions of a file. The default is
+    -- NONE, which requires any conflicts to be resolved manually before the
+    -- merge operation is successful.
+    conflictResolutionStrategy :: Prelude.Maybe ConflictResolutionStrategyTypeEnum,
+    -- | The email address of the person merging the branches. This information
+    -- is used in the commit information for the merge.
+    email :: Prelude.Maybe Prelude.Text,
+    -- | If the commit contains deletions, whether to keep a folder or folder
+    -- structure if the changes leave the folders empty. If this is specified
+    -- as true, a .gitkeep file is created for empty folders. The default is
+    -- false.
+    keepEmptyFolders :: Prelude.Maybe Prelude.Bool,
+    -- | The branch where the merge is applied.
+    targetBranch :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where you want to merge two branches.
+    repositoryName :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    sourceCommitSpecifier :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    destinationCommitSpecifier :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergeBranchesBySquash' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authorName', 'mergeBranchesBySquash_authorName' - The name of the author who created the commit. This information is used
+-- as both the author and committer for the commit.
+--
+-- 'commitMessage', 'mergeBranchesBySquash_commitMessage' - The commit message for the merge.
+--
+-- 'conflictDetailLevel', 'mergeBranchesBySquash_conflictDetailLevel' - The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+--
+-- 'conflictResolution', 'mergeBranchesBySquash_conflictResolution' - If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+-- use when resolving conflicts during a merge.
+--
+-- 'conflictResolutionStrategy', 'mergeBranchesBySquash_conflictResolutionStrategy' - Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+--
+-- 'email', 'mergeBranchesBySquash_email' - The email address of the person merging the branches. This information
+-- is used in the commit information for the merge.
+--
+-- 'keepEmptyFolders', 'mergeBranchesBySquash_keepEmptyFolders' - If the commit contains deletions, whether to keep a folder or folder
+-- structure if the changes leave the folders empty. If this is specified
+-- as true, a .gitkeep file is created for empty folders. The default is
+-- false.
+--
+-- 'targetBranch', 'mergeBranchesBySquash_targetBranch' - The branch where the merge is applied.
+--
+-- 'repositoryName', 'mergeBranchesBySquash_repositoryName' - The name of the repository where you want to merge two branches.
+--
+-- 'sourceCommitSpecifier', 'mergeBranchesBySquash_sourceCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'destinationCommitSpecifier', 'mergeBranchesBySquash_destinationCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+newMergeBranchesBySquash ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'sourceCommitSpecifier'
+  Prelude.Text ->
+  -- | 'destinationCommitSpecifier'
+  Prelude.Text ->
+  MergeBranchesBySquash
+newMergeBranchesBySquash
+  pRepositoryName_
+  pSourceCommitSpecifier_
+  pDestinationCommitSpecifier_ =
+    MergeBranchesBySquash'
+      { authorName =
+          Prelude.Nothing,
+        commitMessage = Prelude.Nothing,
+        conflictDetailLevel = Prelude.Nothing,
+        conflictResolution = Prelude.Nothing,
+        conflictResolutionStrategy = Prelude.Nothing,
+        email = Prelude.Nothing,
+        keepEmptyFolders = Prelude.Nothing,
+        targetBranch = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        sourceCommitSpecifier = pSourceCommitSpecifier_,
+        destinationCommitSpecifier =
+          pDestinationCommitSpecifier_
+      }
+
+-- | The name of the author who created the commit. This information is used
+-- as both the author and committer for the commit.
+mergeBranchesBySquash_authorName :: Lens.Lens' MergeBranchesBySquash (Prelude.Maybe Prelude.Text)
+mergeBranchesBySquash_authorName = Lens.lens (\MergeBranchesBySquash' {authorName} -> authorName) (\s@MergeBranchesBySquash' {} a -> s {authorName = a} :: MergeBranchesBySquash)
+
+-- | The commit message for the merge.
+mergeBranchesBySquash_commitMessage :: Lens.Lens' MergeBranchesBySquash (Prelude.Maybe Prelude.Text)
+mergeBranchesBySquash_commitMessage = Lens.lens (\MergeBranchesBySquash' {commitMessage} -> commitMessage) (\s@MergeBranchesBySquash' {} a -> s {commitMessage = a} :: MergeBranchesBySquash)
+
+-- | The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+mergeBranchesBySquash_conflictDetailLevel :: Lens.Lens' MergeBranchesBySquash (Prelude.Maybe ConflictDetailLevelTypeEnum)
+mergeBranchesBySquash_conflictDetailLevel = Lens.lens (\MergeBranchesBySquash' {conflictDetailLevel} -> conflictDetailLevel) (\s@MergeBranchesBySquash' {} a -> s {conflictDetailLevel = a} :: MergeBranchesBySquash)
+
+-- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+-- use when resolving conflicts during a merge.
+mergeBranchesBySquash_conflictResolution :: Lens.Lens' MergeBranchesBySquash (Prelude.Maybe ConflictResolution)
+mergeBranchesBySquash_conflictResolution = Lens.lens (\MergeBranchesBySquash' {conflictResolution} -> conflictResolution) (\s@MergeBranchesBySquash' {} a -> s {conflictResolution = a} :: MergeBranchesBySquash)
+
+-- | Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+mergeBranchesBySquash_conflictResolutionStrategy :: Lens.Lens' MergeBranchesBySquash (Prelude.Maybe ConflictResolutionStrategyTypeEnum)
+mergeBranchesBySquash_conflictResolutionStrategy = Lens.lens (\MergeBranchesBySquash' {conflictResolutionStrategy} -> conflictResolutionStrategy) (\s@MergeBranchesBySquash' {} a -> s {conflictResolutionStrategy = a} :: MergeBranchesBySquash)
+
+-- | The email address of the person merging the branches. This information
+-- is used in the commit information for the merge.
+mergeBranchesBySquash_email :: Lens.Lens' MergeBranchesBySquash (Prelude.Maybe Prelude.Text)
+mergeBranchesBySquash_email = Lens.lens (\MergeBranchesBySquash' {email} -> email) (\s@MergeBranchesBySquash' {} a -> s {email = a} :: MergeBranchesBySquash)
+
+-- | If the commit contains deletions, whether to keep a folder or folder
+-- structure if the changes leave the folders empty. If this is specified
+-- as true, a .gitkeep file is created for empty folders. The default is
+-- false.
+mergeBranchesBySquash_keepEmptyFolders :: Lens.Lens' MergeBranchesBySquash (Prelude.Maybe Prelude.Bool)
+mergeBranchesBySquash_keepEmptyFolders = Lens.lens (\MergeBranchesBySquash' {keepEmptyFolders} -> keepEmptyFolders) (\s@MergeBranchesBySquash' {} a -> s {keepEmptyFolders = a} :: MergeBranchesBySquash)
+
+-- | The branch where the merge is applied.
+mergeBranchesBySquash_targetBranch :: Lens.Lens' MergeBranchesBySquash (Prelude.Maybe Prelude.Text)
+mergeBranchesBySquash_targetBranch = Lens.lens (\MergeBranchesBySquash' {targetBranch} -> targetBranch) (\s@MergeBranchesBySquash' {} a -> s {targetBranch = a} :: MergeBranchesBySquash)
+
+-- | The name of the repository where you want to merge two branches.
+mergeBranchesBySquash_repositoryName :: Lens.Lens' MergeBranchesBySquash Prelude.Text
+mergeBranchesBySquash_repositoryName = Lens.lens (\MergeBranchesBySquash' {repositoryName} -> repositoryName) (\s@MergeBranchesBySquash' {} a -> s {repositoryName = a} :: MergeBranchesBySquash)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+mergeBranchesBySquash_sourceCommitSpecifier :: Lens.Lens' MergeBranchesBySquash Prelude.Text
+mergeBranchesBySquash_sourceCommitSpecifier = Lens.lens (\MergeBranchesBySquash' {sourceCommitSpecifier} -> sourceCommitSpecifier) (\s@MergeBranchesBySquash' {} a -> s {sourceCommitSpecifier = a} :: MergeBranchesBySquash)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+mergeBranchesBySquash_destinationCommitSpecifier :: Lens.Lens' MergeBranchesBySquash Prelude.Text
+mergeBranchesBySquash_destinationCommitSpecifier = Lens.lens (\MergeBranchesBySquash' {destinationCommitSpecifier} -> destinationCommitSpecifier) (\s@MergeBranchesBySquash' {} a -> s {destinationCommitSpecifier = a} :: MergeBranchesBySquash)
+
+instance Core.AWSRequest MergeBranchesBySquash where
+  type
+    AWSResponse MergeBranchesBySquash =
+      MergeBranchesBySquashResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          MergeBranchesBySquashResponse'
+            Prelude.<$> (x Data..?> "commitId")
+            Prelude.<*> (x Data..?> "treeId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable MergeBranchesBySquash where
+  hashWithSalt _salt MergeBranchesBySquash' {..} =
+    _salt
+      `Prelude.hashWithSalt` authorName
+      `Prelude.hashWithSalt` commitMessage
+      `Prelude.hashWithSalt` conflictDetailLevel
+      `Prelude.hashWithSalt` conflictResolution
+      `Prelude.hashWithSalt` conflictResolutionStrategy
+      `Prelude.hashWithSalt` email
+      `Prelude.hashWithSalt` keepEmptyFolders
+      `Prelude.hashWithSalt` targetBranch
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` sourceCommitSpecifier
+      `Prelude.hashWithSalt` destinationCommitSpecifier
+
+instance Prelude.NFData MergeBranchesBySquash where
+  rnf MergeBranchesBySquash' {..} =
+    Prelude.rnf authorName
+      `Prelude.seq` Prelude.rnf commitMessage
+      `Prelude.seq` Prelude.rnf conflictDetailLevel
+      `Prelude.seq` Prelude.rnf conflictResolution
+      `Prelude.seq` Prelude.rnf conflictResolutionStrategy
+      `Prelude.seq` Prelude.rnf email
+      `Prelude.seq` Prelude.rnf keepEmptyFolders
+      `Prelude.seq` Prelude.rnf targetBranch
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf sourceCommitSpecifier
+      `Prelude.seq` Prelude.rnf destinationCommitSpecifier
+
+instance Data.ToHeaders MergeBranchesBySquash where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.MergeBranchesBySquash" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON MergeBranchesBySquash where
+  toJSON MergeBranchesBySquash' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("authorName" Data..=) Prelude.<$> authorName,
+            ("commitMessage" Data..=) Prelude.<$> commitMessage,
+            ("conflictDetailLevel" Data..=)
+              Prelude.<$> conflictDetailLevel,
+            ("conflictResolution" Data..=)
+              Prelude.<$> conflictResolution,
+            ("conflictResolutionStrategy" Data..=)
+              Prelude.<$> conflictResolutionStrategy,
+            ("email" Data..=) Prelude.<$> email,
+            ("keepEmptyFolders" Data..=)
+              Prelude.<$> keepEmptyFolders,
+            ("targetBranch" Data..=) Prelude.<$> targetBranch,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ( "sourceCommitSpecifier"
+                  Data..= sourceCommitSpecifier
+              ),
+            Prelude.Just
+              ( "destinationCommitSpecifier"
+                  Data..= destinationCommitSpecifier
+              )
+          ]
+      )
+
+instance Data.ToPath MergeBranchesBySquash where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery MergeBranchesBySquash where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newMergeBranchesBySquashResponse' smart constructor.
+data MergeBranchesBySquashResponse = MergeBranchesBySquashResponse'
+  { -- | The commit ID of the merge in the destination or target branch.
+    commitId :: Prelude.Maybe Prelude.Text,
+    -- | The tree ID of the merge in the destination or target branch.
+    treeId :: 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 'MergeBranchesBySquashResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commitId', 'mergeBranchesBySquashResponse_commitId' - The commit ID of the merge in the destination or target branch.
+--
+-- 'treeId', 'mergeBranchesBySquashResponse_treeId' - The tree ID of the merge in the destination or target branch.
+--
+-- 'httpStatus', 'mergeBranchesBySquashResponse_httpStatus' - The response's http status code.
+newMergeBranchesBySquashResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  MergeBranchesBySquashResponse
+newMergeBranchesBySquashResponse pHttpStatus_ =
+  MergeBranchesBySquashResponse'
+    { commitId =
+        Prelude.Nothing,
+      treeId = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The commit ID of the merge in the destination or target branch.
+mergeBranchesBySquashResponse_commitId :: Lens.Lens' MergeBranchesBySquashResponse (Prelude.Maybe Prelude.Text)
+mergeBranchesBySquashResponse_commitId = Lens.lens (\MergeBranchesBySquashResponse' {commitId} -> commitId) (\s@MergeBranchesBySquashResponse' {} a -> s {commitId = a} :: MergeBranchesBySquashResponse)
+
+-- | The tree ID of the merge in the destination or target branch.
+mergeBranchesBySquashResponse_treeId :: Lens.Lens' MergeBranchesBySquashResponse (Prelude.Maybe Prelude.Text)
+mergeBranchesBySquashResponse_treeId = Lens.lens (\MergeBranchesBySquashResponse' {treeId} -> treeId) (\s@MergeBranchesBySquashResponse' {} a -> s {treeId = a} :: MergeBranchesBySquashResponse)
+
+-- | The response's http status code.
+mergeBranchesBySquashResponse_httpStatus :: Lens.Lens' MergeBranchesBySquashResponse Prelude.Int
+mergeBranchesBySquashResponse_httpStatus = Lens.lens (\MergeBranchesBySquashResponse' {httpStatus} -> httpStatus) (\s@MergeBranchesBySquashResponse' {} a -> s {httpStatus = a} :: MergeBranchesBySquashResponse)
+
+instance Prelude.NFData MergeBranchesBySquashResponse where
+  rnf MergeBranchesBySquashResponse' {..} =
+    Prelude.rnf commitId
+      `Prelude.seq` Prelude.rnf treeId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/MergeBranchesByThreeWay.hs b/gen/Amazonka/CodeCommit/MergeBranchesByThreeWay.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/MergeBranchesByThreeWay.hs
@@ -0,0 +1,380 @@
+{-# 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.CodeCommit.MergeBranchesByThreeWay
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Merges two specified branches using the three-way merge strategy.
+module Amazonka.CodeCommit.MergeBranchesByThreeWay
+  ( -- * Creating a Request
+    MergeBranchesByThreeWay (..),
+    newMergeBranchesByThreeWay,
+
+    -- * Request Lenses
+    mergeBranchesByThreeWay_authorName,
+    mergeBranchesByThreeWay_commitMessage,
+    mergeBranchesByThreeWay_conflictDetailLevel,
+    mergeBranchesByThreeWay_conflictResolution,
+    mergeBranchesByThreeWay_conflictResolutionStrategy,
+    mergeBranchesByThreeWay_email,
+    mergeBranchesByThreeWay_keepEmptyFolders,
+    mergeBranchesByThreeWay_targetBranch,
+    mergeBranchesByThreeWay_repositoryName,
+    mergeBranchesByThreeWay_sourceCommitSpecifier,
+    mergeBranchesByThreeWay_destinationCommitSpecifier,
+
+    -- * Destructuring the Response
+    MergeBranchesByThreeWayResponse (..),
+    newMergeBranchesByThreeWayResponse,
+
+    -- * Response Lenses
+    mergeBranchesByThreeWayResponse_commitId,
+    mergeBranchesByThreeWayResponse_treeId,
+    mergeBranchesByThreeWayResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newMergeBranchesByThreeWay' smart constructor.
+data MergeBranchesByThreeWay = MergeBranchesByThreeWay'
+  { -- | The name of the author who created the commit. This information is used
+    -- as both the author and committer for the commit.
+    authorName :: Prelude.Maybe Prelude.Text,
+    -- | The commit message to include in the commit information for the merge.
+    commitMessage :: Prelude.Maybe Prelude.Text,
+    -- | The level of conflict detail to use. If unspecified, the default
+    -- FILE_LEVEL is used, which returns a not-mergeable result if the same
+    -- file has differences in both branches. If LINE_LEVEL is specified, a
+    -- conflict is considered not mergeable if the same file in both branches
+    -- has differences on the same line.
+    conflictDetailLevel :: Prelude.Maybe ConflictDetailLevelTypeEnum,
+    -- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+    -- use when resolving conflicts during a merge.
+    conflictResolution :: Prelude.Maybe ConflictResolution,
+    -- | Specifies which branch to use when resolving conflicts, or whether to
+    -- attempt automatically merging two versions of a file. The default is
+    -- NONE, which requires any conflicts to be resolved manually before the
+    -- merge operation is successful.
+    conflictResolutionStrategy :: Prelude.Maybe ConflictResolutionStrategyTypeEnum,
+    -- | The email address of the person merging the branches. This information
+    -- is used in the commit information for the merge.
+    email :: Prelude.Maybe Prelude.Text,
+    -- | If the commit contains deletions, whether to keep a folder or folder
+    -- structure if the changes leave the folders empty. If true, a .gitkeep
+    -- file is created for empty folders. The default is false.
+    keepEmptyFolders :: Prelude.Maybe Prelude.Bool,
+    -- | The branch where the merge is applied.
+    targetBranch :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where you want to merge two branches.
+    repositoryName :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    sourceCommitSpecifier :: Prelude.Text,
+    -- | The branch, tag, HEAD, or other fully qualified reference used to
+    -- identify a commit (for example, a branch name or a full commit ID).
+    destinationCommitSpecifier :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergeBranchesByThreeWay' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authorName', 'mergeBranchesByThreeWay_authorName' - The name of the author who created the commit. This information is used
+-- as both the author and committer for the commit.
+--
+-- 'commitMessage', 'mergeBranchesByThreeWay_commitMessage' - The commit message to include in the commit information for the merge.
+--
+-- 'conflictDetailLevel', 'mergeBranchesByThreeWay_conflictDetailLevel' - The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+--
+-- 'conflictResolution', 'mergeBranchesByThreeWay_conflictResolution' - If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+-- use when resolving conflicts during a merge.
+--
+-- 'conflictResolutionStrategy', 'mergeBranchesByThreeWay_conflictResolutionStrategy' - Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+--
+-- 'email', 'mergeBranchesByThreeWay_email' - The email address of the person merging the branches. This information
+-- is used in the commit information for the merge.
+--
+-- 'keepEmptyFolders', 'mergeBranchesByThreeWay_keepEmptyFolders' - If the commit contains deletions, whether to keep a folder or folder
+-- structure if the changes leave the folders empty. If true, a .gitkeep
+-- file is created for empty folders. The default is false.
+--
+-- 'targetBranch', 'mergeBranchesByThreeWay_targetBranch' - The branch where the merge is applied.
+--
+-- 'repositoryName', 'mergeBranchesByThreeWay_repositoryName' - The name of the repository where you want to merge two branches.
+--
+-- 'sourceCommitSpecifier', 'mergeBranchesByThreeWay_sourceCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+--
+-- 'destinationCommitSpecifier', 'mergeBranchesByThreeWay_destinationCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+newMergeBranchesByThreeWay ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'sourceCommitSpecifier'
+  Prelude.Text ->
+  -- | 'destinationCommitSpecifier'
+  Prelude.Text ->
+  MergeBranchesByThreeWay
+newMergeBranchesByThreeWay
+  pRepositoryName_
+  pSourceCommitSpecifier_
+  pDestinationCommitSpecifier_ =
+    MergeBranchesByThreeWay'
+      { authorName =
+          Prelude.Nothing,
+        commitMessage = Prelude.Nothing,
+        conflictDetailLevel = Prelude.Nothing,
+        conflictResolution = Prelude.Nothing,
+        conflictResolutionStrategy = Prelude.Nothing,
+        email = Prelude.Nothing,
+        keepEmptyFolders = Prelude.Nothing,
+        targetBranch = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        sourceCommitSpecifier = pSourceCommitSpecifier_,
+        destinationCommitSpecifier =
+          pDestinationCommitSpecifier_
+      }
+
+-- | The name of the author who created the commit. This information is used
+-- as both the author and committer for the commit.
+mergeBranchesByThreeWay_authorName :: Lens.Lens' MergeBranchesByThreeWay (Prelude.Maybe Prelude.Text)
+mergeBranchesByThreeWay_authorName = Lens.lens (\MergeBranchesByThreeWay' {authorName} -> authorName) (\s@MergeBranchesByThreeWay' {} a -> s {authorName = a} :: MergeBranchesByThreeWay)
+
+-- | The commit message to include in the commit information for the merge.
+mergeBranchesByThreeWay_commitMessage :: Lens.Lens' MergeBranchesByThreeWay (Prelude.Maybe Prelude.Text)
+mergeBranchesByThreeWay_commitMessage = Lens.lens (\MergeBranchesByThreeWay' {commitMessage} -> commitMessage) (\s@MergeBranchesByThreeWay' {} a -> s {commitMessage = a} :: MergeBranchesByThreeWay)
+
+-- | The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+mergeBranchesByThreeWay_conflictDetailLevel :: Lens.Lens' MergeBranchesByThreeWay (Prelude.Maybe ConflictDetailLevelTypeEnum)
+mergeBranchesByThreeWay_conflictDetailLevel = Lens.lens (\MergeBranchesByThreeWay' {conflictDetailLevel} -> conflictDetailLevel) (\s@MergeBranchesByThreeWay' {} a -> s {conflictDetailLevel = a} :: MergeBranchesByThreeWay)
+
+-- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+-- use when resolving conflicts during a merge.
+mergeBranchesByThreeWay_conflictResolution :: Lens.Lens' MergeBranchesByThreeWay (Prelude.Maybe ConflictResolution)
+mergeBranchesByThreeWay_conflictResolution = Lens.lens (\MergeBranchesByThreeWay' {conflictResolution} -> conflictResolution) (\s@MergeBranchesByThreeWay' {} a -> s {conflictResolution = a} :: MergeBranchesByThreeWay)
+
+-- | Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+mergeBranchesByThreeWay_conflictResolutionStrategy :: Lens.Lens' MergeBranchesByThreeWay (Prelude.Maybe ConflictResolutionStrategyTypeEnum)
+mergeBranchesByThreeWay_conflictResolutionStrategy = Lens.lens (\MergeBranchesByThreeWay' {conflictResolutionStrategy} -> conflictResolutionStrategy) (\s@MergeBranchesByThreeWay' {} a -> s {conflictResolutionStrategy = a} :: MergeBranchesByThreeWay)
+
+-- | The email address of the person merging the branches. This information
+-- is used in the commit information for the merge.
+mergeBranchesByThreeWay_email :: Lens.Lens' MergeBranchesByThreeWay (Prelude.Maybe Prelude.Text)
+mergeBranchesByThreeWay_email = Lens.lens (\MergeBranchesByThreeWay' {email} -> email) (\s@MergeBranchesByThreeWay' {} a -> s {email = a} :: MergeBranchesByThreeWay)
+
+-- | If the commit contains deletions, whether to keep a folder or folder
+-- structure if the changes leave the folders empty. If true, a .gitkeep
+-- file is created for empty folders. The default is false.
+mergeBranchesByThreeWay_keepEmptyFolders :: Lens.Lens' MergeBranchesByThreeWay (Prelude.Maybe Prelude.Bool)
+mergeBranchesByThreeWay_keepEmptyFolders = Lens.lens (\MergeBranchesByThreeWay' {keepEmptyFolders} -> keepEmptyFolders) (\s@MergeBranchesByThreeWay' {} a -> s {keepEmptyFolders = a} :: MergeBranchesByThreeWay)
+
+-- | The branch where the merge is applied.
+mergeBranchesByThreeWay_targetBranch :: Lens.Lens' MergeBranchesByThreeWay (Prelude.Maybe Prelude.Text)
+mergeBranchesByThreeWay_targetBranch = Lens.lens (\MergeBranchesByThreeWay' {targetBranch} -> targetBranch) (\s@MergeBranchesByThreeWay' {} a -> s {targetBranch = a} :: MergeBranchesByThreeWay)
+
+-- | The name of the repository where you want to merge two branches.
+mergeBranchesByThreeWay_repositoryName :: Lens.Lens' MergeBranchesByThreeWay Prelude.Text
+mergeBranchesByThreeWay_repositoryName = Lens.lens (\MergeBranchesByThreeWay' {repositoryName} -> repositoryName) (\s@MergeBranchesByThreeWay' {} a -> s {repositoryName = a} :: MergeBranchesByThreeWay)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+mergeBranchesByThreeWay_sourceCommitSpecifier :: Lens.Lens' MergeBranchesByThreeWay Prelude.Text
+mergeBranchesByThreeWay_sourceCommitSpecifier = Lens.lens (\MergeBranchesByThreeWay' {sourceCommitSpecifier} -> sourceCommitSpecifier) (\s@MergeBranchesByThreeWay' {} a -> s {sourceCommitSpecifier = a} :: MergeBranchesByThreeWay)
+
+-- | The branch, tag, HEAD, or other fully qualified reference used to
+-- identify a commit (for example, a branch name or a full commit ID).
+mergeBranchesByThreeWay_destinationCommitSpecifier :: Lens.Lens' MergeBranchesByThreeWay Prelude.Text
+mergeBranchesByThreeWay_destinationCommitSpecifier = Lens.lens (\MergeBranchesByThreeWay' {destinationCommitSpecifier} -> destinationCommitSpecifier) (\s@MergeBranchesByThreeWay' {} a -> s {destinationCommitSpecifier = a} :: MergeBranchesByThreeWay)
+
+instance Core.AWSRequest MergeBranchesByThreeWay where
+  type
+    AWSResponse MergeBranchesByThreeWay =
+      MergeBranchesByThreeWayResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          MergeBranchesByThreeWayResponse'
+            Prelude.<$> (x Data..?> "commitId")
+            Prelude.<*> (x Data..?> "treeId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable MergeBranchesByThreeWay where
+  hashWithSalt _salt MergeBranchesByThreeWay' {..} =
+    _salt
+      `Prelude.hashWithSalt` authorName
+      `Prelude.hashWithSalt` commitMessage
+      `Prelude.hashWithSalt` conflictDetailLevel
+      `Prelude.hashWithSalt` conflictResolution
+      `Prelude.hashWithSalt` conflictResolutionStrategy
+      `Prelude.hashWithSalt` email
+      `Prelude.hashWithSalt` keepEmptyFolders
+      `Prelude.hashWithSalt` targetBranch
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` sourceCommitSpecifier
+      `Prelude.hashWithSalt` destinationCommitSpecifier
+
+instance Prelude.NFData MergeBranchesByThreeWay where
+  rnf MergeBranchesByThreeWay' {..} =
+    Prelude.rnf authorName
+      `Prelude.seq` Prelude.rnf commitMessage
+      `Prelude.seq` Prelude.rnf conflictDetailLevel
+      `Prelude.seq` Prelude.rnf conflictResolution
+      `Prelude.seq` Prelude.rnf conflictResolutionStrategy
+      `Prelude.seq` Prelude.rnf email
+      `Prelude.seq` Prelude.rnf keepEmptyFolders
+      `Prelude.seq` Prelude.rnf targetBranch
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf sourceCommitSpecifier
+      `Prelude.seq` Prelude.rnf destinationCommitSpecifier
+
+instance Data.ToHeaders MergeBranchesByThreeWay where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.MergeBranchesByThreeWay" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON MergeBranchesByThreeWay where
+  toJSON MergeBranchesByThreeWay' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("authorName" Data..=) Prelude.<$> authorName,
+            ("commitMessage" Data..=) Prelude.<$> commitMessage,
+            ("conflictDetailLevel" Data..=)
+              Prelude.<$> conflictDetailLevel,
+            ("conflictResolution" Data..=)
+              Prelude.<$> conflictResolution,
+            ("conflictResolutionStrategy" Data..=)
+              Prelude.<$> conflictResolutionStrategy,
+            ("email" Data..=) Prelude.<$> email,
+            ("keepEmptyFolders" Data..=)
+              Prelude.<$> keepEmptyFolders,
+            ("targetBranch" Data..=) Prelude.<$> targetBranch,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ( "sourceCommitSpecifier"
+                  Data..= sourceCommitSpecifier
+              ),
+            Prelude.Just
+              ( "destinationCommitSpecifier"
+                  Data..= destinationCommitSpecifier
+              )
+          ]
+      )
+
+instance Data.ToPath MergeBranchesByThreeWay where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery MergeBranchesByThreeWay where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newMergeBranchesByThreeWayResponse' smart constructor.
+data MergeBranchesByThreeWayResponse = MergeBranchesByThreeWayResponse'
+  { -- | The commit ID of the merge in the destination or target branch.
+    commitId :: Prelude.Maybe Prelude.Text,
+    -- | The tree ID of the merge in the destination or target branch.
+    treeId :: 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 'MergeBranchesByThreeWayResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commitId', 'mergeBranchesByThreeWayResponse_commitId' - The commit ID of the merge in the destination or target branch.
+--
+-- 'treeId', 'mergeBranchesByThreeWayResponse_treeId' - The tree ID of the merge in the destination or target branch.
+--
+-- 'httpStatus', 'mergeBranchesByThreeWayResponse_httpStatus' - The response's http status code.
+newMergeBranchesByThreeWayResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  MergeBranchesByThreeWayResponse
+newMergeBranchesByThreeWayResponse pHttpStatus_ =
+  MergeBranchesByThreeWayResponse'
+    { commitId =
+        Prelude.Nothing,
+      treeId = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The commit ID of the merge in the destination or target branch.
+mergeBranchesByThreeWayResponse_commitId :: Lens.Lens' MergeBranchesByThreeWayResponse (Prelude.Maybe Prelude.Text)
+mergeBranchesByThreeWayResponse_commitId = Lens.lens (\MergeBranchesByThreeWayResponse' {commitId} -> commitId) (\s@MergeBranchesByThreeWayResponse' {} a -> s {commitId = a} :: MergeBranchesByThreeWayResponse)
+
+-- | The tree ID of the merge in the destination or target branch.
+mergeBranchesByThreeWayResponse_treeId :: Lens.Lens' MergeBranchesByThreeWayResponse (Prelude.Maybe Prelude.Text)
+mergeBranchesByThreeWayResponse_treeId = Lens.lens (\MergeBranchesByThreeWayResponse' {treeId} -> treeId) (\s@MergeBranchesByThreeWayResponse' {} a -> s {treeId = a} :: MergeBranchesByThreeWayResponse)
+
+-- | The response's http status code.
+mergeBranchesByThreeWayResponse_httpStatus :: Lens.Lens' MergeBranchesByThreeWayResponse Prelude.Int
+mergeBranchesByThreeWayResponse_httpStatus = Lens.lens (\MergeBranchesByThreeWayResponse' {httpStatus} -> httpStatus) (\s@MergeBranchesByThreeWayResponse' {} a -> s {httpStatus = a} :: MergeBranchesByThreeWayResponse)
+
+instance
+  Prelude.NFData
+    MergeBranchesByThreeWayResponse
+  where
+  rnf MergeBranchesByThreeWayResponse' {..} =
+    Prelude.rnf commitId
+      `Prelude.seq` Prelude.rnf treeId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/MergePullRequestByFastForward.hs b/gen/Amazonka/CodeCommit/MergePullRequestByFastForward.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/MergePullRequestByFastForward.hs
@@ -0,0 +1,230 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.MergePullRequestByFastForward
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Attempts to merge the source commit of a pull request into the specified
+-- destination branch for that pull request at the specified commit using
+-- the fast-forward merge strategy. If the merge is successful, it closes
+-- the pull request.
+module Amazonka.CodeCommit.MergePullRequestByFastForward
+  ( -- * Creating a Request
+    MergePullRequestByFastForward (..),
+    newMergePullRequestByFastForward,
+
+    -- * Request Lenses
+    mergePullRequestByFastForward_sourceCommitId,
+    mergePullRequestByFastForward_pullRequestId,
+    mergePullRequestByFastForward_repositoryName,
+
+    -- * Destructuring the Response
+    MergePullRequestByFastForwardResponse (..),
+    newMergePullRequestByFastForwardResponse,
+
+    -- * Response Lenses
+    mergePullRequestByFastForwardResponse_pullRequest,
+    mergePullRequestByFastForwardResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newMergePullRequestByFastForward' smart constructor.
+data MergePullRequestByFastForward = MergePullRequestByFastForward'
+  { -- | The full commit ID of the original or updated commit in the pull request
+    -- source branch. Pass this value if you want an exception thrown if the
+    -- current commit ID of the tip of the source branch does not match this
+    -- commit ID.
+    sourceCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The system-generated ID of the pull request. To get this ID, use
+    -- ListPullRequests.
+    pullRequestId :: Prelude.Text,
+    -- | The name of the repository where the pull request was created.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergePullRequestByFastForward' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'sourceCommitId', 'mergePullRequestByFastForward_sourceCommitId' - The full commit ID of the original or updated commit in the pull request
+-- source branch. Pass this value if you want an exception thrown if the
+-- current commit ID of the tip of the source branch does not match this
+-- commit ID.
+--
+-- 'pullRequestId', 'mergePullRequestByFastForward_pullRequestId' - The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+--
+-- 'repositoryName', 'mergePullRequestByFastForward_repositoryName' - The name of the repository where the pull request was created.
+newMergePullRequestByFastForward ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'repositoryName'
+  Prelude.Text ->
+  MergePullRequestByFastForward
+newMergePullRequestByFastForward
+  pPullRequestId_
+  pRepositoryName_ =
+    MergePullRequestByFastForward'
+      { sourceCommitId =
+          Prelude.Nothing,
+        pullRequestId = pPullRequestId_,
+        repositoryName = pRepositoryName_
+      }
+
+-- | The full commit ID of the original or updated commit in the pull request
+-- source branch. Pass this value if you want an exception thrown if the
+-- current commit ID of the tip of the source branch does not match this
+-- commit ID.
+mergePullRequestByFastForward_sourceCommitId :: Lens.Lens' MergePullRequestByFastForward (Prelude.Maybe Prelude.Text)
+mergePullRequestByFastForward_sourceCommitId = Lens.lens (\MergePullRequestByFastForward' {sourceCommitId} -> sourceCommitId) (\s@MergePullRequestByFastForward' {} a -> s {sourceCommitId = a} :: MergePullRequestByFastForward)
+
+-- | The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+mergePullRequestByFastForward_pullRequestId :: Lens.Lens' MergePullRequestByFastForward Prelude.Text
+mergePullRequestByFastForward_pullRequestId = Lens.lens (\MergePullRequestByFastForward' {pullRequestId} -> pullRequestId) (\s@MergePullRequestByFastForward' {} a -> s {pullRequestId = a} :: MergePullRequestByFastForward)
+
+-- | The name of the repository where the pull request was created.
+mergePullRequestByFastForward_repositoryName :: Lens.Lens' MergePullRequestByFastForward Prelude.Text
+mergePullRequestByFastForward_repositoryName = Lens.lens (\MergePullRequestByFastForward' {repositoryName} -> repositoryName) (\s@MergePullRequestByFastForward' {} a -> s {repositoryName = a} :: MergePullRequestByFastForward)
+
+instance
+  Core.AWSRequest
+    MergePullRequestByFastForward
+  where
+  type
+    AWSResponse MergePullRequestByFastForward =
+      MergePullRequestByFastForwardResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          MergePullRequestByFastForwardResponse'
+            Prelude.<$> (x Data..?> "pullRequest")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    MergePullRequestByFastForward
+  where
+  hashWithSalt _salt MergePullRequestByFastForward' {..} =
+    _salt
+      `Prelude.hashWithSalt` sourceCommitId
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData MergePullRequestByFastForward where
+  rnf MergePullRequestByFastForward' {..} =
+    Prelude.rnf sourceCommitId
+      `Prelude.seq` Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf repositoryName
+
+instance Data.ToHeaders MergePullRequestByFastForward where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.MergePullRequestByFastForward" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON MergePullRequestByFastForward where
+  toJSON MergePullRequestByFastForward' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("sourceCommitId" Data..=)
+              Prelude.<$> sourceCommitId,
+            Prelude.Just ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName)
+          ]
+      )
+
+instance Data.ToPath MergePullRequestByFastForward where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery MergePullRequestByFastForward where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newMergePullRequestByFastForwardResponse' smart constructor.
+data MergePullRequestByFastForwardResponse = MergePullRequestByFastForwardResponse'
+  { -- | Information about the specified pull request, including the merge.
+    pullRequest :: Prelude.Maybe PullRequest,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergePullRequestByFastForwardResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequest', 'mergePullRequestByFastForwardResponse_pullRequest' - Information about the specified pull request, including the merge.
+--
+-- 'httpStatus', 'mergePullRequestByFastForwardResponse_httpStatus' - The response's http status code.
+newMergePullRequestByFastForwardResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  MergePullRequestByFastForwardResponse
+newMergePullRequestByFastForwardResponse pHttpStatus_ =
+  MergePullRequestByFastForwardResponse'
+    { pullRequest =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about the specified pull request, including the merge.
+mergePullRequestByFastForwardResponse_pullRequest :: Lens.Lens' MergePullRequestByFastForwardResponse (Prelude.Maybe PullRequest)
+mergePullRequestByFastForwardResponse_pullRequest = Lens.lens (\MergePullRequestByFastForwardResponse' {pullRequest} -> pullRequest) (\s@MergePullRequestByFastForwardResponse' {} a -> s {pullRequest = a} :: MergePullRequestByFastForwardResponse)
+
+-- | The response's http status code.
+mergePullRequestByFastForwardResponse_httpStatus :: Lens.Lens' MergePullRequestByFastForwardResponse Prelude.Int
+mergePullRequestByFastForwardResponse_httpStatus = Lens.lens (\MergePullRequestByFastForwardResponse' {httpStatus} -> httpStatus) (\s@MergePullRequestByFastForwardResponse' {} a -> s {httpStatus = a} :: MergePullRequestByFastForwardResponse)
+
+instance
+  Prelude.NFData
+    MergePullRequestByFastForwardResponse
+  where
+  rnf MergePullRequestByFastForwardResponse' {..} =
+    Prelude.rnf pullRequest
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/MergePullRequestBySquash.hs b/gen/Amazonka/CodeCommit/MergePullRequestBySquash.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/MergePullRequestBySquash.hs
@@ -0,0 +1,354 @@
+{-# 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.CodeCommit.MergePullRequestBySquash
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Attempts to merge the source commit of a pull request into the specified
+-- destination branch for that pull request at the specified commit using
+-- the squash merge strategy. If the merge is successful, it closes the
+-- pull request.
+module Amazonka.CodeCommit.MergePullRequestBySquash
+  ( -- * Creating a Request
+    MergePullRequestBySquash (..),
+    newMergePullRequestBySquash,
+
+    -- * Request Lenses
+    mergePullRequestBySquash_authorName,
+    mergePullRequestBySquash_commitMessage,
+    mergePullRequestBySquash_conflictDetailLevel,
+    mergePullRequestBySquash_conflictResolution,
+    mergePullRequestBySquash_conflictResolutionStrategy,
+    mergePullRequestBySquash_email,
+    mergePullRequestBySquash_keepEmptyFolders,
+    mergePullRequestBySquash_sourceCommitId,
+    mergePullRequestBySquash_pullRequestId,
+    mergePullRequestBySquash_repositoryName,
+
+    -- * Destructuring the Response
+    MergePullRequestBySquashResponse (..),
+    newMergePullRequestBySquashResponse,
+
+    -- * Response Lenses
+    mergePullRequestBySquashResponse_pullRequest,
+    mergePullRequestBySquashResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newMergePullRequestBySquash' smart constructor.
+data MergePullRequestBySquash = MergePullRequestBySquash'
+  { -- | The name of the author who created the commit. This information is used
+    -- as both the author and committer for the commit.
+    authorName :: Prelude.Maybe Prelude.Text,
+    -- | The commit message to include in the commit information for the merge.
+    commitMessage :: Prelude.Maybe Prelude.Text,
+    -- | The level of conflict detail to use. If unspecified, the default
+    -- FILE_LEVEL is used, which returns a not-mergeable result if the same
+    -- file has differences in both branches. If LINE_LEVEL is specified, a
+    -- conflict is considered not mergeable if the same file in both branches
+    -- has differences on the same line.
+    conflictDetailLevel :: Prelude.Maybe ConflictDetailLevelTypeEnum,
+    -- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+    -- use when resolving conflicts during a merge.
+    conflictResolution :: Prelude.Maybe ConflictResolution,
+    -- | Specifies which branch to use when resolving conflicts, or whether to
+    -- attempt automatically merging two versions of a file. The default is
+    -- NONE, which requires any conflicts to be resolved manually before the
+    -- merge operation is successful.
+    conflictResolutionStrategy :: Prelude.Maybe ConflictResolutionStrategyTypeEnum,
+    -- | The email address of the person merging the branches. This information
+    -- is used in the commit information for the merge.
+    email :: Prelude.Maybe Prelude.Text,
+    -- | If the commit contains deletions, whether to keep a folder or folder
+    -- structure if the changes leave the folders empty. If true, a .gitkeep
+    -- file is created for empty folders. The default is false.
+    keepEmptyFolders :: Prelude.Maybe Prelude.Bool,
+    -- | The full commit ID of the original or updated commit in the pull request
+    -- source branch. Pass this value if you want an exception thrown if the
+    -- current commit ID of the tip of the source branch does not match this
+    -- commit ID.
+    sourceCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The system-generated ID of the pull request. To get this ID, use
+    -- ListPullRequests.
+    pullRequestId :: Prelude.Text,
+    -- | The name of the repository where the pull request was created.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergePullRequestBySquash' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authorName', 'mergePullRequestBySquash_authorName' - The name of the author who created the commit. This information is used
+-- as both the author and committer for the commit.
+--
+-- 'commitMessage', 'mergePullRequestBySquash_commitMessage' - The commit message to include in the commit information for the merge.
+--
+-- 'conflictDetailLevel', 'mergePullRequestBySquash_conflictDetailLevel' - The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+--
+-- 'conflictResolution', 'mergePullRequestBySquash_conflictResolution' - If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+-- use when resolving conflicts during a merge.
+--
+-- 'conflictResolutionStrategy', 'mergePullRequestBySquash_conflictResolutionStrategy' - Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+--
+-- 'email', 'mergePullRequestBySquash_email' - The email address of the person merging the branches. This information
+-- is used in the commit information for the merge.
+--
+-- 'keepEmptyFolders', 'mergePullRequestBySquash_keepEmptyFolders' - If the commit contains deletions, whether to keep a folder or folder
+-- structure if the changes leave the folders empty. If true, a .gitkeep
+-- file is created for empty folders. The default is false.
+--
+-- 'sourceCommitId', 'mergePullRequestBySquash_sourceCommitId' - The full commit ID of the original or updated commit in the pull request
+-- source branch. Pass this value if you want an exception thrown if the
+-- current commit ID of the tip of the source branch does not match this
+-- commit ID.
+--
+-- 'pullRequestId', 'mergePullRequestBySquash_pullRequestId' - The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+--
+-- 'repositoryName', 'mergePullRequestBySquash_repositoryName' - The name of the repository where the pull request was created.
+newMergePullRequestBySquash ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'repositoryName'
+  Prelude.Text ->
+  MergePullRequestBySquash
+newMergePullRequestBySquash
+  pPullRequestId_
+  pRepositoryName_ =
+    MergePullRequestBySquash'
+      { authorName =
+          Prelude.Nothing,
+        commitMessage = Prelude.Nothing,
+        conflictDetailLevel = Prelude.Nothing,
+        conflictResolution = Prelude.Nothing,
+        conflictResolutionStrategy = Prelude.Nothing,
+        email = Prelude.Nothing,
+        keepEmptyFolders = Prelude.Nothing,
+        sourceCommitId = Prelude.Nothing,
+        pullRequestId = pPullRequestId_,
+        repositoryName = pRepositoryName_
+      }
+
+-- | The name of the author who created the commit. This information is used
+-- as both the author and committer for the commit.
+mergePullRequestBySquash_authorName :: Lens.Lens' MergePullRequestBySquash (Prelude.Maybe Prelude.Text)
+mergePullRequestBySquash_authorName = Lens.lens (\MergePullRequestBySquash' {authorName} -> authorName) (\s@MergePullRequestBySquash' {} a -> s {authorName = a} :: MergePullRequestBySquash)
+
+-- | The commit message to include in the commit information for the merge.
+mergePullRequestBySquash_commitMessage :: Lens.Lens' MergePullRequestBySquash (Prelude.Maybe Prelude.Text)
+mergePullRequestBySquash_commitMessage = Lens.lens (\MergePullRequestBySquash' {commitMessage} -> commitMessage) (\s@MergePullRequestBySquash' {} a -> s {commitMessage = a} :: MergePullRequestBySquash)
+
+-- | The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+mergePullRequestBySquash_conflictDetailLevel :: Lens.Lens' MergePullRequestBySquash (Prelude.Maybe ConflictDetailLevelTypeEnum)
+mergePullRequestBySquash_conflictDetailLevel = Lens.lens (\MergePullRequestBySquash' {conflictDetailLevel} -> conflictDetailLevel) (\s@MergePullRequestBySquash' {} a -> s {conflictDetailLevel = a} :: MergePullRequestBySquash)
+
+-- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+-- use when resolving conflicts during a merge.
+mergePullRequestBySquash_conflictResolution :: Lens.Lens' MergePullRequestBySquash (Prelude.Maybe ConflictResolution)
+mergePullRequestBySquash_conflictResolution = Lens.lens (\MergePullRequestBySquash' {conflictResolution} -> conflictResolution) (\s@MergePullRequestBySquash' {} a -> s {conflictResolution = a} :: MergePullRequestBySquash)
+
+-- | Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+mergePullRequestBySquash_conflictResolutionStrategy :: Lens.Lens' MergePullRequestBySquash (Prelude.Maybe ConflictResolutionStrategyTypeEnum)
+mergePullRequestBySquash_conflictResolutionStrategy = Lens.lens (\MergePullRequestBySquash' {conflictResolutionStrategy} -> conflictResolutionStrategy) (\s@MergePullRequestBySquash' {} a -> s {conflictResolutionStrategy = a} :: MergePullRequestBySquash)
+
+-- | The email address of the person merging the branches. This information
+-- is used in the commit information for the merge.
+mergePullRequestBySquash_email :: Lens.Lens' MergePullRequestBySquash (Prelude.Maybe Prelude.Text)
+mergePullRequestBySquash_email = Lens.lens (\MergePullRequestBySquash' {email} -> email) (\s@MergePullRequestBySquash' {} a -> s {email = a} :: MergePullRequestBySquash)
+
+-- | If the commit contains deletions, whether to keep a folder or folder
+-- structure if the changes leave the folders empty. If true, a .gitkeep
+-- file is created for empty folders. The default is false.
+mergePullRequestBySquash_keepEmptyFolders :: Lens.Lens' MergePullRequestBySquash (Prelude.Maybe Prelude.Bool)
+mergePullRequestBySquash_keepEmptyFolders = Lens.lens (\MergePullRequestBySquash' {keepEmptyFolders} -> keepEmptyFolders) (\s@MergePullRequestBySquash' {} a -> s {keepEmptyFolders = a} :: MergePullRequestBySquash)
+
+-- | The full commit ID of the original or updated commit in the pull request
+-- source branch. Pass this value if you want an exception thrown if the
+-- current commit ID of the tip of the source branch does not match this
+-- commit ID.
+mergePullRequestBySquash_sourceCommitId :: Lens.Lens' MergePullRequestBySquash (Prelude.Maybe Prelude.Text)
+mergePullRequestBySquash_sourceCommitId = Lens.lens (\MergePullRequestBySquash' {sourceCommitId} -> sourceCommitId) (\s@MergePullRequestBySquash' {} a -> s {sourceCommitId = a} :: MergePullRequestBySquash)
+
+-- | The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+mergePullRequestBySquash_pullRequestId :: Lens.Lens' MergePullRequestBySquash Prelude.Text
+mergePullRequestBySquash_pullRequestId = Lens.lens (\MergePullRequestBySquash' {pullRequestId} -> pullRequestId) (\s@MergePullRequestBySquash' {} a -> s {pullRequestId = a} :: MergePullRequestBySquash)
+
+-- | The name of the repository where the pull request was created.
+mergePullRequestBySquash_repositoryName :: Lens.Lens' MergePullRequestBySquash Prelude.Text
+mergePullRequestBySquash_repositoryName = Lens.lens (\MergePullRequestBySquash' {repositoryName} -> repositoryName) (\s@MergePullRequestBySquash' {} a -> s {repositoryName = a} :: MergePullRequestBySquash)
+
+instance Core.AWSRequest MergePullRequestBySquash where
+  type
+    AWSResponse MergePullRequestBySquash =
+      MergePullRequestBySquashResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          MergePullRequestBySquashResponse'
+            Prelude.<$> (x Data..?> "pullRequest")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable MergePullRequestBySquash where
+  hashWithSalt _salt MergePullRequestBySquash' {..} =
+    _salt
+      `Prelude.hashWithSalt` authorName
+      `Prelude.hashWithSalt` commitMessage
+      `Prelude.hashWithSalt` conflictDetailLevel
+      `Prelude.hashWithSalt` conflictResolution
+      `Prelude.hashWithSalt` conflictResolutionStrategy
+      `Prelude.hashWithSalt` email
+      `Prelude.hashWithSalt` keepEmptyFolders
+      `Prelude.hashWithSalt` sourceCommitId
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData MergePullRequestBySquash where
+  rnf MergePullRequestBySquash' {..} =
+    Prelude.rnf authorName
+      `Prelude.seq` Prelude.rnf commitMessage
+      `Prelude.seq` Prelude.rnf conflictDetailLevel
+      `Prelude.seq` Prelude.rnf conflictResolution
+      `Prelude.seq` Prelude.rnf conflictResolutionStrategy
+      `Prelude.seq` Prelude.rnf email
+      `Prelude.seq` Prelude.rnf keepEmptyFolders
+      `Prelude.seq` Prelude.rnf sourceCommitId
+      `Prelude.seq` Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf repositoryName
+
+instance Data.ToHeaders MergePullRequestBySquash where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.MergePullRequestBySquash" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON MergePullRequestBySquash where
+  toJSON MergePullRequestBySquash' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("authorName" Data..=) Prelude.<$> authorName,
+            ("commitMessage" Data..=) Prelude.<$> commitMessage,
+            ("conflictDetailLevel" Data..=)
+              Prelude.<$> conflictDetailLevel,
+            ("conflictResolution" Data..=)
+              Prelude.<$> conflictResolution,
+            ("conflictResolutionStrategy" Data..=)
+              Prelude.<$> conflictResolutionStrategy,
+            ("email" Data..=) Prelude.<$> email,
+            ("keepEmptyFolders" Data..=)
+              Prelude.<$> keepEmptyFolders,
+            ("sourceCommitId" Data..=)
+              Prelude.<$> sourceCommitId,
+            Prelude.Just ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName)
+          ]
+      )
+
+instance Data.ToPath MergePullRequestBySquash where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery MergePullRequestBySquash where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newMergePullRequestBySquashResponse' smart constructor.
+data MergePullRequestBySquashResponse = MergePullRequestBySquashResponse'
+  { pullRequest :: Prelude.Maybe PullRequest,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergePullRequestBySquashResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequest', 'mergePullRequestBySquashResponse_pullRequest' - Undocumented member.
+--
+-- 'httpStatus', 'mergePullRequestBySquashResponse_httpStatus' - The response's http status code.
+newMergePullRequestBySquashResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  MergePullRequestBySquashResponse
+newMergePullRequestBySquashResponse pHttpStatus_ =
+  MergePullRequestBySquashResponse'
+    { pullRequest =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Undocumented member.
+mergePullRequestBySquashResponse_pullRequest :: Lens.Lens' MergePullRequestBySquashResponse (Prelude.Maybe PullRequest)
+mergePullRequestBySquashResponse_pullRequest = Lens.lens (\MergePullRequestBySquashResponse' {pullRequest} -> pullRequest) (\s@MergePullRequestBySquashResponse' {} a -> s {pullRequest = a} :: MergePullRequestBySquashResponse)
+
+-- | The response's http status code.
+mergePullRequestBySquashResponse_httpStatus :: Lens.Lens' MergePullRequestBySquashResponse Prelude.Int
+mergePullRequestBySquashResponse_httpStatus = Lens.lens (\MergePullRequestBySquashResponse' {httpStatus} -> httpStatus) (\s@MergePullRequestBySquashResponse' {} a -> s {httpStatus = a} :: MergePullRequestBySquashResponse)
+
+instance
+  Prelude.NFData
+    MergePullRequestBySquashResponse
+  where
+  rnf MergePullRequestBySquashResponse' {..} =
+    Prelude.rnf pullRequest
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/MergePullRequestByThreeWay.hs b/gen/Amazonka/CodeCommit/MergePullRequestByThreeWay.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/MergePullRequestByThreeWay.hs
@@ -0,0 +1,354 @@
+{-# 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.CodeCommit.MergePullRequestByThreeWay
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Attempts to merge the source commit of a pull request into the specified
+-- destination branch for that pull request at the specified commit using
+-- the three-way merge strategy. If the merge is successful, it closes the
+-- pull request.
+module Amazonka.CodeCommit.MergePullRequestByThreeWay
+  ( -- * Creating a Request
+    MergePullRequestByThreeWay (..),
+    newMergePullRequestByThreeWay,
+
+    -- * Request Lenses
+    mergePullRequestByThreeWay_authorName,
+    mergePullRequestByThreeWay_commitMessage,
+    mergePullRequestByThreeWay_conflictDetailLevel,
+    mergePullRequestByThreeWay_conflictResolution,
+    mergePullRequestByThreeWay_conflictResolutionStrategy,
+    mergePullRequestByThreeWay_email,
+    mergePullRequestByThreeWay_keepEmptyFolders,
+    mergePullRequestByThreeWay_sourceCommitId,
+    mergePullRequestByThreeWay_pullRequestId,
+    mergePullRequestByThreeWay_repositoryName,
+
+    -- * Destructuring the Response
+    MergePullRequestByThreeWayResponse (..),
+    newMergePullRequestByThreeWayResponse,
+
+    -- * Response Lenses
+    mergePullRequestByThreeWayResponse_pullRequest,
+    mergePullRequestByThreeWayResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newMergePullRequestByThreeWay' smart constructor.
+data MergePullRequestByThreeWay = MergePullRequestByThreeWay'
+  { -- | The name of the author who created the commit. This information is used
+    -- as both the author and committer for the commit.
+    authorName :: Prelude.Maybe Prelude.Text,
+    -- | The commit message to include in the commit information for the merge.
+    commitMessage :: Prelude.Maybe Prelude.Text,
+    -- | The level of conflict detail to use. If unspecified, the default
+    -- FILE_LEVEL is used, which returns a not-mergeable result if the same
+    -- file has differences in both branches. If LINE_LEVEL is specified, a
+    -- conflict is considered not mergeable if the same file in both branches
+    -- has differences on the same line.
+    conflictDetailLevel :: Prelude.Maybe ConflictDetailLevelTypeEnum,
+    -- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+    -- use when resolving conflicts during a merge.
+    conflictResolution :: Prelude.Maybe ConflictResolution,
+    -- | Specifies which branch to use when resolving conflicts, or whether to
+    -- attempt automatically merging two versions of a file. The default is
+    -- NONE, which requires any conflicts to be resolved manually before the
+    -- merge operation is successful.
+    conflictResolutionStrategy :: Prelude.Maybe ConflictResolutionStrategyTypeEnum,
+    -- | The email address of the person merging the branches. This information
+    -- is used in the commit information for the merge.
+    email :: Prelude.Maybe Prelude.Text,
+    -- | If the commit contains deletions, whether to keep a folder or folder
+    -- structure if the changes leave the folders empty. If true, a .gitkeep
+    -- file is created for empty folders. The default is false.
+    keepEmptyFolders :: Prelude.Maybe Prelude.Bool,
+    -- | The full commit ID of the original or updated commit in the pull request
+    -- source branch. Pass this value if you want an exception thrown if the
+    -- current commit ID of the tip of the source branch does not match this
+    -- commit ID.
+    sourceCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The system-generated ID of the pull request. To get this ID, use
+    -- ListPullRequests.
+    pullRequestId :: Prelude.Text,
+    -- | The name of the repository where the pull request was created.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergePullRequestByThreeWay' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authorName', 'mergePullRequestByThreeWay_authorName' - The name of the author who created the commit. This information is used
+-- as both the author and committer for the commit.
+--
+-- 'commitMessage', 'mergePullRequestByThreeWay_commitMessage' - The commit message to include in the commit information for the merge.
+--
+-- 'conflictDetailLevel', 'mergePullRequestByThreeWay_conflictDetailLevel' - The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+--
+-- 'conflictResolution', 'mergePullRequestByThreeWay_conflictResolution' - If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+-- use when resolving conflicts during a merge.
+--
+-- 'conflictResolutionStrategy', 'mergePullRequestByThreeWay_conflictResolutionStrategy' - Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+--
+-- 'email', 'mergePullRequestByThreeWay_email' - The email address of the person merging the branches. This information
+-- is used in the commit information for the merge.
+--
+-- 'keepEmptyFolders', 'mergePullRequestByThreeWay_keepEmptyFolders' - If the commit contains deletions, whether to keep a folder or folder
+-- structure if the changes leave the folders empty. If true, a .gitkeep
+-- file is created for empty folders. The default is false.
+--
+-- 'sourceCommitId', 'mergePullRequestByThreeWay_sourceCommitId' - The full commit ID of the original or updated commit in the pull request
+-- source branch. Pass this value if you want an exception thrown if the
+-- current commit ID of the tip of the source branch does not match this
+-- commit ID.
+--
+-- 'pullRequestId', 'mergePullRequestByThreeWay_pullRequestId' - The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+--
+-- 'repositoryName', 'mergePullRequestByThreeWay_repositoryName' - The name of the repository where the pull request was created.
+newMergePullRequestByThreeWay ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'repositoryName'
+  Prelude.Text ->
+  MergePullRequestByThreeWay
+newMergePullRequestByThreeWay
+  pPullRequestId_
+  pRepositoryName_ =
+    MergePullRequestByThreeWay'
+      { authorName =
+          Prelude.Nothing,
+        commitMessage = Prelude.Nothing,
+        conflictDetailLevel = Prelude.Nothing,
+        conflictResolution = Prelude.Nothing,
+        conflictResolutionStrategy = Prelude.Nothing,
+        email = Prelude.Nothing,
+        keepEmptyFolders = Prelude.Nothing,
+        sourceCommitId = Prelude.Nothing,
+        pullRequestId = pPullRequestId_,
+        repositoryName = pRepositoryName_
+      }
+
+-- | The name of the author who created the commit. This information is used
+-- as both the author and committer for the commit.
+mergePullRequestByThreeWay_authorName :: Lens.Lens' MergePullRequestByThreeWay (Prelude.Maybe Prelude.Text)
+mergePullRequestByThreeWay_authorName = Lens.lens (\MergePullRequestByThreeWay' {authorName} -> authorName) (\s@MergePullRequestByThreeWay' {} a -> s {authorName = a} :: MergePullRequestByThreeWay)
+
+-- | The commit message to include in the commit information for the merge.
+mergePullRequestByThreeWay_commitMessage :: Lens.Lens' MergePullRequestByThreeWay (Prelude.Maybe Prelude.Text)
+mergePullRequestByThreeWay_commitMessage = Lens.lens (\MergePullRequestByThreeWay' {commitMessage} -> commitMessage) (\s@MergePullRequestByThreeWay' {} a -> s {commitMessage = a} :: MergePullRequestByThreeWay)
+
+-- | The level of conflict detail to use. If unspecified, the default
+-- FILE_LEVEL is used, which returns a not-mergeable result if the same
+-- file has differences in both branches. If LINE_LEVEL is specified, a
+-- conflict is considered not mergeable if the same file in both branches
+-- has differences on the same line.
+mergePullRequestByThreeWay_conflictDetailLevel :: Lens.Lens' MergePullRequestByThreeWay (Prelude.Maybe ConflictDetailLevelTypeEnum)
+mergePullRequestByThreeWay_conflictDetailLevel = Lens.lens (\MergePullRequestByThreeWay' {conflictDetailLevel} -> conflictDetailLevel) (\s@MergePullRequestByThreeWay' {} a -> s {conflictDetailLevel = a} :: MergePullRequestByThreeWay)
+
+-- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+-- use when resolving conflicts during a merge.
+mergePullRequestByThreeWay_conflictResolution :: Lens.Lens' MergePullRequestByThreeWay (Prelude.Maybe ConflictResolution)
+mergePullRequestByThreeWay_conflictResolution = Lens.lens (\MergePullRequestByThreeWay' {conflictResolution} -> conflictResolution) (\s@MergePullRequestByThreeWay' {} a -> s {conflictResolution = a} :: MergePullRequestByThreeWay)
+
+-- | Specifies which branch to use when resolving conflicts, or whether to
+-- attempt automatically merging two versions of a file. The default is
+-- NONE, which requires any conflicts to be resolved manually before the
+-- merge operation is successful.
+mergePullRequestByThreeWay_conflictResolutionStrategy :: Lens.Lens' MergePullRequestByThreeWay (Prelude.Maybe ConflictResolutionStrategyTypeEnum)
+mergePullRequestByThreeWay_conflictResolutionStrategy = Lens.lens (\MergePullRequestByThreeWay' {conflictResolutionStrategy} -> conflictResolutionStrategy) (\s@MergePullRequestByThreeWay' {} a -> s {conflictResolutionStrategy = a} :: MergePullRequestByThreeWay)
+
+-- | The email address of the person merging the branches. This information
+-- is used in the commit information for the merge.
+mergePullRequestByThreeWay_email :: Lens.Lens' MergePullRequestByThreeWay (Prelude.Maybe Prelude.Text)
+mergePullRequestByThreeWay_email = Lens.lens (\MergePullRequestByThreeWay' {email} -> email) (\s@MergePullRequestByThreeWay' {} a -> s {email = a} :: MergePullRequestByThreeWay)
+
+-- | If the commit contains deletions, whether to keep a folder or folder
+-- structure if the changes leave the folders empty. If true, a .gitkeep
+-- file is created for empty folders. The default is false.
+mergePullRequestByThreeWay_keepEmptyFolders :: Lens.Lens' MergePullRequestByThreeWay (Prelude.Maybe Prelude.Bool)
+mergePullRequestByThreeWay_keepEmptyFolders = Lens.lens (\MergePullRequestByThreeWay' {keepEmptyFolders} -> keepEmptyFolders) (\s@MergePullRequestByThreeWay' {} a -> s {keepEmptyFolders = a} :: MergePullRequestByThreeWay)
+
+-- | The full commit ID of the original or updated commit in the pull request
+-- source branch. Pass this value if you want an exception thrown if the
+-- current commit ID of the tip of the source branch does not match this
+-- commit ID.
+mergePullRequestByThreeWay_sourceCommitId :: Lens.Lens' MergePullRequestByThreeWay (Prelude.Maybe Prelude.Text)
+mergePullRequestByThreeWay_sourceCommitId = Lens.lens (\MergePullRequestByThreeWay' {sourceCommitId} -> sourceCommitId) (\s@MergePullRequestByThreeWay' {} a -> s {sourceCommitId = a} :: MergePullRequestByThreeWay)
+
+-- | The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+mergePullRequestByThreeWay_pullRequestId :: Lens.Lens' MergePullRequestByThreeWay Prelude.Text
+mergePullRequestByThreeWay_pullRequestId = Lens.lens (\MergePullRequestByThreeWay' {pullRequestId} -> pullRequestId) (\s@MergePullRequestByThreeWay' {} a -> s {pullRequestId = a} :: MergePullRequestByThreeWay)
+
+-- | The name of the repository where the pull request was created.
+mergePullRequestByThreeWay_repositoryName :: Lens.Lens' MergePullRequestByThreeWay Prelude.Text
+mergePullRequestByThreeWay_repositoryName = Lens.lens (\MergePullRequestByThreeWay' {repositoryName} -> repositoryName) (\s@MergePullRequestByThreeWay' {} a -> s {repositoryName = a} :: MergePullRequestByThreeWay)
+
+instance Core.AWSRequest MergePullRequestByThreeWay where
+  type
+    AWSResponse MergePullRequestByThreeWay =
+      MergePullRequestByThreeWayResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          MergePullRequestByThreeWayResponse'
+            Prelude.<$> (x Data..?> "pullRequest")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable MergePullRequestByThreeWay where
+  hashWithSalt _salt MergePullRequestByThreeWay' {..} =
+    _salt
+      `Prelude.hashWithSalt` authorName
+      `Prelude.hashWithSalt` commitMessage
+      `Prelude.hashWithSalt` conflictDetailLevel
+      `Prelude.hashWithSalt` conflictResolution
+      `Prelude.hashWithSalt` conflictResolutionStrategy
+      `Prelude.hashWithSalt` email
+      `Prelude.hashWithSalt` keepEmptyFolders
+      `Prelude.hashWithSalt` sourceCommitId
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData MergePullRequestByThreeWay where
+  rnf MergePullRequestByThreeWay' {..} =
+    Prelude.rnf authorName
+      `Prelude.seq` Prelude.rnf commitMessage
+      `Prelude.seq` Prelude.rnf conflictDetailLevel
+      `Prelude.seq` Prelude.rnf conflictResolution
+      `Prelude.seq` Prelude.rnf conflictResolutionStrategy
+      `Prelude.seq` Prelude.rnf email
+      `Prelude.seq` Prelude.rnf keepEmptyFolders
+      `Prelude.seq` Prelude.rnf sourceCommitId
+      `Prelude.seq` Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf repositoryName
+
+instance Data.ToHeaders MergePullRequestByThreeWay where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.MergePullRequestByThreeWay" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON MergePullRequestByThreeWay where
+  toJSON MergePullRequestByThreeWay' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("authorName" Data..=) Prelude.<$> authorName,
+            ("commitMessage" Data..=) Prelude.<$> commitMessage,
+            ("conflictDetailLevel" Data..=)
+              Prelude.<$> conflictDetailLevel,
+            ("conflictResolution" Data..=)
+              Prelude.<$> conflictResolution,
+            ("conflictResolutionStrategy" Data..=)
+              Prelude.<$> conflictResolutionStrategy,
+            ("email" Data..=) Prelude.<$> email,
+            ("keepEmptyFolders" Data..=)
+              Prelude.<$> keepEmptyFolders,
+            ("sourceCommitId" Data..=)
+              Prelude.<$> sourceCommitId,
+            Prelude.Just ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName)
+          ]
+      )
+
+instance Data.ToPath MergePullRequestByThreeWay where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery MergePullRequestByThreeWay where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newMergePullRequestByThreeWayResponse' smart constructor.
+data MergePullRequestByThreeWayResponse = MergePullRequestByThreeWayResponse'
+  { pullRequest :: Prelude.Maybe PullRequest,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergePullRequestByThreeWayResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequest', 'mergePullRequestByThreeWayResponse_pullRequest' - Undocumented member.
+--
+-- 'httpStatus', 'mergePullRequestByThreeWayResponse_httpStatus' - The response's http status code.
+newMergePullRequestByThreeWayResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  MergePullRequestByThreeWayResponse
+newMergePullRequestByThreeWayResponse pHttpStatus_ =
+  MergePullRequestByThreeWayResponse'
+    { pullRequest =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Undocumented member.
+mergePullRequestByThreeWayResponse_pullRequest :: Lens.Lens' MergePullRequestByThreeWayResponse (Prelude.Maybe PullRequest)
+mergePullRequestByThreeWayResponse_pullRequest = Lens.lens (\MergePullRequestByThreeWayResponse' {pullRequest} -> pullRequest) (\s@MergePullRequestByThreeWayResponse' {} a -> s {pullRequest = a} :: MergePullRequestByThreeWayResponse)
+
+-- | The response's http status code.
+mergePullRequestByThreeWayResponse_httpStatus :: Lens.Lens' MergePullRequestByThreeWayResponse Prelude.Int
+mergePullRequestByThreeWayResponse_httpStatus = Lens.lens (\MergePullRequestByThreeWayResponse' {httpStatus} -> httpStatus) (\s@MergePullRequestByThreeWayResponse' {} a -> s {httpStatus = a} :: MergePullRequestByThreeWayResponse)
+
+instance
+  Prelude.NFData
+    MergePullRequestByThreeWayResponse
+  where
+  rnf MergePullRequestByThreeWayResponse' {..} =
+    Prelude.rnf pullRequest
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/OverridePullRequestApprovalRules.hs b/gen/Amazonka/CodeCommit/OverridePullRequestApprovalRules.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/OverridePullRequestApprovalRules.hs
@@ -0,0 +1,214 @@
+{-# 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.CodeCommit.OverridePullRequestApprovalRules
+-- 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 aside (overrides) all approval rule requirements for a specified
+-- pull request.
+module Amazonka.CodeCommit.OverridePullRequestApprovalRules
+  ( -- * Creating a Request
+    OverridePullRequestApprovalRules (..),
+    newOverridePullRequestApprovalRules,
+
+    -- * Request Lenses
+    overridePullRequestApprovalRules_pullRequestId,
+    overridePullRequestApprovalRules_revisionId,
+    overridePullRequestApprovalRules_overrideStatus,
+
+    -- * Destructuring the Response
+    OverridePullRequestApprovalRulesResponse (..),
+    newOverridePullRequestApprovalRulesResponse,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newOverridePullRequestApprovalRules' smart constructor.
+data OverridePullRequestApprovalRules = OverridePullRequestApprovalRules'
+  { -- | The system-generated ID of the pull request for which you want to
+    -- override all approval rule requirements. To get this information, use
+    -- GetPullRequest.
+    pullRequestId :: Prelude.Text,
+    -- | The system-generated ID of the most recent revision of the pull request.
+    -- You cannot override approval rules for anything but the most recent
+    -- revision of a pull request. To get the revision ID, use GetPullRequest.
+    revisionId :: Prelude.Text,
+    -- | Whether you want to set aside approval rule requirements for the pull
+    -- request (OVERRIDE) or revoke a previous override and apply approval rule
+    -- requirements (REVOKE). REVOKE status is not stored.
+    overrideStatus :: OverrideStatus
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'OverridePullRequestApprovalRules' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequestId', 'overridePullRequestApprovalRules_pullRequestId' - The system-generated ID of the pull request for which you want to
+-- override all approval rule requirements. To get this information, use
+-- GetPullRequest.
+--
+-- 'revisionId', 'overridePullRequestApprovalRules_revisionId' - The system-generated ID of the most recent revision of the pull request.
+-- You cannot override approval rules for anything but the most recent
+-- revision of a pull request. To get the revision ID, use GetPullRequest.
+--
+-- 'overrideStatus', 'overridePullRequestApprovalRules_overrideStatus' - Whether you want to set aside approval rule requirements for the pull
+-- request (OVERRIDE) or revoke a previous override and apply approval rule
+-- requirements (REVOKE). REVOKE status is not stored.
+newOverridePullRequestApprovalRules ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'revisionId'
+  Prelude.Text ->
+  -- | 'overrideStatus'
+  OverrideStatus ->
+  OverridePullRequestApprovalRules
+newOverridePullRequestApprovalRules
+  pPullRequestId_
+  pRevisionId_
+  pOverrideStatus_ =
+    OverridePullRequestApprovalRules'
+      { pullRequestId =
+          pPullRequestId_,
+        revisionId = pRevisionId_,
+        overrideStatus = pOverrideStatus_
+      }
+
+-- | The system-generated ID of the pull request for which you want to
+-- override all approval rule requirements. To get this information, use
+-- GetPullRequest.
+overridePullRequestApprovalRules_pullRequestId :: Lens.Lens' OverridePullRequestApprovalRules Prelude.Text
+overridePullRequestApprovalRules_pullRequestId = Lens.lens (\OverridePullRequestApprovalRules' {pullRequestId} -> pullRequestId) (\s@OverridePullRequestApprovalRules' {} a -> s {pullRequestId = a} :: OverridePullRequestApprovalRules)
+
+-- | The system-generated ID of the most recent revision of the pull request.
+-- You cannot override approval rules for anything but the most recent
+-- revision of a pull request. To get the revision ID, use GetPullRequest.
+overridePullRequestApprovalRules_revisionId :: Lens.Lens' OverridePullRequestApprovalRules Prelude.Text
+overridePullRequestApprovalRules_revisionId = Lens.lens (\OverridePullRequestApprovalRules' {revisionId} -> revisionId) (\s@OverridePullRequestApprovalRules' {} a -> s {revisionId = a} :: OverridePullRequestApprovalRules)
+
+-- | Whether you want to set aside approval rule requirements for the pull
+-- request (OVERRIDE) or revoke a previous override and apply approval rule
+-- requirements (REVOKE). REVOKE status is not stored.
+overridePullRequestApprovalRules_overrideStatus :: Lens.Lens' OverridePullRequestApprovalRules OverrideStatus
+overridePullRequestApprovalRules_overrideStatus = Lens.lens (\OverridePullRequestApprovalRules' {overrideStatus} -> overrideStatus) (\s@OverridePullRequestApprovalRules' {} a -> s {overrideStatus = a} :: OverridePullRequestApprovalRules)
+
+instance
+  Core.AWSRequest
+    OverridePullRequestApprovalRules
+  where
+  type
+    AWSResponse OverridePullRequestApprovalRules =
+      OverridePullRequestApprovalRulesResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveNull
+      OverridePullRequestApprovalRulesResponse'
+
+instance
+  Prelude.Hashable
+    OverridePullRequestApprovalRules
+  where
+  hashWithSalt
+    _salt
+    OverridePullRequestApprovalRules' {..} =
+      _salt
+        `Prelude.hashWithSalt` pullRequestId
+        `Prelude.hashWithSalt` revisionId
+        `Prelude.hashWithSalt` overrideStatus
+
+instance
+  Prelude.NFData
+    OverridePullRequestApprovalRules
+  where
+  rnf OverridePullRequestApprovalRules' {..} =
+    Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf revisionId
+      `Prelude.seq` Prelude.rnf overrideStatus
+
+instance
+  Data.ToHeaders
+    OverridePullRequestApprovalRules
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.OverridePullRequestApprovalRules" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON OverridePullRequestApprovalRules where
+  toJSON OverridePullRequestApprovalRules' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just ("revisionId" Data..= revisionId),
+            Prelude.Just
+              ("overrideStatus" Data..= overrideStatus)
+          ]
+      )
+
+instance Data.ToPath OverridePullRequestApprovalRules where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    OverridePullRequestApprovalRules
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newOverridePullRequestApprovalRulesResponse' smart constructor.
+data OverridePullRequestApprovalRulesResponse = OverridePullRequestApprovalRulesResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'OverridePullRequestApprovalRulesResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newOverridePullRequestApprovalRulesResponse ::
+  OverridePullRequestApprovalRulesResponse
+newOverridePullRequestApprovalRulesResponse =
+  OverridePullRequestApprovalRulesResponse'
+
+instance
+  Prelude.NFData
+    OverridePullRequestApprovalRulesResponse
+  where
+  rnf _ = ()
diff --git a/gen/Amazonka/CodeCommit/PostCommentForComparedCommit.hs b/gen/Amazonka/CodeCommit/PostCommentForComparedCommit.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/PostCommentForComparedCommit.hs
@@ -0,0 +1,360 @@
+{-# 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.CodeCommit.PostCommentForComparedCommit
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Posts a comment on the comparison between two commits.
+module Amazonka.CodeCommit.PostCommentForComparedCommit
+  ( -- * Creating a Request
+    PostCommentForComparedCommit (..),
+    newPostCommentForComparedCommit,
+
+    -- * Request Lenses
+    postCommentForComparedCommit_beforeCommitId,
+    postCommentForComparedCommit_clientRequestToken,
+    postCommentForComparedCommit_location,
+    postCommentForComparedCommit_repositoryName,
+    postCommentForComparedCommit_afterCommitId,
+    postCommentForComparedCommit_content,
+
+    -- * Destructuring the Response
+    PostCommentForComparedCommitResponse (..),
+    newPostCommentForComparedCommitResponse,
+
+    -- * Response Lenses
+    postCommentForComparedCommitResponse_afterBlobId,
+    postCommentForComparedCommitResponse_afterCommitId,
+    postCommentForComparedCommitResponse_beforeBlobId,
+    postCommentForComparedCommitResponse_beforeCommitId,
+    postCommentForComparedCommitResponse_comment,
+    postCommentForComparedCommitResponse_location,
+    postCommentForComparedCommitResponse_repositoryName,
+    postCommentForComparedCommitResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newPostCommentForComparedCommit' smart constructor.
+data PostCommentForComparedCommit = PostCommentForComparedCommit'
+  { -- | To establish the directionality of the comparison, the full commit ID of
+    -- the before commit. Required for commenting on any commit unless that
+    -- commit is the initial commit.
+    beforeCommitId :: Prelude.Maybe Prelude.Text,
+    -- | A unique, client-generated idempotency token that, when provided in a
+    -- request, ensures the request cannot be repeated with a changed
+    -- parameter. If a request is received with the same parameters and a token
+    -- is included, the request returns information about the initial request
+    -- that used that token.
+    clientRequestToken :: Prelude.Maybe Prelude.Text,
+    -- | The location of the comparison where you want to comment.
+    location :: Prelude.Maybe Location,
+    -- | The name of the repository where you want to post a comment on the
+    -- comparison between commits.
+    repositoryName :: Prelude.Text,
+    -- | To establish the directionality of the comparison, the full commit ID of
+    -- the after commit.
+    afterCommitId :: Prelude.Text,
+    -- | The content of the comment you want to make.
+    content :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PostCommentForComparedCommit' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'beforeCommitId', 'postCommentForComparedCommit_beforeCommitId' - To establish the directionality of the comparison, the full commit ID of
+-- the before commit. Required for commenting on any commit unless that
+-- commit is the initial commit.
+--
+-- 'clientRequestToken', 'postCommentForComparedCommit_clientRequestToken' - A unique, client-generated idempotency token that, when provided in a
+-- request, ensures the request cannot be repeated with a changed
+-- parameter. If a request is received with the same parameters and a token
+-- is included, the request returns information about the initial request
+-- that used that token.
+--
+-- 'location', 'postCommentForComparedCommit_location' - The location of the comparison where you want to comment.
+--
+-- 'repositoryName', 'postCommentForComparedCommit_repositoryName' - The name of the repository where you want to post a comment on the
+-- comparison between commits.
+--
+-- 'afterCommitId', 'postCommentForComparedCommit_afterCommitId' - To establish the directionality of the comparison, the full commit ID of
+-- the after commit.
+--
+-- 'content', 'postCommentForComparedCommit_content' - The content of the comment you want to make.
+newPostCommentForComparedCommit ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'afterCommitId'
+  Prelude.Text ->
+  -- | 'content'
+  Prelude.Text ->
+  PostCommentForComparedCommit
+newPostCommentForComparedCommit
+  pRepositoryName_
+  pAfterCommitId_
+  pContent_ =
+    PostCommentForComparedCommit'
+      { beforeCommitId =
+          Prelude.Nothing,
+        clientRequestToken = Prelude.Nothing,
+        location = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        afterCommitId = pAfterCommitId_,
+        content = pContent_
+      }
+
+-- | To establish the directionality of the comparison, the full commit ID of
+-- the before commit. Required for commenting on any commit unless that
+-- commit is the initial commit.
+postCommentForComparedCommit_beforeCommitId :: Lens.Lens' PostCommentForComparedCommit (Prelude.Maybe Prelude.Text)
+postCommentForComparedCommit_beforeCommitId = Lens.lens (\PostCommentForComparedCommit' {beforeCommitId} -> beforeCommitId) (\s@PostCommentForComparedCommit' {} a -> s {beforeCommitId = a} :: PostCommentForComparedCommit)
+
+-- | A unique, client-generated idempotency token that, when provided in a
+-- request, ensures the request cannot be repeated with a changed
+-- parameter. If a request is received with the same parameters and a token
+-- is included, the request returns information about the initial request
+-- that used that token.
+postCommentForComparedCommit_clientRequestToken :: Lens.Lens' PostCommentForComparedCommit (Prelude.Maybe Prelude.Text)
+postCommentForComparedCommit_clientRequestToken = Lens.lens (\PostCommentForComparedCommit' {clientRequestToken} -> clientRequestToken) (\s@PostCommentForComparedCommit' {} a -> s {clientRequestToken = a} :: PostCommentForComparedCommit)
+
+-- | The location of the comparison where you want to comment.
+postCommentForComparedCommit_location :: Lens.Lens' PostCommentForComparedCommit (Prelude.Maybe Location)
+postCommentForComparedCommit_location = Lens.lens (\PostCommentForComparedCommit' {location} -> location) (\s@PostCommentForComparedCommit' {} a -> s {location = a} :: PostCommentForComparedCommit)
+
+-- | The name of the repository where you want to post a comment on the
+-- comparison between commits.
+postCommentForComparedCommit_repositoryName :: Lens.Lens' PostCommentForComparedCommit Prelude.Text
+postCommentForComparedCommit_repositoryName = Lens.lens (\PostCommentForComparedCommit' {repositoryName} -> repositoryName) (\s@PostCommentForComparedCommit' {} a -> s {repositoryName = a} :: PostCommentForComparedCommit)
+
+-- | To establish the directionality of the comparison, the full commit ID of
+-- the after commit.
+postCommentForComparedCommit_afterCommitId :: Lens.Lens' PostCommentForComparedCommit Prelude.Text
+postCommentForComparedCommit_afterCommitId = Lens.lens (\PostCommentForComparedCommit' {afterCommitId} -> afterCommitId) (\s@PostCommentForComparedCommit' {} a -> s {afterCommitId = a} :: PostCommentForComparedCommit)
+
+-- | The content of the comment you want to make.
+postCommentForComparedCommit_content :: Lens.Lens' PostCommentForComparedCommit Prelude.Text
+postCommentForComparedCommit_content = Lens.lens (\PostCommentForComparedCommit' {content} -> content) (\s@PostCommentForComparedCommit' {} a -> s {content = a} :: PostCommentForComparedCommit)
+
+instance Core.AWSRequest PostCommentForComparedCommit where
+  type
+    AWSResponse PostCommentForComparedCommit =
+      PostCommentForComparedCommitResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          PostCommentForComparedCommitResponse'
+            Prelude.<$> (x Data..?> "afterBlobId")
+            Prelude.<*> (x Data..?> "afterCommitId")
+            Prelude.<*> (x Data..?> "beforeBlobId")
+            Prelude.<*> (x Data..?> "beforeCommitId")
+            Prelude.<*> (x Data..?> "comment")
+            Prelude.<*> (x Data..?> "location")
+            Prelude.<*> (x Data..?> "repositoryName")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    PostCommentForComparedCommit
+  where
+  hashWithSalt _salt PostCommentForComparedCommit' {..} =
+    _salt
+      `Prelude.hashWithSalt` beforeCommitId
+      `Prelude.hashWithSalt` clientRequestToken
+      `Prelude.hashWithSalt` location
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` afterCommitId
+      `Prelude.hashWithSalt` content
+
+instance Prelude.NFData PostCommentForComparedCommit where
+  rnf PostCommentForComparedCommit' {..} =
+    Prelude.rnf beforeCommitId
+      `Prelude.seq` Prelude.rnf clientRequestToken
+      `Prelude.seq` Prelude.rnf location
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf afterCommitId
+      `Prelude.seq` Prelude.rnf content
+
+instance Data.ToHeaders PostCommentForComparedCommit where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.PostCommentForComparedCommit" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON PostCommentForComparedCommit where
+  toJSON PostCommentForComparedCommit' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("beforeCommitId" Data..=)
+              Prelude.<$> beforeCommitId,
+            ("clientRequestToken" Data..=)
+              Prelude.<$> clientRequestToken,
+            ("location" Data..=) Prelude.<$> location,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just ("afterCommitId" Data..= afterCommitId),
+            Prelude.Just ("content" Data..= content)
+          ]
+      )
+
+instance Data.ToPath PostCommentForComparedCommit where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery PostCommentForComparedCommit where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newPostCommentForComparedCommitResponse' smart constructor.
+data PostCommentForComparedCommitResponse = PostCommentForComparedCommitResponse'
+  { -- | In the directionality you established, the blob ID of the after blob.
+    afterBlobId :: Prelude.Maybe Prelude.Text,
+    -- | In the directionality you established, the full commit ID of the after
+    -- commit.
+    afterCommitId :: Prelude.Maybe Prelude.Text,
+    -- | In the directionality you established, the blob ID of the before blob.
+    beforeBlobId :: Prelude.Maybe Prelude.Text,
+    -- | In the directionality you established, the full commit ID of the before
+    -- commit.
+    beforeCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The content of the comment you posted.
+    comment :: Prelude.Maybe Comment,
+    -- | The location of the comment in the comparison between the two commits.
+    location :: Prelude.Maybe Location,
+    -- | The name of the repository where you posted a comment on the comparison
+    -- between commits.
+    repositoryName :: 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 'PostCommentForComparedCommitResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'afterBlobId', 'postCommentForComparedCommitResponse_afterBlobId' - In the directionality you established, the blob ID of the after blob.
+--
+-- 'afterCommitId', 'postCommentForComparedCommitResponse_afterCommitId' - In the directionality you established, the full commit ID of the after
+-- commit.
+--
+-- 'beforeBlobId', 'postCommentForComparedCommitResponse_beforeBlobId' - In the directionality you established, the blob ID of the before blob.
+--
+-- 'beforeCommitId', 'postCommentForComparedCommitResponse_beforeCommitId' - In the directionality you established, the full commit ID of the before
+-- commit.
+--
+-- 'comment', 'postCommentForComparedCommitResponse_comment' - The content of the comment you posted.
+--
+-- 'location', 'postCommentForComparedCommitResponse_location' - The location of the comment in the comparison between the two commits.
+--
+-- 'repositoryName', 'postCommentForComparedCommitResponse_repositoryName' - The name of the repository where you posted a comment on the comparison
+-- between commits.
+--
+-- 'httpStatus', 'postCommentForComparedCommitResponse_httpStatus' - The response's http status code.
+newPostCommentForComparedCommitResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  PostCommentForComparedCommitResponse
+newPostCommentForComparedCommitResponse pHttpStatus_ =
+  PostCommentForComparedCommitResponse'
+    { afterBlobId =
+        Prelude.Nothing,
+      afterCommitId = Prelude.Nothing,
+      beforeBlobId = Prelude.Nothing,
+      beforeCommitId = Prelude.Nothing,
+      comment = Prelude.Nothing,
+      location = Prelude.Nothing,
+      repositoryName = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | In the directionality you established, the blob ID of the after blob.
+postCommentForComparedCommitResponse_afterBlobId :: Lens.Lens' PostCommentForComparedCommitResponse (Prelude.Maybe Prelude.Text)
+postCommentForComparedCommitResponse_afterBlobId = Lens.lens (\PostCommentForComparedCommitResponse' {afterBlobId} -> afterBlobId) (\s@PostCommentForComparedCommitResponse' {} a -> s {afterBlobId = a} :: PostCommentForComparedCommitResponse)
+
+-- | In the directionality you established, the full commit ID of the after
+-- commit.
+postCommentForComparedCommitResponse_afterCommitId :: Lens.Lens' PostCommentForComparedCommitResponse (Prelude.Maybe Prelude.Text)
+postCommentForComparedCommitResponse_afterCommitId = Lens.lens (\PostCommentForComparedCommitResponse' {afterCommitId} -> afterCommitId) (\s@PostCommentForComparedCommitResponse' {} a -> s {afterCommitId = a} :: PostCommentForComparedCommitResponse)
+
+-- | In the directionality you established, the blob ID of the before blob.
+postCommentForComparedCommitResponse_beforeBlobId :: Lens.Lens' PostCommentForComparedCommitResponse (Prelude.Maybe Prelude.Text)
+postCommentForComparedCommitResponse_beforeBlobId = Lens.lens (\PostCommentForComparedCommitResponse' {beforeBlobId} -> beforeBlobId) (\s@PostCommentForComparedCommitResponse' {} a -> s {beforeBlobId = a} :: PostCommentForComparedCommitResponse)
+
+-- | In the directionality you established, the full commit ID of the before
+-- commit.
+postCommentForComparedCommitResponse_beforeCommitId :: Lens.Lens' PostCommentForComparedCommitResponse (Prelude.Maybe Prelude.Text)
+postCommentForComparedCommitResponse_beforeCommitId = Lens.lens (\PostCommentForComparedCommitResponse' {beforeCommitId} -> beforeCommitId) (\s@PostCommentForComparedCommitResponse' {} a -> s {beforeCommitId = a} :: PostCommentForComparedCommitResponse)
+
+-- | The content of the comment you posted.
+postCommentForComparedCommitResponse_comment :: Lens.Lens' PostCommentForComparedCommitResponse (Prelude.Maybe Comment)
+postCommentForComparedCommitResponse_comment = Lens.lens (\PostCommentForComparedCommitResponse' {comment} -> comment) (\s@PostCommentForComparedCommitResponse' {} a -> s {comment = a} :: PostCommentForComparedCommitResponse)
+
+-- | The location of the comment in the comparison between the two commits.
+postCommentForComparedCommitResponse_location :: Lens.Lens' PostCommentForComparedCommitResponse (Prelude.Maybe Location)
+postCommentForComparedCommitResponse_location = Lens.lens (\PostCommentForComparedCommitResponse' {location} -> location) (\s@PostCommentForComparedCommitResponse' {} a -> s {location = a} :: PostCommentForComparedCommitResponse)
+
+-- | The name of the repository where you posted a comment on the comparison
+-- between commits.
+postCommentForComparedCommitResponse_repositoryName :: Lens.Lens' PostCommentForComparedCommitResponse (Prelude.Maybe Prelude.Text)
+postCommentForComparedCommitResponse_repositoryName = Lens.lens (\PostCommentForComparedCommitResponse' {repositoryName} -> repositoryName) (\s@PostCommentForComparedCommitResponse' {} a -> s {repositoryName = a} :: PostCommentForComparedCommitResponse)
+
+-- | The response's http status code.
+postCommentForComparedCommitResponse_httpStatus :: Lens.Lens' PostCommentForComparedCommitResponse Prelude.Int
+postCommentForComparedCommitResponse_httpStatus = Lens.lens (\PostCommentForComparedCommitResponse' {httpStatus} -> httpStatus) (\s@PostCommentForComparedCommitResponse' {} a -> s {httpStatus = a} :: PostCommentForComparedCommitResponse)
+
+instance
+  Prelude.NFData
+    PostCommentForComparedCommitResponse
+  where
+  rnf PostCommentForComparedCommitResponse' {..} =
+    Prelude.rnf afterBlobId
+      `Prelude.seq` Prelude.rnf afterCommitId
+      `Prelude.seq` Prelude.rnf beforeBlobId
+      `Prelude.seq` Prelude.rnf beforeCommitId
+      `Prelude.seq` Prelude.rnf comment
+      `Prelude.seq` Prelude.rnf location
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/PostCommentForPullRequest.hs b/gen/Amazonka/CodeCommit/PostCommentForPullRequest.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/PostCommentForPullRequest.hs
@@ -0,0 +1,406 @@
+{-# 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.CodeCommit.PostCommentForPullRequest
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Posts a comment on a pull request.
+module Amazonka.CodeCommit.PostCommentForPullRequest
+  ( -- * Creating a Request
+    PostCommentForPullRequest (..),
+    newPostCommentForPullRequest,
+
+    -- * Request Lenses
+    postCommentForPullRequest_clientRequestToken,
+    postCommentForPullRequest_location,
+    postCommentForPullRequest_pullRequestId,
+    postCommentForPullRequest_repositoryName,
+    postCommentForPullRequest_beforeCommitId,
+    postCommentForPullRequest_afterCommitId,
+    postCommentForPullRequest_content,
+
+    -- * Destructuring the Response
+    PostCommentForPullRequestResponse (..),
+    newPostCommentForPullRequestResponse,
+
+    -- * Response Lenses
+    postCommentForPullRequestResponse_afterBlobId,
+    postCommentForPullRequestResponse_afterCommitId,
+    postCommentForPullRequestResponse_beforeBlobId,
+    postCommentForPullRequestResponse_beforeCommitId,
+    postCommentForPullRequestResponse_comment,
+    postCommentForPullRequestResponse_location,
+    postCommentForPullRequestResponse_pullRequestId,
+    postCommentForPullRequestResponse_repositoryName,
+    postCommentForPullRequestResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newPostCommentForPullRequest' smart constructor.
+data PostCommentForPullRequest = PostCommentForPullRequest'
+  { -- | A unique, client-generated idempotency token that, when provided in a
+    -- request, ensures the request cannot be repeated with a changed
+    -- parameter. If a request is received with the same parameters and a token
+    -- is included, the request returns information about the initial request
+    -- that used that token.
+    clientRequestToken :: Prelude.Maybe Prelude.Text,
+    -- | The location of the change where you want to post your comment. If no
+    -- location is provided, the comment is posted as a general comment on the
+    -- pull request difference between the before commit ID and the after
+    -- commit ID.
+    location :: Prelude.Maybe Location,
+    -- | The system-generated ID of the pull request. To get this ID, use
+    -- ListPullRequests.
+    pullRequestId :: Prelude.Text,
+    -- | The name of the repository where you want to post a comment on a pull
+    -- request.
+    repositoryName :: Prelude.Text,
+    -- | The full commit ID of the commit in the destination branch that was the
+    -- tip of the branch at the time the pull request was created.
+    beforeCommitId :: Prelude.Text,
+    -- | The full commit ID of the commit in the source branch that is the
+    -- current tip of the branch for the pull request when you post the
+    -- comment.
+    afterCommitId :: Prelude.Text,
+    -- | The content of your comment on the change.
+    content :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PostCommentForPullRequest' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'clientRequestToken', 'postCommentForPullRequest_clientRequestToken' - A unique, client-generated idempotency token that, when provided in a
+-- request, ensures the request cannot be repeated with a changed
+-- parameter. If a request is received with the same parameters and a token
+-- is included, the request returns information about the initial request
+-- that used that token.
+--
+-- 'location', 'postCommentForPullRequest_location' - The location of the change where you want to post your comment. If no
+-- location is provided, the comment is posted as a general comment on the
+-- pull request difference between the before commit ID and the after
+-- commit ID.
+--
+-- 'pullRequestId', 'postCommentForPullRequest_pullRequestId' - The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+--
+-- 'repositoryName', 'postCommentForPullRequest_repositoryName' - The name of the repository where you want to post a comment on a pull
+-- request.
+--
+-- 'beforeCommitId', 'postCommentForPullRequest_beforeCommitId' - The full commit ID of the commit in the destination branch that was the
+-- tip of the branch at the time the pull request was created.
+--
+-- 'afterCommitId', 'postCommentForPullRequest_afterCommitId' - The full commit ID of the commit in the source branch that is the
+-- current tip of the branch for the pull request when you post the
+-- comment.
+--
+-- 'content', 'postCommentForPullRequest_content' - The content of your comment on the change.
+newPostCommentForPullRequest ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'beforeCommitId'
+  Prelude.Text ->
+  -- | 'afterCommitId'
+  Prelude.Text ->
+  -- | 'content'
+  Prelude.Text ->
+  PostCommentForPullRequest
+newPostCommentForPullRequest
+  pPullRequestId_
+  pRepositoryName_
+  pBeforeCommitId_
+  pAfterCommitId_
+  pContent_ =
+    PostCommentForPullRequest'
+      { clientRequestToken =
+          Prelude.Nothing,
+        location = Prelude.Nothing,
+        pullRequestId = pPullRequestId_,
+        repositoryName = pRepositoryName_,
+        beforeCommitId = pBeforeCommitId_,
+        afterCommitId = pAfterCommitId_,
+        content = pContent_
+      }
+
+-- | A unique, client-generated idempotency token that, when provided in a
+-- request, ensures the request cannot be repeated with a changed
+-- parameter. If a request is received with the same parameters and a token
+-- is included, the request returns information about the initial request
+-- that used that token.
+postCommentForPullRequest_clientRequestToken :: Lens.Lens' PostCommentForPullRequest (Prelude.Maybe Prelude.Text)
+postCommentForPullRequest_clientRequestToken = Lens.lens (\PostCommentForPullRequest' {clientRequestToken} -> clientRequestToken) (\s@PostCommentForPullRequest' {} a -> s {clientRequestToken = a} :: PostCommentForPullRequest)
+
+-- | The location of the change where you want to post your comment. If no
+-- location is provided, the comment is posted as a general comment on the
+-- pull request difference between the before commit ID and the after
+-- commit ID.
+postCommentForPullRequest_location :: Lens.Lens' PostCommentForPullRequest (Prelude.Maybe Location)
+postCommentForPullRequest_location = Lens.lens (\PostCommentForPullRequest' {location} -> location) (\s@PostCommentForPullRequest' {} a -> s {location = a} :: PostCommentForPullRequest)
+
+-- | The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+postCommentForPullRequest_pullRequestId :: Lens.Lens' PostCommentForPullRequest Prelude.Text
+postCommentForPullRequest_pullRequestId = Lens.lens (\PostCommentForPullRequest' {pullRequestId} -> pullRequestId) (\s@PostCommentForPullRequest' {} a -> s {pullRequestId = a} :: PostCommentForPullRequest)
+
+-- | The name of the repository where you want to post a comment on a pull
+-- request.
+postCommentForPullRequest_repositoryName :: Lens.Lens' PostCommentForPullRequest Prelude.Text
+postCommentForPullRequest_repositoryName = Lens.lens (\PostCommentForPullRequest' {repositoryName} -> repositoryName) (\s@PostCommentForPullRequest' {} a -> s {repositoryName = a} :: PostCommentForPullRequest)
+
+-- | The full commit ID of the commit in the destination branch that was the
+-- tip of the branch at the time the pull request was created.
+postCommentForPullRequest_beforeCommitId :: Lens.Lens' PostCommentForPullRequest Prelude.Text
+postCommentForPullRequest_beforeCommitId = Lens.lens (\PostCommentForPullRequest' {beforeCommitId} -> beforeCommitId) (\s@PostCommentForPullRequest' {} a -> s {beforeCommitId = a} :: PostCommentForPullRequest)
+
+-- | The full commit ID of the commit in the source branch that is the
+-- current tip of the branch for the pull request when you post the
+-- comment.
+postCommentForPullRequest_afterCommitId :: Lens.Lens' PostCommentForPullRequest Prelude.Text
+postCommentForPullRequest_afterCommitId = Lens.lens (\PostCommentForPullRequest' {afterCommitId} -> afterCommitId) (\s@PostCommentForPullRequest' {} a -> s {afterCommitId = a} :: PostCommentForPullRequest)
+
+-- | The content of your comment on the change.
+postCommentForPullRequest_content :: Lens.Lens' PostCommentForPullRequest Prelude.Text
+postCommentForPullRequest_content = Lens.lens (\PostCommentForPullRequest' {content} -> content) (\s@PostCommentForPullRequest' {} a -> s {content = a} :: PostCommentForPullRequest)
+
+instance Core.AWSRequest PostCommentForPullRequest where
+  type
+    AWSResponse PostCommentForPullRequest =
+      PostCommentForPullRequestResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          PostCommentForPullRequestResponse'
+            Prelude.<$> (x Data..?> "afterBlobId")
+            Prelude.<*> (x Data..?> "afterCommitId")
+            Prelude.<*> (x Data..?> "beforeBlobId")
+            Prelude.<*> (x Data..?> "beforeCommitId")
+            Prelude.<*> (x Data..?> "comment")
+            Prelude.<*> (x Data..?> "location")
+            Prelude.<*> (x Data..?> "pullRequestId")
+            Prelude.<*> (x Data..?> "repositoryName")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable PostCommentForPullRequest where
+  hashWithSalt _salt PostCommentForPullRequest' {..} =
+    _salt
+      `Prelude.hashWithSalt` clientRequestToken
+      `Prelude.hashWithSalt` location
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` beforeCommitId
+      `Prelude.hashWithSalt` afterCommitId
+      `Prelude.hashWithSalt` content
+
+instance Prelude.NFData PostCommentForPullRequest where
+  rnf PostCommentForPullRequest' {..} =
+    Prelude.rnf clientRequestToken
+      `Prelude.seq` Prelude.rnf location
+      `Prelude.seq` Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf beforeCommitId
+      `Prelude.seq` Prelude.rnf afterCommitId
+      `Prelude.seq` Prelude.rnf content
+
+instance Data.ToHeaders PostCommentForPullRequest where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.PostCommentForPullRequest" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON PostCommentForPullRequest where
+  toJSON PostCommentForPullRequest' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("clientRequestToken" Data..=)
+              Prelude.<$> clientRequestToken,
+            ("location" Data..=) Prelude.<$> location,
+            Prelude.Just ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ("beforeCommitId" Data..= beforeCommitId),
+            Prelude.Just ("afterCommitId" Data..= afterCommitId),
+            Prelude.Just ("content" Data..= content)
+          ]
+      )
+
+instance Data.ToPath PostCommentForPullRequest where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery PostCommentForPullRequest where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newPostCommentForPullRequestResponse' smart constructor.
+data PostCommentForPullRequestResponse = PostCommentForPullRequestResponse'
+  { -- | In the directionality of the pull request, the blob ID of the after
+    -- blob.
+    afterBlobId :: Prelude.Maybe Prelude.Text,
+    -- | The full commit ID of the commit in the destination branch where the
+    -- pull request is merged.
+    afterCommitId :: Prelude.Maybe Prelude.Text,
+    -- | In the directionality of the pull request, the blob ID of the before
+    -- blob.
+    beforeBlobId :: Prelude.Maybe Prelude.Text,
+    -- | The full commit ID of the commit in the source branch used to create the
+    -- pull request, or in the case of an updated pull request, the full commit
+    -- ID of the commit used to update the pull request.
+    beforeCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The content of the comment you posted.
+    comment :: Prelude.Maybe Comment,
+    -- | The location of the change where you posted your comment.
+    location :: Prelude.Maybe Location,
+    -- | The system-generated ID of the pull request.
+    pullRequestId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where you posted a comment on a pull request.
+    repositoryName :: 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 'PostCommentForPullRequestResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'afterBlobId', 'postCommentForPullRequestResponse_afterBlobId' - In the directionality of the pull request, the blob ID of the after
+-- blob.
+--
+-- 'afterCommitId', 'postCommentForPullRequestResponse_afterCommitId' - The full commit ID of the commit in the destination branch where the
+-- pull request is merged.
+--
+-- 'beforeBlobId', 'postCommentForPullRequestResponse_beforeBlobId' - In the directionality of the pull request, the blob ID of the before
+-- blob.
+--
+-- 'beforeCommitId', 'postCommentForPullRequestResponse_beforeCommitId' - The full commit ID of the commit in the source branch used to create the
+-- pull request, or in the case of an updated pull request, the full commit
+-- ID of the commit used to update the pull request.
+--
+-- 'comment', 'postCommentForPullRequestResponse_comment' - The content of the comment you posted.
+--
+-- 'location', 'postCommentForPullRequestResponse_location' - The location of the change where you posted your comment.
+--
+-- 'pullRequestId', 'postCommentForPullRequestResponse_pullRequestId' - The system-generated ID of the pull request.
+--
+-- 'repositoryName', 'postCommentForPullRequestResponse_repositoryName' - The name of the repository where you posted a comment on a pull request.
+--
+-- 'httpStatus', 'postCommentForPullRequestResponse_httpStatus' - The response's http status code.
+newPostCommentForPullRequestResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  PostCommentForPullRequestResponse
+newPostCommentForPullRequestResponse pHttpStatus_ =
+  PostCommentForPullRequestResponse'
+    { afterBlobId =
+        Prelude.Nothing,
+      afterCommitId = Prelude.Nothing,
+      beforeBlobId = Prelude.Nothing,
+      beforeCommitId = Prelude.Nothing,
+      comment = Prelude.Nothing,
+      location = Prelude.Nothing,
+      pullRequestId = Prelude.Nothing,
+      repositoryName = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | In the directionality of the pull request, the blob ID of the after
+-- blob.
+postCommentForPullRequestResponse_afterBlobId :: Lens.Lens' PostCommentForPullRequestResponse (Prelude.Maybe Prelude.Text)
+postCommentForPullRequestResponse_afterBlobId = Lens.lens (\PostCommentForPullRequestResponse' {afterBlobId} -> afterBlobId) (\s@PostCommentForPullRequestResponse' {} a -> s {afterBlobId = a} :: PostCommentForPullRequestResponse)
+
+-- | The full commit ID of the commit in the destination branch where the
+-- pull request is merged.
+postCommentForPullRequestResponse_afterCommitId :: Lens.Lens' PostCommentForPullRequestResponse (Prelude.Maybe Prelude.Text)
+postCommentForPullRequestResponse_afterCommitId = Lens.lens (\PostCommentForPullRequestResponse' {afterCommitId} -> afterCommitId) (\s@PostCommentForPullRequestResponse' {} a -> s {afterCommitId = a} :: PostCommentForPullRequestResponse)
+
+-- | In the directionality of the pull request, the blob ID of the before
+-- blob.
+postCommentForPullRequestResponse_beforeBlobId :: Lens.Lens' PostCommentForPullRequestResponse (Prelude.Maybe Prelude.Text)
+postCommentForPullRequestResponse_beforeBlobId = Lens.lens (\PostCommentForPullRequestResponse' {beforeBlobId} -> beforeBlobId) (\s@PostCommentForPullRequestResponse' {} a -> s {beforeBlobId = a} :: PostCommentForPullRequestResponse)
+
+-- | The full commit ID of the commit in the source branch used to create the
+-- pull request, or in the case of an updated pull request, the full commit
+-- ID of the commit used to update the pull request.
+postCommentForPullRequestResponse_beforeCommitId :: Lens.Lens' PostCommentForPullRequestResponse (Prelude.Maybe Prelude.Text)
+postCommentForPullRequestResponse_beforeCommitId = Lens.lens (\PostCommentForPullRequestResponse' {beforeCommitId} -> beforeCommitId) (\s@PostCommentForPullRequestResponse' {} a -> s {beforeCommitId = a} :: PostCommentForPullRequestResponse)
+
+-- | The content of the comment you posted.
+postCommentForPullRequestResponse_comment :: Lens.Lens' PostCommentForPullRequestResponse (Prelude.Maybe Comment)
+postCommentForPullRequestResponse_comment = Lens.lens (\PostCommentForPullRequestResponse' {comment} -> comment) (\s@PostCommentForPullRequestResponse' {} a -> s {comment = a} :: PostCommentForPullRequestResponse)
+
+-- | The location of the change where you posted your comment.
+postCommentForPullRequestResponse_location :: Lens.Lens' PostCommentForPullRequestResponse (Prelude.Maybe Location)
+postCommentForPullRequestResponse_location = Lens.lens (\PostCommentForPullRequestResponse' {location} -> location) (\s@PostCommentForPullRequestResponse' {} a -> s {location = a} :: PostCommentForPullRequestResponse)
+
+-- | The system-generated ID of the pull request.
+postCommentForPullRequestResponse_pullRequestId :: Lens.Lens' PostCommentForPullRequestResponse (Prelude.Maybe Prelude.Text)
+postCommentForPullRequestResponse_pullRequestId = Lens.lens (\PostCommentForPullRequestResponse' {pullRequestId} -> pullRequestId) (\s@PostCommentForPullRequestResponse' {} a -> s {pullRequestId = a} :: PostCommentForPullRequestResponse)
+
+-- | The name of the repository where you posted a comment on a pull request.
+postCommentForPullRequestResponse_repositoryName :: Lens.Lens' PostCommentForPullRequestResponse (Prelude.Maybe Prelude.Text)
+postCommentForPullRequestResponse_repositoryName = Lens.lens (\PostCommentForPullRequestResponse' {repositoryName} -> repositoryName) (\s@PostCommentForPullRequestResponse' {} a -> s {repositoryName = a} :: PostCommentForPullRequestResponse)
+
+-- | The response's http status code.
+postCommentForPullRequestResponse_httpStatus :: Lens.Lens' PostCommentForPullRequestResponse Prelude.Int
+postCommentForPullRequestResponse_httpStatus = Lens.lens (\PostCommentForPullRequestResponse' {httpStatus} -> httpStatus) (\s@PostCommentForPullRequestResponse' {} a -> s {httpStatus = a} :: PostCommentForPullRequestResponse)
+
+instance
+  Prelude.NFData
+    PostCommentForPullRequestResponse
+  where
+  rnf PostCommentForPullRequestResponse' {..} =
+    Prelude.rnf afterBlobId
+      `Prelude.seq` Prelude.rnf afterCommitId
+      `Prelude.seq` Prelude.rnf beforeBlobId
+      `Prelude.seq` Prelude.rnf beforeCommitId
+      `Prelude.seq` Prelude.rnf comment
+      `Prelude.seq` Prelude.rnf location
+      `Prelude.seq` Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/PostCommentReply.hs b/gen/Amazonka/CodeCommit/PostCommentReply.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/PostCommentReply.hs
@@ -0,0 +1,222 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.PostCommentReply
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Posts a comment in reply to an existing comment on a comparison between
+-- commits or a pull request.
+module Amazonka.CodeCommit.PostCommentReply
+  ( -- * Creating a Request
+    PostCommentReply (..),
+    newPostCommentReply,
+
+    -- * Request Lenses
+    postCommentReply_clientRequestToken,
+    postCommentReply_inReplyTo,
+    postCommentReply_content,
+
+    -- * Destructuring the Response
+    PostCommentReplyResponse (..),
+    newPostCommentReplyResponse,
+
+    -- * Response Lenses
+    postCommentReplyResponse_comment,
+    postCommentReplyResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newPostCommentReply' smart constructor.
+data PostCommentReply = PostCommentReply'
+  { -- | A unique, client-generated idempotency token that, when provided in a
+    -- request, ensures the request cannot be repeated with a changed
+    -- parameter. If a request is received with the same parameters and a token
+    -- is included, the request returns information about the initial request
+    -- that used that token.
+    clientRequestToken :: Prelude.Maybe Prelude.Text,
+    -- | The system-generated ID of the comment to which you want to reply. To
+    -- get this ID, use GetCommentsForComparedCommit or
+    -- GetCommentsForPullRequest.
+    inReplyTo :: Prelude.Text,
+    -- | The contents of your reply to a comment.
+    content :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PostCommentReply' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'clientRequestToken', 'postCommentReply_clientRequestToken' - A unique, client-generated idempotency token that, when provided in a
+-- request, ensures the request cannot be repeated with a changed
+-- parameter. If a request is received with the same parameters and a token
+-- is included, the request returns information about the initial request
+-- that used that token.
+--
+-- 'inReplyTo', 'postCommentReply_inReplyTo' - The system-generated ID of the comment to which you want to reply. To
+-- get this ID, use GetCommentsForComparedCommit or
+-- GetCommentsForPullRequest.
+--
+-- 'content', 'postCommentReply_content' - The contents of your reply to a comment.
+newPostCommentReply ::
+  -- | 'inReplyTo'
+  Prelude.Text ->
+  -- | 'content'
+  Prelude.Text ->
+  PostCommentReply
+newPostCommentReply pInReplyTo_ pContent_ =
+  PostCommentReply'
+    { clientRequestToken =
+        Prelude.Nothing,
+      inReplyTo = pInReplyTo_,
+      content = pContent_
+    }
+
+-- | A unique, client-generated idempotency token that, when provided in a
+-- request, ensures the request cannot be repeated with a changed
+-- parameter. If a request is received with the same parameters and a token
+-- is included, the request returns information about the initial request
+-- that used that token.
+postCommentReply_clientRequestToken :: Lens.Lens' PostCommentReply (Prelude.Maybe Prelude.Text)
+postCommentReply_clientRequestToken = Lens.lens (\PostCommentReply' {clientRequestToken} -> clientRequestToken) (\s@PostCommentReply' {} a -> s {clientRequestToken = a} :: PostCommentReply)
+
+-- | The system-generated ID of the comment to which you want to reply. To
+-- get this ID, use GetCommentsForComparedCommit or
+-- GetCommentsForPullRequest.
+postCommentReply_inReplyTo :: Lens.Lens' PostCommentReply Prelude.Text
+postCommentReply_inReplyTo = Lens.lens (\PostCommentReply' {inReplyTo} -> inReplyTo) (\s@PostCommentReply' {} a -> s {inReplyTo = a} :: PostCommentReply)
+
+-- | The contents of your reply to a comment.
+postCommentReply_content :: Lens.Lens' PostCommentReply Prelude.Text
+postCommentReply_content = Lens.lens (\PostCommentReply' {content} -> content) (\s@PostCommentReply' {} a -> s {content = a} :: PostCommentReply)
+
+instance Core.AWSRequest PostCommentReply where
+  type
+    AWSResponse PostCommentReply =
+      PostCommentReplyResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          PostCommentReplyResponse'
+            Prelude.<$> (x Data..?> "comment")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable PostCommentReply where
+  hashWithSalt _salt PostCommentReply' {..} =
+    _salt
+      `Prelude.hashWithSalt` clientRequestToken
+      `Prelude.hashWithSalt` inReplyTo
+      `Prelude.hashWithSalt` content
+
+instance Prelude.NFData PostCommentReply where
+  rnf PostCommentReply' {..} =
+    Prelude.rnf clientRequestToken
+      `Prelude.seq` Prelude.rnf inReplyTo
+      `Prelude.seq` Prelude.rnf content
+
+instance Data.ToHeaders PostCommentReply where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.PostCommentReply" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON PostCommentReply where
+  toJSON PostCommentReply' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("clientRequestToken" Data..=)
+              Prelude.<$> clientRequestToken,
+            Prelude.Just ("inReplyTo" Data..= inReplyTo),
+            Prelude.Just ("content" Data..= content)
+          ]
+      )
+
+instance Data.ToPath PostCommentReply where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery PostCommentReply where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newPostCommentReplyResponse' smart constructor.
+data PostCommentReplyResponse = PostCommentReplyResponse'
+  { -- | Information about the reply to a comment.
+    comment :: Prelude.Maybe Comment,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PostCommentReplyResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'comment', 'postCommentReplyResponse_comment' - Information about the reply to a comment.
+--
+-- 'httpStatus', 'postCommentReplyResponse_httpStatus' - The response's http status code.
+newPostCommentReplyResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  PostCommentReplyResponse
+newPostCommentReplyResponse pHttpStatus_ =
+  PostCommentReplyResponse'
+    { comment =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about the reply to a comment.
+postCommentReplyResponse_comment :: Lens.Lens' PostCommentReplyResponse (Prelude.Maybe Comment)
+postCommentReplyResponse_comment = Lens.lens (\PostCommentReplyResponse' {comment} -> comment) (\s@PostCommentReplyResponse' {} a -> s {comment = a} :: PostCommentReplyResponse)
+
+-- | The response's http status code.
+postCommentReplyResponse_httpStatus :: Lens.Lens' PostCommentReplyResponse Prelude.Int
+postCommentReplyResponse_httpStatus = Lens.lens (\PostCommentReplyResponse' {httpStatus} -> httpStatus) (\s@PostCommentReplyResponse' {} a -> s {httpStatus = a} :: PostCommentReplyResponse)
+
+instance Prelude.NFData PostCommentReplyResponse where
+  rnf PostCommentReplyResponse' {..} =
+    Prelude.rnf comment
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/PutCommentReaction.hs b/gen/Amazonka/CodeCommit/PutCommentReaction.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/PutCommentReaction.hs
@@ -0,0 +1,169 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.PutCommentReaction
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds or updates a reaction to a specified comment for the user whose
+-- identity is used to make the request. You can only add or update a
+-- reaction for yourself. You cannot add, modify, or delete a reaction for
+-- another user.
+module Amazonka.CodeCommit.PutCommentReaction
+  ( -- * Creating a Request
+    PutCommentReaction (..),
+    newPutCommentReaction,
+
+    -- * Request Lenses
+    putCommentReaction_commentId,
+    putCommentReaction_reactionValue,
+
+    -- * Destructuring the Response
+    PutCommentReactionResponse (..),
+    newPutCommentReactionResponse,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newPutCommentReaction' smart constructor.
+data PutCommentReaction = PutCommentReaction'
+  { -- | The ID of the comment to which you want to add or update a reaction.
+    commentId :: Prelude.Text,
+    -- | The emoji reaction you want to add or update. To remove a reaction,
+    -- provide a value of blank or null. You can also provide the value of
+    -- none. For information about emoji reaction values supported in AWS
+    -- CodeCommit, see the
+    -- <https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-commit-comment.html#emoji-reaction-table AWS CodeCommit User Guide>.
+    reactionValue :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PutCommentReaction' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commentId', 'putCommentReaction_commentId' - The ID of the comment to which you want to add or update a reaction.
+--
+-- 'reactionValue', 'putCommentReaction_reactionValue' - The emoji reaction you want to add or update. To remove a reaction,
+-- provide a value of blank or null. You can also provide the value of
+-- none. For information about emoji reaction values supported in AWS
+-- CodeCommit, see the
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-commit-comment.html#emoji-reaction-table AWS CodeCommit User Guide>.
+newPutCommentReaction ::
+  -- | 'commentId'
+  Prelude.Text ->
+  -- | 'reactionValue'
+  Prelude.Text ->
+  PutCommentReaction
+newPutCommentReaction pCommentId_ pReactionValue_ =
+  PutCommentReaction'
+    { commentId = pCommentId_,
+      reactionValue = pReactionValue_
+    }
+
+-- | The ID of the comment to which you want to add or update a reaction.
+putCommentReaction_commentId :: Lens.Lens' PutCommentReaction Prelude.Text
+putCommentReaction_commentId = Lens.lens (\PutCommentReaction' {commentId} -> commentId) (\s@PutCommentReaction' {} a -> s {commentId = a} :: PutCommentReaction)
+
+-- | The emoji reaction you want to add or update. To remove a reaction,
+-- provide a value of blank or null. You can also provide the value of
+-- none. For information about emoji reaction values supported in AWS
+-- CodeCommit, see the
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-commit-comment.html#emoji-reaction-table AWS CodeCommit User Guide>.
+putCommentReaction_reactionValue :: Lens.Lens' PutCommentReaction Prelude.Text
+putCommentReaction_reactionValue = Lens.lens (\PutCommentReaction' {reactionValue} -> reactionValue) (\s@PutCommentReaction' {} a -> s {reactionValue = a} :: PutCommentReaction)
+
+instance Core.AWSRequest PutCommentReaction where
+  type
+    AWSResponse PutCommentReaction =
+      PutCommentReactionResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveNull PutCommentReactionResponse'
+
+instance Prelude.Hashable PutCommentReaction where
+  hashWithSalt _salt PutCommentReaction' {..} =
+    _salt
+      `Prelude.hashWithSalt` commentId
+      `Prelude.hashWithSalt` reactionValue
+
+instance Prelude.NFData PutCommentReaction where
+  rnf PutCommentReaction' {..} =
+    Prelude.rnf commentId
+      `Prelude.seq` Prelude.rnf reactionValue
+
+instance Data.ToHeaders PutCommentReaction where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.PutCommentReaction" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON PutCommentReaction where
+  toJSON PutCommentReaction' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("commentId" Data..= commentId),
+            Prelude.Just
+              ("reactionValue" Data..= reactionValue)
+          ]
+      )
+
+instance Data.ToPath PutCommentReaction where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery PutCommentReaction where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newPutCommentReactionResponse' smart constructor.
+data PutCommentReactionResponse = PutCommentReactionResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PutCommentReactionResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newPutCommentReactionResponse ::
+  PutCommentReactionResponse
+newPutCommentReactionResponse =
+  PutCommentReactionResponse'
+
+instance Prelude.NFData PutCommentReactionResponse where
+  rnf _ = ()
diff --git a/gen/Amazonka/CodeCommit/PutFile.hs b/gen/Amazonka/CodeCommit/PutFile.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/PutFile.hs
@@ -0,0 +1,380 @@
+{-# 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.CodeCommit.PutFile
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds or updates a file in a branch in an AWS CodeCommit repository, and
+-- generates a commit for the addition in the specified branch.
+module Amazonka.CodeCommit.PutFile
+  ( -- * Creating a Request
+    PutFile (..),
+    newPutFile,
+
+    -- * Request Lenses
+    putFile_commitMessage,
+    putFile_email,
+    putFile_fileMode,
+    putFile_name,
+    putFile_parentCommitId,
+    putFile_repositoryName,
+    putFile_branchName,
+    putFile_fileContent,
+    putFile_filePath,
+
+    -- * Destructuring the Response
+    PutFileResponse (..),
+    newPutFileResponse,
+
+    -- * Response Lenses
+    putFileResponse_httpStatus,
+    putFileResponse_commitId,
+    putFileResponse_blobId,
+    putFileResponse_treeId,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newPutFile' smart constructor.
+data PutFile = PutFile'
+  { -- | A message about why this file was added or updated. Although it is
+    -- optional, a message makes the commit history for your repository more
+    -- useful.
+    commitMessage :: Prelude.Maybe Prelude.Text,
+    -- | An email address for the person adding or updating the file.
+    email :: Prelude.Maybe Prelude.Text,
+    -- | The file mode permissions of the blob. Valid file mode permissions are
+    -- listed here.
+    fileMode :: Prelude.Maybe FileModeTypeEnum,
+    -- | The name of the person adding or updating the file. Although it is
+    -- optional, a name makes the commit history for your repository more
+    -- useful.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The full commit ID of the head commit in the branch where you want to
+    -- add or update the file. If this is an empty repository, no commit ID is
+    -- required. If this is not an empty repository, a commit ID is required.
+    --
+    -- The commit ID must match the ID of the head commit at the time of the
+    -- operation. Otherwise, an error occurs, and the file is not added or
+    -- updated.
+    parentCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where you want to add or update the file.
+    repositoryName :: Prelude.Text,
+    -- | The name of the branch where you want to add or update the file. If this
+    -- is an empty repository, this branch is created.
+    branchName :: Prelude.Text,
+    -- | The content of the file, in binary object format.
+    fileContent :: Data.Base64,
+    -- | The name of the file you want to add or update, including the relative
+    -- path to the file in the repository.
+    --
+    -- If the path does not currently exist in the repository, the path is
+    -- created as part of adding the file.
+    filePath :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PutFile' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commitMessage', 'putFile_commitMessage' - A message about why this file was added or updated. Although it is
+-- optional, a message makes the commit history for your repository more
+-- useful.
+--
+-- 'email', 'putFile_email' - An email address for the person adding or updating the file.
+--
+-- 'fileMode', 'putFile_fileMode' - The file mode permissions of the blob. Valid file mode permissions are
+-- listed here.
+--
+-- 'name', 'putFile_name' - The name of the person adding or updating the file. Although it is
+-- optional, a name makes the commit history for your repository more
+-- useful.
+--
+-- 'parentCommitId', 'putFile_parentCommitId' - The full commit ID of the head commit in the branch where you want to
+-- add or update the file. If this is an empty repository, no commit ID is
+-- required. If this is not an empty repository, a commit ID is required.
+--
+-- The commit ID must match the ID of the head commit at the time of the
+-- operation. Otherwise, an error occurs, and the file is not added or
+-- updated.
+--
+-- 'repositoryName', 'putFile_repositoryName' - The name of the repository where you want to add or update the file.
+--
+-- 'branchName', 'putFile_branchName' - The name of the branch where you want to add or update the file. If this
+-- is an empty repository, this branch is created.
+--
+-- 'fileContent', 'putFile_fileContent' - The content of the file, in binary object format.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+--
+-- 'filePath', 'putFile_filePath' - The name of the file you want to add or update, including the relative
+-- path to the file in the repository.
+--
+-- If the path does not currently exist in the repository, the path is
+-- created as part of adding the file.
+newPutFile ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'branchName'
+  Prelude.Text ->
+  -- | 'fileContent'
+  Prelude.ByteString ->
+  -- | 'filePath'
+  Prelude.Text ->
+  PutFile
+newPutFile
+  pRepositoryName_
+  pBranchName_
+  pFileContent_
+  pFilePath_ =
+    PutFile'
+      { commitMessage = Prelude.Nothing,
+        email = Prelude.Nothing,
+        fileMode = Prelude.Nothing,
+        name = Prelude.Nothing,
+        parentCommitId = Prelude.Nothing,
+        repositoryName = pRepositoryName_,
+        branchName = pBranchName_,
+        fileContent = Data._Base64 Lens.# pFileContent_,
+        filePath = pFilePath_
+      }
+
+-- | A message about why this file was added or updated. Although it is
+-- optional, a message makes the commit history for your repository more
+-- useful.
+putFile_commitMessage :: Lens.Lens' PutFile (Prelude.Maybe Prelude.Text)
+putFile_commitMessage = Lens.lens (\PutFile' {commitMessage} -> commitMessage) (\s@PutFile' {} a -> s {commitMessage = a} :: PutFile)
+
+-- | An email address for the person adding or updating the file.
+putFile_email :: Lens.Lens' PutFile (Prelude.Maybe Prelude.Text)
+putFile_email = Lens.lens (\PutFile' {email} -> email) (\s@PutFile' {} a -> s {email = a} :: PutFile)
+
+-- | The file mode permissions of the blob. Valid file mode permissions are
+-- listed here.
+putFile_fileMode :: Lens.Lens' PutFile (Prelude.Maybe FileModeTypeEnum)
+putFile_fileMode = Lens.lens (\PutFile' {fileMode} -> fileMode) (\s@PutFile' {} a -> s {fileMode = a} :: PutFile)
+
+-- | The name of the person adding or updating the file. Although it is
+-- optional, a name makes the commit history for your repository more
+-- useful.
+putFile_name :: Lens.Lens' PutFile (Prelude.Maybe Prelude.Text)
+putFile_name = Lens.lens (\PutFile' {name} -> name) (\s@PutFile' {} a -> s {name = a} :: PutFile)
+
+-- | The full commit ID of the head commit in the branch where you want to
+-- add or update the file. If this is an empty repository, no commit ID is
+-- required. If this is not an empty repository, a commit ID is required.
+--
+-- The commit ID must match the ID of the head commit at the time of the
+-- operation. Otherwise, an error occurs, and the file is not added or
+-- updated.
+putFile_parentCommitId :: Lens.Lens' PutFile (Prelude.Maybe Prelude.Text)
+putFile_parentCommitId = Lens.lens (\PutFile' {parentCommitId} -> parentCommitId) (\s@PutFile' {} a -> s {parentCommitId = a} :: PutFile)
+
+-- | The name of the repository where you want to add or update the file.
+putFile_repositoryName :: Lens.Lens' PutFile Prelude.Text
+putFile_repositoryName = Lens.lens (\PutFile' {repositoryName} -> repositoryName) (\s@PutFile' {} a -> s {repositoryName = a} :: PutFile)
+
+-- | The name of the branch where you want to add or update the file. If this
+-- is an empty repository, this branch is created.
+putFile_branchName :: Lens.Lens' PutFile Prelude.Text
+putFile_branchName = Lens.lens (\PutFile' {branchName} -> branchName) (\s@PutFile' {} a -> s {branchName = a} :: PutFile)
+
+-- | The content of the file, in binary object format.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+putFile_fileContent :: Lens.Lens' PutFile Prelude.ByteString
+putFile_fileContent = Lens.lens (\PutFile' {fileContent} -> fileContent) (\s@PutFile' {} a -> s {fileContent = a} :: PutFile) Prelude.. Data._Base64
+
+-- | The name of the file you want to add or update, including the relative
+-- path to the file in the repository.
+--
+-- If the path does not currently exist in the repository, the path is
+-- created as part of adding the file.
+putFile_filePath :: Lens.Lens' PutFile Prelude.Text
+putFile_filePath = Lens.lens (\PutFile' {filePath} -> filePath) (\s@PutFile' {} a -> s {filePath = a} :: PutFile)
+
+instance Core.AWSRequest PutFile where
+  type AWSResponse PutFile = PutFileResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          PutFileResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "commitId")
+            Prelude.<*> (x Data..:> "blobId")
+            Prelude.<*> (x Data..:> "treeId")
+      )
+
+instance Prelude.Hashable PutFile where
+  hashWithSalt _salt PutFile' {..} =
+    _salt
+      `Prelude.hashWithSalt` commitMessage
+      `Prelude.hashWithSalt` email
+      `Prelude.hashWithSalt` fileMode
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` parentCommitId
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` branchName
+      `Prelude.hashWithSalt` fileContent
+      `Prelude.hashWithSalt` filePath
+
+instance Prelude.NFData PutFile where
+  rnf PutFile' {..} =
+    Prelude.rnf commitMessage
+      `Prelude.seq` Prelude.rnf email
+      `Prelude.seq` Prelude.rnf fileMode
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf parentCommitId
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf branchName
+      `Prelude.seq` Prelude.rnf fileContent
+      `Prelude.seq` Prelude.rnf filePath
+
+instance Data.ToHeaders PutFile where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.PutFile" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON PutFile where
+  toJSON PutFile' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("commitMessage" Data..=) Prelude.<$> commitMessage,
+            ("email" Data..=) Prelude.<$> email,
+            ("fileMode" Data..=) Prelude.<$> fileMode,
+            ("name" Data..=) Prelude.<$> name,
+            ("parentCommitId" Data..=)
+              Prelude.<$> parentCommitId,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just ("branchName" Data..= branchName),
+            Prelude.Just ("fileContent" Data..= fileContent),
+            Prelude.Just ("filePath" Data..= filePath)
+          ]
+      )
+
+instance Data.ToPath PutFile where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery PutFile where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newPutFileResponse' smart constructor.
+data PutFileResponse = PutFileResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The full SHA ID of the commit that contains this file change.
+    commitId :: Prelude.Text,
+    -- | The ID of the blob, which is its SHA-1 pointer.
+    blobId :: Prelude.Text,
+    -- | The full SHA-1 pointer of the tree information for the commit that
+    -- contains this file change.
+    treeId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PutFileResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'putFileResponse_httpStatus' - The response's http status code.
+--
+-- 'commitId', 'putFileResponse_commitId' - The full SHA ID of the commit that contains this file change.
+--
+-- 'blobId', 'putFileResponse_blobId' - The ID of the blob, which is its SHA-1 pointer.
+--
+-- 'treeId', 'putFileResponse_treeId' - The full SHA-1 pointer of the tree information for the commit that
+-- contains this file change.
+newPutFileResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'commitId'
+  Prelude.Text ->
+  -- | 'blobId'
+  Prelude.Text ->
+  -- | 'treeId'
+  Prelude.Text ->
+  PutFileResponse
+newPutFileResponse
+  pHttpStatus_
+  pCommitId_
+  pBlobId_
+  pTreeId_ =
+    PutFileResponse'
+      { httpStatus = pHttpStatus_,
+        commitId = pCommitId_,
+        blobId = pBlobId_,
+        treeId = pTreeId_
+      }
+
+-- | The response's http status code.
+putFileResponse_httpStatus :: Lens.Lens' PutFileResponse Prelude.Int
+putFileResponse_httpStatus = Lens.lens (\PutFileResponse' {httpStatus} -> httpStatus) (\s@PutFileResponse' {} a -> s {httpStatus = a} :: PutFileResponse)
+
+-- | The full SHA ID of the commit that contains this file change.
+putFileResponse_commitId :: Lens.Lens' PutFileResponse Prelude.Text
+putFileResponse_commitId = Lens.lens (\PutFileResponse' {commitId} -> commitId) (\s@PutFileResponse' {} a -> s {commitId = a} :: PutFileResponse)
+
+-- | The ID of the blob, which is its SHA-1 pointer.
+putFileResponse_blobId :: Lens.Lens' PutFileResponse Prelude.Text
+putFileResponse_blobId = Lens.lens (\PutFileResponse' {blobId} -> blobId) (\s@PutFileResponse' {} a -> s {blobId = a} :: PutFileResponse)
+
+-- | The full SHA-1 pointer of the tree information for the commit that
+-- contains this file change.
+putFileResponse_treeId :: Lens.Lens' PutFileResponse Prelude.Text
+putFileResponse_treeId = Lens.lens (\PutFileResponse' {treeId} -> treeId) (\s@PutFileResponse' {} a -> s {treeId = a} :: PutFileResponse)
+
+instance Prelude.NFData PutFileResponse where
+  rnf PutFileResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf commitId
+      `Prelude.seq` Prelude.rnf blobId
+      `Prelude.seq` Prelude.rnf treeId
diff --git a/gen/Amazonka/CodeCommit/PutRepositoryTriggers.hs b/gen/Amazonka/CodeCommit/PutRepositoryTriggers.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/PutRepositoryTriggers.hs
@@ -0,0 +1,196 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.PutRepositoryTriggers
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Replaces all triggers for a repository. Used to create or delete
+-- triggers.
+module Amazonka.CodeCommit.PutRepositoryTriggers
+  ( -- * Creating a Request
+    PutRepositoryTriggers (..),
+    newPutRepositoryTriggers,
+
+    -- * Request Lenses
+    putRepositoryTriggers_repositoryName,
+    putRepositoryTriggers_triggers,
+
+    -- * Destructuring the Response
+    PutRepositoryTriggersResponse (..),
+    newPutRepositoryTriggersResponse,
+
+    -- * Response Lenses
+    putRepositoryTriggersResponse_configurationId,
+    putRepositoryTriggersResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a put repository triggers operation.
+--
+-- /See:/ 'newPutRepositoryTriggers' smart constructor.
+data PutRepositoryTriggers = PutRepositoryTriggers'
+  { -- | The name of the repository where you want to create or update the
+    -- trigger.
+    repositoryName :: Prelude.Text,
+    -- | The JSON block of configuration information for each trigger.
+    triggers :: [RepositoryTrigger]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PutRepositoryTriggers' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryName', 'putRepositoryTriggers_repositoryName' - The name of the repository where you want to create or update the
+-- trigger.
+--
+-- 'triggers', 'putRepositoryTriggers_triggers' - The JSON block of configuration information for each trigger.
+newPutRepositoryTriggers ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  PutRepositoryTriggers
+newPutRepositoryTriggers pRepositoryName_ =
+  PutRepositoryTriggers'
+    { repositoryName =
+        pRepositoryName_,
+      triggers = Prelude.mempty
+    }
+
+-- | The name of the repository where you want to create or update the
+-- trigger.
+putRepositoryTriggers_repositoryName :: Lens.Lens' PutRepositoryTriggers Prelude.Text
+putRepositoryTriggers_repositoryName = Lens.lens (\PutRepositoryTriggers' {repositoryName} -> repositoryName) (\s@PutRepositoryTriggers' {} a -> s {repositoryName = a} :: PutRepositoryTriggers)
+
+-- | The JSON block of configuration information for each trigger.
+putRepositoryTriggers_triggers :: Lens.Lens' PutRepositoryTriggers [RepositoryTrigger]
+putRepositoryTriggers_triggers = Lens.lens (\PutRepositoryTriggers' {triggers} -> triggers) (\s@PutRepositoryTriggers' {} a -> s {triggers = a} :: PutRepositoryTriggers) Prelude.. Lens.coerced
+
+instance Core.AWSRequest PutRepositoryTriggers where
+  type
+    AWSResponse PutRepositoryTriggers =
+      PutRepositoryTriggersResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          PutRepositoryTriggersResponse'
+            Prelude.<$> (x Data..?> "configurationId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable PutRepositoryTriggers where
+  hashWithSalt _salt PutRepositoryTriggers' {..} =
+    _salt
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` triggers
+
+instance Prelude.NFData PutRepositoryTriggers where
+  rnf PutRepositoryTriggers' {..} =
+    Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf triggers
+
+instance Data.ToHeaders PutRepositoryTriggers where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.PutRepositoryTriggers" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON PutRepositoryTriggers where
+  toJSON PutRepositoryTriggers' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just ("triggers" Data..= triggers)
+          ]
+      )
+
+instance Data.ToPath PutRepositoryTriggers where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery PutRepositoryTriggers where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a put repository triggers operation.
+--
+-- /See:/ 'newPutRepositoryTriggersResponse' smart constructor.
+data PutRepositoryTriggersResponse = PutRepositoryTriggersResponse'
+  { -- | The system-generated unique ID for the create or update operation.
+    configurationId :: 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 'PutRepositoryTriggersResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'configurationId', 'putRepositoryTriggersResponse_configurationId' - The system-generated unique ID for the create or update operation.
+--
+-- 'httpStatus', 'putRepositoryTriggersResponse_httpStatus' - The response's http status code.
+newPutRepositoryTriggersResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  PutRepositoryTriggersResponse
+newPutRepositoryTriggersResponse pHttpStatus_ =
+  PutRepositoryTriggersResponse'
+    { configurationId =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The system-generated unique ID for the create or update operation.
+putRepositoryTriggersResponse_configurationId :: Lens.Lens' PutRepositoryTriggersResponse (Prelude.Maybe Prelude.Text)
+putRepositoryTriggersResponse_configurationId = Lens.lens (\PutRepositoryTriggersResponse' {configurationId} -> configurationId) (\s@PutRepositoryTriggersResponse' {} a -> s {configurationId = a} :: PutRepositoryTriggersResponse)
+
+-- | The response's http status code.
+putRepositoryTriggersResponse_httpStatus :: Lens.Lens' PutRepositoryTriggersResponse Prelude.Int
+putRepositoryTriggersResponse_httpStatus = Lens.lens (\PutRepositoryTriggersResponse' {httpStatus} -> httpStatus) (\s@PutRepositoryTriggersResponse' {} a -> s {httpStatus = a} :: PutRepositoryTriggersResponse)
+
+instance Prelude.NFData PutRepositoryTriggersResponse where
+  rnf PutRepositoryTriggersResponse' {..} =
+    Prelude.rnf configurationId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/TagResource.hs b/gen/Amazonka/CodeCommit/TagResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/TagResource.hs
@@ -0,0 +1,153 @@
+{-# 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.CodeCommit.TagResource
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds or updates tags for a resource in AWS CodeCommit. For a list of
+-- valid resources in AWS CodeCommit, see
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats CodeCommit Resources and Operations>
+-- in the /AWS CodeCommit User Guide/.
+module Amazonka.CodeCommit.TagResource
+  ( -- * Creating a Request
+    TagResource (..),
+    newTagResource,
+
+    -- * Request Lenses
+    tagResource_resourceArn,
+    tagResource_tags,
+
+    -- * Destructuring the Response
+    TagResourceResponse (..),
+    newTagResourceResponse,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newTagResource' smart constructor.
+data TagResource = TagResource'
+  { -- | The Amazon Resource Name (ARN) of the resource to which you want to add
+    -- or update tags.
+    resourceArn :: Prelude.Text,
+    -- | The key-value pair to use when tagging this repository.
+    tags :: Prelude.HashMap Prelude.Text Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'TagResource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource to which you want to add
+-- or update tags.
+--
+-- 'tags', 'tagResource_tags' - The key-value pair to use when tagging this repository.
+newTagResource ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  TagResource
+newTagResource pResourceArn_ =
+  TagResource'
+    { resourceArn = pResourceArn_,
+      tags = Prelude.mempty
+    }
+
+-- | The Amazon Resource Name (ARN) of the resource to which you want to add
+-- or update tags.
+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text
+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)
+
+-- | The key-value pair to use when tagging this repository.
+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)
+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced
+
+instance Core.AWSRequest TagResource where
+  type AWSResponse TagResource = TagResourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response = Response.receiveNull TagResourceResponse'
+
+instance Prelude.Hashable TagResource where
+  hashWithSalt _salt TagResource' {..} =
+    _salt
+      `Prelude.hashWithSalt` resourceArn
+      `Prelude.hashWithSalt` tags
+
+instance Prelude.NFData TagResource where
+  rnf TagResource' {..} =
+    Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf tags
+
+instance Data.ToHeaders TagResource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.TagResource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON TagResource where
+  toJSON TagResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("resourceArn" Data..= resourceArn),
+            Prelude.Just ("tags" Data..= tags)
+          ]
+      )
+
+instance Data.ToPath TagResource where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery TagResource where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newTagResourceResponse' smart constructor.
+data TagResourceResponse = TagResourceResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'TagResourceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newTagResourceResponse ::
+  TagResourceResponse
+newTagResourceResponse = TagResourceResponse'
+
+instance Prelude.NFData TagResourceResponse where
+  rnf _ = ()
diff --git a/gen/Amazonka/CodeCommit/TestRepositoryTriggers.hs b/gen/Amazonka/CodeCommit/TestRepositoryTriggers.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/TestRepositoryTriggers.hs
@@ -0,0 +1,225 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.TestRepositoryTriggers
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Tests the functionality of repository triggers by sending information to
+-- the trigger target. If real data is available in the repository, the
+-- test sends data from the last commit. If no data is available, sample
+-- data is generated.
+module Amazonka.CodeCommit.TestRepositoryTriggers
+  ( -- * Creating a Request
+    TestRepositoryTriggers (..),
+    newTestRepositoryTriggers,
+
+    -- * Request Lenses
+    testRepositoryTriggers_repositoryName,
+    testRepositoryTriggers_triggers,
+
+    -- * Destructuring the Response
+    TestRepositoryTriggersResponse (..),
+    newTestRepositoryTriggersResponse,
+
+    -- * Response Lenses
+    testRepositoryTriggersResponse_failedExecutions,
+    testRepositoryTriggersResponse_successfulExecutions,
+    testRepositoryTriggersResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of a test repository triggers operation.
+--
+-- /See:/ 'newTestRepositoryTriggers' smart constructor.
+data TestRepositoryTriggers = TestRepositoryTriggers'
+  { -- | The name of the repository in which to test the triggers.
+    repositoryName :: Prelude.Text,
+    -- | The list of triggers to test.
+    triggers :: [RepositoryTrigger]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'TestRepositoryTriggers' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryName', 'testRepositoryTriggers_repositoryName' - The name of the repository in which to test the triggers.
+--
+-- 'triggers', 'testRepositoryTriggers_triggers' - The list of triggers to test.
+newTestRepositoryTriggers ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  TestRepositoryTriggers
+newTestRepositoryTriggers pRepositoryName_ =
+  TestRepositoryTriggers'
+    { repositoryName =
+        pRepositoryName_,
+      triggers = Prelude.mempty
+    }
+
+-- | The name of the repository in which to test the triggers.
+testRepositoryTriggers_repositoryName :: Lens.Lens' TestRepositoryTriggers Prelude.Text
+testRepositoryTriggers_repositoryName = Lens.lens (\TestRepositoryTriggers' {repositoryName} -> repositoryName) (\s@TestRepositoryTriggers' {} a -> s {repositoryName = a} :: TestRepositoryTriggers)
+
+-- | The list of triggers to test.
+testRepositoryTriggers_triggers :: Lens.Lens' TestRepositoryTriggers [RepositoryTrigger]
+testRepositoryTriggers_triggers = Lens.lens (\TestRepositoryTriggers' {triggers} -> triggers) (\s@TestRepositoryTriggers' {} a -> s {triggers = a} :: TestRepositoryTriggers) Prelude.. Lens.coerced
+
+instance Core.AWSRequest TestRepositoryTriggers where
+  type
+    AWSResponse TestRepositoryTriggers =
+      TestRepositoryTriggersResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          TestRepositoryTriggersResponse'
+            Prelude.<$> ( x
+                            Data..?> "failedExecutions"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> ( x
+                            Data..?> "successfulExecutions"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable TestRepositoryTriggers where
+  hashWithSalt _salt TestRepositoryTriggers' {..} =
+    _salt
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` triggers
+
+instance Prelude.NFData TestRepositoryTriggers where
+  rnf TestRepositoryTriggers' {..} =
+    Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf triggers
+
+instance Data.ToHeaders TestRepositoryTriggers where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.TestRepositoryTriggers" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON TestRepositoryTriggers where
+  toJSON TestRepositoryTriggers' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just ("triggers" Data..= triggers)
+          ]
+      )
+
+instance Data.ToPath TestRepositoryTriggers where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery TestRepositoryTriggers where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | Represents the output of a test repository triggers operation.
+--
+-- /See:/ 'newTestRepositoryTriggersResponse' smart constructor.
+data TestRepositoryTriggersResponse = TestRepositoryTriggersResponse'
+  { -- | The list of triggers that were not tested. This list provides the names
+    -- of the triggers that could not be tested, separated by commas.
+    failedExecutions :: Prelude.Maybe [RepositoryTriggerExecutionFailure],
+    -- | The list of triggers that were successfully tested. This list provides
+    -- the names of the triggers that were successfully tested, separated by
+    -- commas.
+    successfulExecutions :: 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 'TestRepositoryTriggersResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'failedExecutions', 'testRepositoryTriggersResponse_failedExecutions' - The list of triggers that were not tested. This list provides the names
+-- of the triggers that could not be tested, separated by commas.
+--
+-- 'successfulExecutions', 'testRepositoryTriggersResponse_successfulExecutions' - The list of triggers that were successfully tested. This list provides
+-- the names of the triggers that were successfully tested, separated by
+-- commas.
+--
+-- 'httpStatus', 'testRepositoryTriggersResponse_httpStatus' - The response's http status code.
+newTestRepositoryTriggersResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  TestRepositoryTriggersResponse
+newTestRepositoryTriggersResponse pHttpStatus_ =
+  TestRepositoryTriggersResponse'
+    { failedExecutions =
+        Prelude.Nothing,
+      successfulExecutions = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The list of triggers that were not tested. This list provides the names
+-- of the triggers that could not be tested, separated by commas.
+testRepositoryTriggersResponse_failedExecutions :: Lens.Lens' TestRepositoryTriggersResponse (Prelude.Maybe [RepositoryTriggerExecutionFailure])
+testRepositoryTriggersResponse_failedExecutions = Lens.lens (\TestRepositoryTriggersResponse' {failedExecutions} -> failedExecutions) (\s@TestRepositoryTriggersResponse' {} a -> s {failedExecutions = a} :: TestRepositoryTriggersResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The list of triggers that were successfully tested. This list provides
+-- the names of the triggers that were successfully tested, separated by
+-- commas.
+testRepositoryTriggersResponse_successfulExecutions :: Lens.Lens' TestRepositoryTriggersResponse (Prelude.Maybe [Prelude.Text])
+testRepositoryTriggersResponse_successfulExecutions = Lens.lens (\TestRepositoryTriggersResponse' {successfulExecutions} -> successfulExecutions) (\s@TestRepositoryTriggersResponse' {} a -> s {successfulExecutions = a} :: TestRepositoryTriggersResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+testRepositoryTriggersResponse_httpStatus :: Lens.Lens' TestRepositoryTriggersResponse Prelude.Int
+testRepositoryTriggersResponse_httpStatus = Lens.lens (\TestRepositoryTriggersResponse' {httpStatus} -> httpStatus) (\s@TestRepositoryTriggersResponse' {} a -> s {httpStatus = a} :: TestRepositoryTriggersResponse)
+
+instance
+  Prelude.NFData
+    TestRepositoryTriggersResponse
+  where
+  rnf TestRepositoryTriggersResponse' {..} =
+    Prelude.rnf failedExecutions
+      `Prelude.seq` Prelude.rnf successfulExecutions
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/Types.hs b/gen/Amazonka/CodeCommit/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types.hs
@@ -0,0 +1,2326 @@
+{-# 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.CodeCommit.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.CodeCommit.Types
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    _ActorDoesNotExistException,
+    _ApprovalRuleContentRequiredException,
+    _ApprovalRuleDoesNotExistException,
+    _ApprovalRuleNameAlreadyExistsException,
+    _ApprovalRuleNameRequiredException,
+    _ApprovalRuleTemplateContentRequiredException,
+    _ApprovalRuleTemplateDoesNotExistException,
+    _ApprovalRuleTemplateInUseException,
+    _ApprovalRuleTemplateNameAlreadyExistsException,
+    _ApprovalRuleTemplateNameRequiredException,
+    _ApprovalStateRequiredException,
+    _AuthorDoesNotExistException,
+    _BeforeCommitIdAndAfterCommitIdAreSameException,
+    _BlobIdDoesNotExistException,
+    _BlobIdRequiredException,
+    _BranchDoesNotExistException,
+    _BranchNameExistsException,
+    _BranchNameIsTagNameException,
+    _BranchNameRequiredException,
+    _CannotDeleteApprovalRuleFromTemplateException,
+    _CannotModifyApprovalRuleFromTemplateException,
+    _ClientRequestTokenRequiredException,
+    _CommentContentRequiredException,
+    _CommentContentSizeLimitExceededException,
+    _CommentDeletedException,
+    _CommentDoesNotExistException,
+    _CommentIdRequiredException,
+    _CommentNotCreatedByCallerException,
+    _CommitDoesNotExistException,
+    _CommitIdDoesNotExistException,
+    _CommitIdRequiredException,
+    _CommitIdsLimitExceededException,
+    _CommitIdsListRequiredException,
+    _CommitMessageLengthExceededException,
+    _CommitRequiredException,
+    _ConcurrentReferenceUpdateException,
+    _DefaultBranchCannotBeDeletedException,
+    _DirectoryNameConflictsWithFileNameException,
+    _EncryptionIntegrityChecksFailedException,
+    _EncryptionKeyAccessDeniedException,
+    _EncryptionKeyDisabledException,
+    _EncryptionKeyNotFoundException,
+    _EncryptionKeyUnavailableException,
+    _FileContentAndSourceFileSpecifiedException,
+    _FileContentRequiredException,
+    _FileContentSizeLimitExceededException,
+    _FileDoesNotExistException,
+    _FileEntryRequiredException,
+    _FileModeRequiredException,
+    _FileNameConflictsWithDirectoryNameException,
+    _FilePathConflictsWithSubmodulePathException,
+    _FileTooLargeException,
+    _FolderContentSizeLimitExceededException,
+    _FolderDoesNotExistException,
+    _IdempotencyParameterMismatchException,
+    _InvalidActorArnException,
+    _InvalidApprovalRuleContentException,
+    _InvalidApprovalRuleNameException,
+    _InvalidApprovalRuleTemplateContentException,
+    _InvalidApprovalRuleTemplateDescriptionException,
+    _InvalidApprovalRuleTemplateNameException,
+    _InvalidApprovalStateException,
+    _InvalidAuthorArnException,
+    _InvalidBlobIdException,
+    _InvalidBranchNameException,
+    _InvalidClientRequestTokenException,
+    _InvalidCommentIdException,
+    _InvalidCommitException,
+    _InvalidCommitIdException,
+    _InvalidConflictDetailLevelException,
+    _InvalidConflictResolutionException,
+    _InvalidConflictResolutionStrategyException,
+    _InvalidContinuationTokenException,
+    _InvalidDeletionParameterException,
+    _InvalidDescriptionException,
+    _InvalidDestinationCommitSpecifierException,
+    _InvalidEmailException,
+    _InvalidFileLocationException,
+    _InvalidFileModeException,
+    _InvalidFilePositionException,
+    _InvalidMaxConflictFilesException,
+    _InvalidMaxMergeHunksException,
+    _InvalidMaxResultsException,
+    _InvalidMergeOptionException,
+    _InvalidOrderException,
+    _InvalidOverrideStatusException,
+    _InvalidParentCommitIdException,
+    _InvalidPathException,
+    _InvalidPullRequestEventTypeException,
+    _InvalidPullRequestIdException,
+    _InvalidPullRequestStatusException,
+    _InvalidPullRequestStatusUpdateException,
+    _InvalidReactionUserArnException,
+    _InvalidReactionValueException,
+    _InvalidReferenceNameException,
+    _InvalidRelativeFileVersionEnumException,
+    _InvalidReplacementContentException,
+    _InvalidReplacementTypeException,
+    _InvalidRepositoryDescriptionException,
+    _InvalidRepositoryNameException,
+    _InvalidRepositoryTriggerBranchNameException,
+    _InvalidRepositoryTriggerCustomDataException,
+    _InvalidRepositoryTriggerDestinationArnException,
+    _InvalidRepositoryTriggerEventsException,
+    _InvalidRepositoryTriggerNameException,
+    _InvalidRepositoryTriggerRegionException,
+    _InvalidResourceArnException,
+    _InvalidRevisionIdException,
+    _InvalidRuleContentSha256Exception,
+    _InvalidSortByException,
+    _InvalidSourceCommitSpecifierException,
+    _InvalidSystemTagUsageException,
+    _InvalidTagKeysListException,
+    _InvalidTagsMapException,
+    _InvalidTargetBranchException,
+    _InvalidTargetException,
+    _InvalidTargetsException,
+    _InvalidTitleException,
+    _ManualMergeRequiredException,
+    _MaximumBranchesExceededException,
+    _MaximumConflictResolutionEntriesExceededException,
+    _MaximumFileContentToLoadExceededException,
+    _MaximumFileEntriesExceededException,
+    _MaximumItemsToCompareExceededException,
+    _MaximumNumberOfApprovalsExceededException,
+    _MaximumOpenPullRequestsExceededException,
+    _MaximumRepositoryNamesExceededException,
+    _MaximumRepositoryTriggersExceededException,
+    _MaximumRuleTemplatesAssociatedWithRepositoryException,
+    _MergeOptionRequiredException,
+    _MultipleConflictResolutionEntriesException,
+    _MultipleRepositoriesInPullRequestException,
+    _NameLengthExceededException,
+    _NoChangeException,
+    _NumberOfRuleTemplatesExceededException,
+    _NumberOfRulesExceededException,
+    _OverrideAlreadySetException,
+    _OverrideStatusRequiredException,
+    _ParentCommitDoesNotExistException,
+    _ParentCommitIdOutdatedException,
+    _ParentCommitIdRequiredException,
+    _PathDoesNotExistException,
+    _PathRequiredException,
+    _PullRequestAlreadyClosedException,
+    _PullRequestApprovalRulesNotSatisfiedException,
+    _PullRequestCannotBeApprovedByAuthorException,
+    _PullRequestDoesNotExistException,
+    _PullRequestIdRequiredException,
+    _PullRequestStatusRequiredException,
+    _PutFileEntryConflictException,
+    _ReactionLimitExceededException,
+    _ReactionValueRequiredException,
+    _ReferenceDoesNotExistException,
+    _ReferenceNameRequiredException,
+    _ReferenceTypeNotSupportedException,
+    _ReplacementContentRequiredException,
+    _ReplacementTypeRequiredException,
+    _RepositoryDoesNotExistException,
+    _RepositoryLimitExceededException,
+    _RepositoryNameExistsException,
+    _RepositoryNameRequiredException,
+    _RepositoryNamesRequiredException,
+    _RepositoryNotAssociatedWithPullRequestException,
+    _RepositoryTriggerBranchNameListRequiredException,
+    _RepositoryTriggerDestinationArnRequiredException,
+    _RepositoryTriggerEventsListRequiredException,
+    _RepositoryTriggerNameRequiredException,
+    _RepositoryTriggersListRequiredException,
+    _ResourceArnRequiredException,
+    _RestrictedSourceFileException,
+    _RevisionIdRequiredException,
+    _RevisionNotCurrentException,
+    _SameFileContentException,
+    _SamePathRequestException,
+    _SourceAndDestinationAreSameException,
+    _SourceFileOrContentRequiredException,
+    _TagKeysListRequiredException,
+    _TagPolicyException,
+    _TagsMapRequiredException,
+    _TargetRequiredException,
+    _TargetsRequiredException,
+    _TipOfSourceReferenceIsDifferentException,
+    _TipsDivergenceExceededException,
+    _TitleRequiredException,
+    _TooManyTagsException,
+
+    -- * ApprovalState
+    ApprovalState (..),
+
+    -- * ChangeTypeEnum
+    ChangeTypeEnum (..),
+
+    -- * ConflictDetailLevelTypeEnum
+    ConflictDetailLevelTypeEnum (..),
+
+    -- * ConflictResolutionStrategyTypeEnum
+    ConflictResolutionStrategyTypeEnum (..),
+
+    -- * FileModeTypeEnum
+    FileModeTypeEnum (..),
+
+    -- * MergeOptionTypeEnum
+    MergeOptionTypeEnum (..),
+
+    -- * ObjectTypeEnum
+    ObjectTypeEnum (..),
+
+    -- * OrderEnum
+    OrderEnum (..),
+
+    -- * OverrideStatus
+    OverrideStatus (..),
+
+    -- * PullRequestEventType
+    PullRequestEventType (..),
+
+    -- * PullRequestStatusEnum
+    PullRequestStatusEnum (..),
+
+    -- * RelativeFileVersionEnum
+    RelativeFileVersionEnum (..),
+
+    -- * ReplacementTypeEnum
+    ReplacementTypeEnum (..),
+
+    -- * RepositoryTriggerEventEnum
+    RepositoryTriggerEventEnum (..),
+
+    -- * SortByEnum
+    SortByEnum (..),
+
+    -- * Approval
+    Approval (..),
+    newApproval,
+    approval_approvalState,
+    approval_userArn,
+
+    -- * ApprovalRule
+    ApprovalRule (..),
+    newApprovalRule,
+    approvalRule_approvalRuleContent,
+    approvalRule_approvalRuleId,
+    approvalRule_approvalRuleName,
+    approvalRule_creationDate,
+    approvalRule_lastModifiedDate,
+    approvalRule_lastModifiedUser,
+    approvalRule_originApprovalRuleTemplate,
+    approvalRule_ruleContentSha256,
+
+    -- * ApprovalRuleEventMetadata
+    ApprovalRuleEventMetadata (..),
+    newApprovalRuleEventMetadata,
+    approvalRuleEventMetadata_approvalRuleContent,
+    approvalRuleEventMetadata_approvalRuleId,
+    approvalRuleEventMetadata_approvalRuleName,
+
+    -- * ApprovalRuleOverriddenEventMetadata
+    ApprovalRuleOverriddenEventMetadata (..),
+    newApprovalRuleOverriddenEventMetadata,
+    approvalRuleOverriddenEventMetadata_overrideStatus,
+    approvalRuleOverriddenEventMetadata_revisionId,
+
+    -- * ApprovalRuleTemplate
+    ApprovalRuleTemplate (..),
+    newApprovalRuleTemplate,
+    approvalRuleTemplate_approvalRuleTemplateContent,
+    approvalRuleTemplate_approvalRuleTemplateDescription,
+    approvalRuleTemplate_approvalRuleTemplateId,
+    approvalRuleTemplate_approvalRuleTemplateName,
+    approvalRuleTemplate_creationDate,
+    approvalRuleTemplate_lastModifiedDate,
+    approvalRuleTemplate_lastModifiedUser,
+    approvalRuleTemplate_ruleContentSha256,
+
+    -- * ApprovalStateChangedEventMetadata
+    ApprovalStateChangedEventMetadata (..),
+    newApprovalStateChangedEventMetadata,
+    approvalStateChangedEventMetadata_approvalStatus,
+    approvalStateChangedEventMetadata_revisionId,
+
+    -- * BatchAssociateApprovalRuleTemplateWithRepositoriesError
+    BatchAssociateApprovalRuleTemplateWithRepositoriesError (..),
+    newBatchAssociateApprovalRuleTemplateWithRepositoriesError,
+    batchAssociateApprovalRuleTemplateWithRepositoriesError_errorCode,
+    batchAssociateApprovalRuleTemplateWithRepositoriesError_errorMessage,
+    batchAssociateApprovalRuleTemplateWithRepositoriesError_repositoryName,
+
+    -- * BatchDescribeMergeConflictsError
+    BatchDescribeMergeConflictsError (..),
+    newBatchDescribeMergeConflictsError,
+    batchDescribeMergeConflictsError_filePath,
+    batchDescribeMergeConflictsError_exceptionName,
+    batchDescribeMergeConflictsError_message,
+
+    -- * BatchDisassociateApprovalRuleTemplateFromRepositoriesError
+    BatchDisassociateApprovalRuleTemplateFromRepositoriesError (..),
+    newBatchDisassociateApprovalRuleTemplateFromRepositoriesError,
+    batchDisassociateApprovalRuleTemplateFromRepositoriesError_errorCode,
+    batchDisassociateApprovalRuleTemplateFromRepositoriesError_errorMessage,
+    batchDisassociateApprovalRuleTemplateFromRepositoriesError_repositoryName,
+
+    -- * BatchGetCommitsError
+    BatchGetCommitsError (..),
+    newBatchGetCommitsError,
+    batchGetCommitsError_commitId,
+    batchGetCommitsError_errorCode,
+    batchGetCommitsError_errorMessage,
+
+    -- * BlobMetadata
+    BlobMetadata (..),
+    newBlobMetadata,
+    blobMetadata_blobId,
+    blobMetadata_mode,
+    blobMetadata_path,
+
+    -- * BranchInfo
+    BranchInfo (..),
+    newBranchInfo,
+    branchInfo_branchName,
+    branchInfo_commitId,
+
+    -- * Comment
+    Comment (..),
+    newComment,
+    comment_authorArn,
+    comment_callerReactions,
+    comment_clientRequestToken,
+    comment_commentId,
+    comment_content,
+    comment_creationDate,
+    comment_deleted,
+    comment_inReplyTo,
+    comment_lastModifiedDate,
+    comment_reactionCounts,
+
+    -- * CommentsForComparedCommit
+    CommentsForComparedCommit (..),
+    newCommentsForComparedCommit,
+    commentsForComparedCommit_afterBlobId,
+    commentsForComparedCommit_afterCommitId,
+    commentsForComparedCommit_beforeBlobId,
+    commentsForComparedCommit_beforeCommitId,
+    commentsForComparedCommit_comments,
+    commentsForComparedCommit_location,
+    commentsForComparedCommit_repositoryName,
+
+    -- * CommentsForPullRequest
+    CommentsForPullRequest (..),
+    newCommentsForPullRequest,
+    commentsForPullRequest_afterBlobId,
+    commentsForPullRequest_afterCommitId,
+    commentsForPullRequest_beforeBlobId,
+    commentsForPullRequest_beforeCommitId,
+    commentsForPullRequest_comments,
+    commentsForPullRequest_location,
+    commentsForPullRequest_pullRequestId,
+    commentsForPullRequest_repositoryName,
+
+    -- * Commit
+    Commit (..),
+    newCommit,
+    commit_additionalData,
+    commit_author,
+    commit_commitId,
+    commit_committer,
+    commit_message,
+    commit_parents,
+    commit_treeId,
+
+    -- * Conflict
+    Conflict (..),
+    newConflict,
+    conflict_conflictMetadata,
+    conflict_mergeHunks,
+
+    -- * ConflictMetadata
+    ConflictMetadata (..),
+    newConflictMetadata,
+    conflictMetadata_contentConflict,
+    conflictMetadata_fileModeConflict,
+    conflictMetadata_fileModes,
+    conflictMetadata_filePath,
+    conflictMetadata_fileSizes,
+    conflictMetadata_isBinaryFile,
+    conflictMetadata_mergeOperations,
+    conflictMetadata_numberOfConflicts,
+    conflictMetadata_objectTypeConflict,
+    conflictMetadata_objectTypes,
+
+    -- * ConflictResolution
+    ConflictResolution (..),
+    newConflictResolution,
+    conflictResolution_deleteFiles,
+    conflictResolution_replaceContents,
+    conflictResolution_setFileModes,
+
+    -- * DeleteFileEntry
+    DeleteFileEntry (..),
+    newDeleteFileEntry,
+    deleteFileEntry_filePath,
+
+    -- * Difference
+    Difference (..),
+    newDifference,
+    difference_afterBlob,
+    difference_beforeBlob,
+    difference_changeType,
+
+    -- * Evaluation
+    Evaluation (..),
+    newEvaluation,
+    evaluation_approvalRulesNotSatisfied,
+    evaluation_approvalRulesSatisfied,
+    evaluation_approved,
+    evaluation_overridden,
+
+    -- * File
+    File (..),
+    newFile,
+    file_absolutePath,
+    file_blobId,
+    file_fileMode,
+    file_relativePath,
+
+    -- * FileMetadata
+    FileMetadata (..),
+    newFileMetadata,
+    fileMetadata_absolutePath,
+    fileMetadata_blobId,
+    fileMetadata_fileMode,
+
+    -- * FileModes
+    FileModes (..),
+    newFileModes,
+    fileModes_base,
+    fileModes_destination,
+    fileModes_source,
+
+    -- * FileSizes
+    FileSizes (..),
+    newFileSizes,
+    fileSizes_base,
+    fileSizes_destination,
+    fileSizes_source,
+
+    -- * Folder
+    Folder (..),
+    newFolder,
+    folder_absolutePath,
+    folder_relativePath,
+    folder_treeId,
+
+    -- * IsBinaryFile
+    IsBinaryFile (..),
+    newIsBinaryFile,
+    isBinaryFile_base,
+    isBinaryFile_destination,
+    isBinaryFile_source,
+
+    -- * Location
+    Location (..),
+    newLocation,
+    location_filePath,
+    location_filePosition,
+    location_relativeFileVersion,
+
+    -- * MergeHunk
+    MergeHunk (..),
+    newMergeHunk,
+    mergeHunk_base,
+    mergeHunk_destination,
+    mergeHunk_isConflict,
+    mergeHunk_source,
+
+    -- * MergeHunkDetail
+    MergeHunkDetail (..),
+    newMergeHunkDetail,
+    mergeHunkDetail_endLine,
+    mergeHunkDetail_hunkContent,
+    mergeHunkDetail_startLine,
+
+    -- * MergeMetadata
+    MergeMetadata (..),
+    newMergeMetadata,
+    mergeMetadata_isMerged,
+    mergeMetadata_mergeCommitId,
+    mergeMetadata_mergeOption,
+    mergeMetadata_mergedBy,
+
+    -- * MergeOperations
+    MergeOperations (..),
+    newMergeOperations,
+    mergeOperations_destination,
+    mergeOperations_source,
+
+    -- * ObjectTypes
+    ObjectTypes (..),
+    newObjectTypes,
+    objectTypes_base,
+    objectTypes_destination,
+    objectTypes_source,
+
+    -- * OriginApprovalRuleTemplate
+    OriginApprovalRuleTemplate (..),
+    newOriginApprovalRuleTemplate,
+    originApprovalRuleTemplate_approvalRuleTemplateId,
+    originApprovalRuleTemplate_approvalRuleTemplateName,
+
+    -- * PullRequest
+    PullRequest (..),
+    newPullRequest,
+    pullRequest_approvalRules,
+    pullRequest_authorArn,
+    pullRequest_clientRequestToken,
+    pullRequest_creationDate,
+    pullRequest_description,
+    pullRequest_lastActivityDate,
+    pullRequest_pullRequestId,
+    pullRequest_pullRequestStatus,
+    pullRequest_pullRequestTargets,
+    pullRequest_revisionId,
+    pullRequest_title,
+
+    -- * PullRequestCreatedEventMetadata
+    PullRequestCreatedEventMetadata (..),
+    newPullRequestCreatedEventMetadata,
+    pullRequestCreatedEventMetadata_destinationCommitId,
+    pullRequestCreatedEventMetadata_mergeBase,
+    pullRequestCreatedEventMetadata_repositoryName,
+    pullRequestCreatedEventMetadata_sourceCommitId,
+
+    -- * PullRequestEvent
+    PullRequestEvent (..),
+    newPullRequestEvent,
+    pullRequestEvent_actorArn,
+    pullRequestEvent_approvalRuleEventMetadata,
+    pullRequestEvent_approvalRuleOverriddenEventMetadata,
+    pullRequestEvent_approvalStateChangedEventMetadata,
+    pullRequestEvent_eventDate,
+    pullRequestEvent_pullRequestCreatedEventMetadata,
+    pullRequestEvent_pullRequestEventType,
+    pullRequestEvent_pullRequestId,
+    pullRequestEvent_pullRequestMergedStateChangedEventMetadata,
+    pullRequestEvent_pullRequestSourceReferenceUpdatedEventMetadata,
+    pullRequestEvent_pullRequestStatusChangedEventMetadata,
+
+    -- * PullRequestMergedStateChangedEventMetadata
+    PullRequestMergedStateChangedEventMetadata (..),
+    newPullRequestMergedStateChangedEventMetadata,
+    pullRequestMergedStateChangedEventMetadata_destinationReference,
+    pullRequestMergedStateChangedEventMetadata_mergeMetadata,
+    pullRequestMergedStateChangedEventMetadata_repositoryName,
+
+    -- * PullRequestSourceReferenceUpdatedEventMetadata
+    PullRequestSourceReferenceUpdatedEventMetadata (..),
+    newPullRequestSourceReferenceUpdatedEventMetadata,
+    pullRequestSourceReferenceUpdatedEventMetadata_afterCommitId,
+    pullRequestSourceReferenceUpdatedEventMetadata_beforeCommitId,
+    pullRequestSourceReferenceUpdatedEventMetadata_mergeBase,
+    pullRequestSourceReferenceUpdatedEventMetadata_repositoryName,
+
+    -- * PullRequestStatusChangedEventMetadata
+    PullRequestStatusChangedEventMetadata (..),
+    newPullRequestStatusChangedEventMetadata,
+    pullRequestStatusChangedEventMetadata_pullRequestStatus,
+
+    -- * PullRequestTarget
+    PullRequestTarget (..),
+    newPullRequestTarget,
+    pullRequestTarget_destinationCommit,
+    pullRequestTarget_destinationReference,
+    pullRequestTarget_mergeBase,
+    pullRequestTarget_mergeMetadata,
+    pullRequestTarget_repositoryName,
+    pullRequestTarget_sourceCommit,
+    pullRequestTarget_sourceReference,
+
+    -- * PutFileEntry
+    PutFileEntry (..),
+    newPutFileEntry,
+    putFileEntry_fileContent,
+    putFileEntry_fileMode,
+    putFileEntry_sourceFile,
+    putFileEntry_filePath,
+
+    -- * ReactionForComment
+    ReactionForComment (..),
+    newReactionForComment,
+    reactionForComment_reaction,
+    reactionForComment_reactionUsers,
+    reactionForComment_reactionsFromDeletedUsersCount,
+
+    -- * ReactionValueFormats
+    ReactionValueFormats (..),
+    newReactionValueFormats,
+    reactionValueFormats_emoji,
+    reactionValueFormats_shortCode,
+    reactionValueFormats_unicode,
+
+    -- * ReplaceContentEntry
+    ReplaceContentEntry (..),
+    newReplaceContentEntry,
+    replaceContentEntry_content,
+    replaceContentEntry_fileMode,
+    replaceContentEntry_filePath,
+    replaceContentEntry_replacementType,
+
+    -- * RepositoryMetadata
+    RepositoryMetadata (..),
+    newRepositoryMetadata,
+    repositoryMetadata_arn,
+    repositoryMetadata_accountId,
+    repositoryMetadata_cloneUrlHttp,
+    repositoryMetadata_cloneUrlSsh,
+    repositoryMetadata_creationDate,
+    repositoryMetadata_defaultBranch,
+    repositoryMetadata_lastModifiedDate,
+    repositoryMetadata_repositoryDescription,
+    repositoryMetadata_repositoryId,
+    repositoryMetadata_repositoryName,
+
+    -- * RepositoryNameIdPair
+    RepositoryNameIdPair (..),
+    newRepositoryNameIdPair,
+    repositoryNameIdPair_repositoryId,
+    repositoryNameIdPair_repositoryName,
+
+    -- * RepositoryTrigger
+    RepositoryTrigger (..),
+    newRepositoryTrigger,
+    repositoryTrigger_branches,
+    repositoryTrigger_customData,
+    repositoryTrigger_name,
+    repositoryTrigger_destinationArn,
+    repositoryTrigger_events,
+
+    -- * RepositoryTriggerExecutionFailure
+    RepositoryTriggerExecutionFailure (..),
+    newRepositoryTriggerExecutionFailure,
+    repositoryTriggerExecutionFailure_failureMessage,
+    repositoryTriggerExecutionFailure_trigger,
+
+    -- * SetFileModeEntry
+    SetFileModeEntry (..),
+    newSetFileModeEntry,
+    setFileModeEntry_filePath,
+    setFileModeEntry_fileMode,
+
+    -- * SourceFileSpecifier
+    SourceFileSpecifier (..),
+    newSourceFileSpecifier,
+    sourceFileSpecifier_isMove,
+    sourceFileSpecifier_filePath,
+
+    -- * SubModule
+    SubModule (..),
+    newSubModule,
+    subModule_absolutePath,
+    subModule_commitId,
+    subModule_relativePath,
+
+    -- * SymbolicLink
+    SymbolicLink (..),
+    newSymbolicLink,
+    symbolicLink_absolutePath,
+    symbolicLink_blobId,
+    symbolicLink_fileMode,
+    symbolicLink_relativePath,
+
+    -- * Target
+    Target (..),
+    newTarget,
+    target_destinationReference,
+    target_repositoryName,
+    target_sourceReference,
+
+    -- * UserInfo
+    UserInfo (..),
+    newUserInfo,
+    userInfo_date,
+    userInfo_email,
+    userInfo_name,
+  )
+where
+
+import Amazonka.CodeCommit.Types.Approval
+import Amazonka.CodeCommit.Types.ApprovalRule
+import Amazonka.CodeCommit.Types.ApprovalRuleEventMetadata
+import Amazonka.CodeCommit.Types.ApprovalRuleOverriddenEventMetadata
+import Amazonka.CodeCommit.Types.ApprovalRuleTemplate
+import Amazonka.CodeCommit.Types.ApprovalState
+import Amazonka.CodeCommit.Types.ApprovalStateChangedEventMetadata
+import Amazonka.CodeCommit.Types.BatchAssociateApprovalRuleTemplateWithRepositoriesError
+import Amazonka.CodeCommit.Types.BatchDescribeMergeConflictsError
+import Amazonka.CodeCommit.Types.BatchDisassociateApprovalRuleTemplateFromRepositoriesError
+import Amazonka.CodeCommit.Types.BatchGetCommitsError
+import Amazonka.CodeCommit.Types.BlobMetadata
+import Amazonka.CodeCommit.Types.BranchInfo
+import Amazonka.CodeCommit.Types.ChangeTypeEnum
+import Amazonka.CodeCommit.Types.Comment
+import Amazonka.CodeCommit.Types.CommentsForComparedCommit
+import Amazonka.CodeCommit.Types.CommentsForPullRequest
+import Amazonka.CodeCommit.Types.Commit
+import Amazonka.CodeCommit.Types.Conflict
+import Amazonka.CodeCommit.Types.ConflictDetailLevelTypeEnum
+import Amazonka.CodeCommit.Types.ConflictMetadata
+import Amazonka.CodeCommit.Types.ConflictResolution
+import Amazonka.CodeCommit.Types.ConflictResolutionStrategyTypeEnum
+import Amazonka.CodeCommit.Types.DeleteFileEntry
+import Amazonka.CodeCommit.Types.Difference
+import Amazonka.CodeCommit.Types.Evaluation
+import Amazonka.CodeCommit.Types.File
+import Amazonka.CodeCommit.Types.FileMetadata
+import Amazonka.CodeCommit.Types.FileModeTypeEnum
+import Amazonka.CodeCommit.Types.FileModes
+import Amazonka.CodeCommit.Types.FileSizes
+import Amazonka.CodeCommit.Types.Folder
+import Amazonka.CodeCommit.Types.IsBinaryFile
+import Amazonka.CodeCommit.Types.Location
+import Amazonka.CodeCommit.Types.MergeHunk
+import Amazonka.CodeCommit.Types.MergeHunkDetail
+import Amazonka.CodeCommit.Types.MergeMetadata
+import Amazonka.CodeCommit.Types.MergeOperations
+import Amazonka.CodeCommit.Types.MergeOptionTypeEnum
+import Amazonka.CodeCommit.Types.ObjectTypeEnum
+import Amazonka.CodeCommit.Types.ObjectTypes
+import Amazonka.CodeCommit.Types.OrderEnum
+import Amazonka.CodeCommit.Types.OriginApprovalRuleTemplate
+import Amazonka.CodeCommit.Types.OverrideStatus
+import Amazonka.CodeCommit.Types.PullRequest
+import Amazonka.CodeCommit.Types.PullRequestCreatedEventMetadata
+import Amazonka.CodeCommit.Types.PullRequestEvent
+import Amazonka.CodeCommit.Types.PullRequestEventType
+import Amazonka.CodeCommit.Types.PullRequestMergedStateChangedEventMetadata
+import Amazonka.CodeCommit.Types.PullRequestSourceReferenceUpdatedEventMetadata
+import Amazonka.CodeCommit.Types.PullRequestStatusChangedEventMetadata
+import Amazonka.CodeCommit.Types.PullRequestStatusEnum
+import Amazonka.CodeCommit.Types.PullRequestTarget
+import Amazonka.CodeCommit.Types.PutFileEntry
+import Amazonka.CodeCommit.Types.ReactionForComment
+import Amazonka.CodeCommit.Types.ReactionValueFormats
+import Amazonka.CodeCommit.Types.RelativeFileVersionEnum
+import Amazonka.CodeCommit.Types.ReplaceContentEntry
+import Amazonka.CodeCommit.Types.ReplacementTypeEnum
+import Amazonka.CodeCommit.Types.RepositoryMetadata
+import Amazonka.CodeCommit.Types.RepositoryNameIdPair
+import Amazonka.CodeCommit.Types.RepositoryTrigger
+import Amazonka.CodeCommit.Types.RepositoryTriggerEventEnum
+import Amazonka.CodeCommit.Types.RepositoryTriggerExecutionFailure
+import Amazonka.CodeCommit.Types.SetFileModeEntry
+import Amazonka.CodeCommit.Types.SortByEnum
+import Amazonka.CodeCommit.Types.SourceFileSpecifier
+import Amazonka.CodeCommit.Types.SubModule
+import Amazonka.CodeCommit.Types.SymbolicLink
+import Amazonka.CodeCommit.Types.Target
+import Amazonka.CodeCommit.Types.UserInfo
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Sign.V4 as Sign
+
+-- | API version @2015-04-13@ of the Amazon CodeCommit SDK configuration.
+defaultService :: Core.Service
+defaultService =
+  Core.Service
+    { Core.abbrev = "CodeCommit",
+      Core.signer = Sign.v4,
+      Core.endpointPrefix = "codecommit",
+      Core.signingName = "codecommit",
+      Core.version = "2015-04-13",
+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,
+      Core.endpoint = Core.defaultEndpoint defaultService,
+      Core.timeout = Prelude.Just 70,
+      Core.check = Core.statusSuccess,
+      Core.error = Core.parseJSONError "CodeCommit",
+      Core.retry = retry
+    }
+  where
+    retry =
+      Core.Exponential
+        { Core.base = 5.0e-2,
+          Core.growth = 2,
+          Core.attempts = 5,
+          Core.check = check
+        }
+    check e
+      | Lens.has (Core.hasStatus 502) e =
+          Prelude.Just "bad_gateway"
+      | Lens.has (Core.hasStatus 504) e =
+          Prelude.Just "gateway_timeout"
+      | Lens.has (Core.hasStatus 500) e =
+          Prelude.Just "general_server_error"
+      | Lens.has (Core.hasStatus 509) e =
+          Prelude.Just "limit_exceeded"
+      | Lens.has
+          ( Core.hasCode "RequestThrottledException"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "request_throttled_exception"
+      | Lens.has (Core.hasStatus 503) e =
+          Prelude.Just "service_unavailable"
+      | Lens.has
+          ( Core.hasCode "ThrottledException"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "throttled_exception"
+      | Lens.has
+          ( Core.hasCode "Throttling"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "throttling"
+      | Lens.has
+          ( Core.hasCode "ThrottlingException"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "throttling_exception"
+      | Lens.has
+          ( Core.hasCode
+              "ProvisionedThroughputExceededException"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "throughput_exceeded"
+      | Lens.has (Core.hasStatus 429) e =
+          Prelude.Just "too_many_requests"
+      | Prelude.otherwise = Prelude.Nothing
+
+-- | The specified Amazon Resource Name (ARN) does not exist in the AWS
+-- account.
+_ActorDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ActorDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "ActorDoesNotExistException"
+
+-- | The content for the approval rule is empty. You must provide some
+-- content for an approval rule. The content cannot be null.
+_ApprovalRuleContentRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ApprovalRuleContentRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ApprovalRuleContentRequiredException"
+
+-- | The specified approval rule does not exist.
+_ApprovalRuleDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ApprovalRuleDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "ApprovalRuleDoesNotExistException"
+
+-- | An approval rule with that name already exists. Approval rule names must
+-- be unique within the scope of a pull request.
+_ApprovalRuleNameAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ApprovalRuleNameAlreadyExistsException =
+  Core._MatchServiceError
+    defaultService
+    "ApprovalRuleNameAlreadyExistsException"
+
+-- | An approval rule name is required, but was not specified.
+_ApprovalRuleNameRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ApprovalRuleNameRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ApprovalRuleNameRequiredException"
+
+-- | The content for the approval rule template is empty. You must provide
+-- some content for an approval rule template. The content cannot be null.
+_ApprovalRuleTemplateContentRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ApprovalRuleTemplateContentRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ApprovalRuleTemplateContentRequiredException"
+
+-- | The specified approval rule template does not exist. Verify that the
+-- name is correct and that you are signed in to the AWS Region where the
+-- template was created, and then try again.
+_ApprovalRuleTemplateDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ApprovalRuleTemplateDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "ApprovalRuleTemplateDoesNotExistException"
+
+-- | The approval rule template is associated with one or more repositories.
+-- You cannot delete a template that is associated with a repository.
+-- Remove all associations, and then try again.
+_ApprovalRuleTemplateInUseException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ApprovalRuleTemplateInUseException =
+  Core._MatchServiceError
+    defaultService
+    "ApprovalRuleTemplateInUseException"
+
+-- | You cannot create an approval rule template with that name because a
+-- template with that name already exists in this AWS Region for your AWS
+-- account. Approval rule template names must be unique.
+_ApprovalRuleTemplateNameAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ApprovalRuleTemplateNameAlreadyExistsException =
+  Core._MatchServiceError
+    defaultService
+    "ApprovalRuleTemplateNameAlreadyExistsException"
+
+-- | An approval rule template name is required, but was not specified.
+_ApprovalRuleTemplateNameRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ApprovalRuleTemplateNameRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ApprovalRuleTemplateNameRequiredException"
+
+-- | An approval state is required, but was not specified.
+_ApprovalStateRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ApprovalStateRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ApprovalStateRequiredException"
+
+-- | The specified Amazon Resource Name (ARN) does not exist in the AWS
+-- account.
+_AuthorDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_AuthorDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "AuthorDoesNotExistException"
+
+-- | The before commit ID and the after commit ID are the same, which is not
+-- valid. The before commit ID and the after commit ID must be different
+-- commit IDs.
+_BeforeCommitIdAndAfterCommitIdAreSameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_BeforeCommitIdAndAfterCommitIdAreSameException =
+  Core._MatchServiceError
+    defaultService
+    "BeforeCommitIdAndAfterCommitIdAreSameException"
+
+-- | The specified blob does not exist.
+_BlobIdDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_BlobIdDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "BlobIdDoesNotExistException"
+
+-- | A blob ID is required, but was not specified.
+_BlobIdRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_BlobIdRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "BlobIdRequiredException"
+
+-- | The specified branch does not exist.
+_BranchDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_BranchDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "BranchDoesNotExistException"
+
+-- | Cannot create the branch with the specified name because the commit
+-- conflicts with an existing branch with the same name. Branch names must
+-- be unique.
+_BranchNameExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_BranchNameExistsException =
+  Core._MatchServiceError
+    defaultService
+    "BranchNameExistsException"
+
+-- | The specified branch name is not valid because it is a tag name. Enter
+-- the name of a branch in the repository. For a list of valid branch
+-- names, use ListBranches.
+_BranchNameIsTagNameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_BranchNameIsTagNameException =
+  Core._MatchServiceError
+    defaultService
+    "BranchNameIsTagNameException"
+
+-- | A branch name is required, but was not specified.
+_BranchNameRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_BranchNameRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "BranchNameRequiredException"
+
+-- | The approval rule cannot be deleted from the pull request because it was
+-- created by an approval rule template and applied to the pull request
+-- automatically.
+_CannotDeleteApprovalRuleFromTemplateException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CannotDeleteApprovalRuleFromTemplateException =
+  Core._MatchServiceError
+    defaultService
+    "CannotDeleteApprovalRuleFromTemplateException"
+
+-- | The approval rule cannot be modified for the pull request because it was
+-- created by an approval rule template and applied to the pull request
+-- automatically.
+_CannotModifyApprovalRuleFromTemplateException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CannotModifyApprovalRuleFromTemplateException =
+  Core._MatchServiceError
+    defaultService
+    "CannotModifyApprovalRuleFromTemplateException"
+
+-- | A client request token is required. A client request token is an unique,
+-- client-generated idempotency token that, when provided in a request,
+-- ensures the request cannot be repeated with a changed parameter. If a
+-- request is received with the same parameters and a token is included,
+-- the request returns information about the initial request that used that
+-- token.
+_ClientRequestTokenRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ClientRequestTokenRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ClientRequestTokenRequiredException"
+
+-- | The comment is empty. You must provide some content for a comment. The
+-- content cannot be null.
+_CommentContentRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommentContentRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "CommentContentRequiredException"
+
+-- | The comment is too large. Comments are limited to 1,000 characters.
+_CommentContentSizeLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommentContentSizeLimitExceededException =
+  Core._MatchServiceError
+    defaultService
+    "CommentContentSizeLimitExceededException"
+
+-- | This comment has already been deleted. You cannot edit or delete a
+-- deleted comment.
+_CommentDeletedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommentDeletedException =
+  Core._MatchServiceError
+    defaultService
+    "CommentDeletedException"
+
+-- | No comment exists with the provided ID. Verify that you have used the
+-- correct ID, and then try again.
+_CommentDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommentDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "CommentDoesNotExistException"
+
+-- | The comment ID is missing or null. A comment ID is required.
+_CommentIdRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommentIdRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "CommentIdRequiredException"
+
+-- | You cannot modify or delete this comment. Only comment authors can
+-- modify or delete their comments.
+_CommentNotCreatedByCallerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommentNotCreatedByCallerException =
+  Core._MatchServiceError
+    defaultService
+    "CommentNotCreatedByCallerException"
+
+-- | The specified commit does not exist or no commit was specified, and the
+-- specified repository has no default branch.
+_CommitDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommitDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "CommitDoesNotExistException"
+
+-- | The specified commit ID does not exist.
+_CommitIdDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommitIdDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "CommitIdDoesNotExistException"
+
+-- | A commit ID was not specified.
+_CommitIdRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommitIdRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "CommitIdRequiredException"
+
+-- | The maximum number of allowed commit IDs in a batch request is 100.
+-- Verify that your batch requests contains no more than 100 commit IDs,
+-- and then try again.
+_CommitIdsLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommitIdsLimitExceededException =
+  Core._MatchServiceError
+    defaultService
+    "CommitIdsLimitExceededException"
+
+-- | A list of commit IDs is required, but was either not specified or the
+-- list was empty.
+_CommitIdsListRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommitIdsListRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "CommitIdsListRequiredException"
+
+-- | The commit message is too long. Provide a shorter string.
+_CommitMessageLengthExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommitMessageLengthExceededException =
+  Core._MatchServiceError
+    defaultService
+    "CommitMessageLengthExceededException"
+
+-- | A commit was not specified.
+_CommitRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_CommitRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "CommitRequiredException"
+
+-- | The merge cannot be completed because the target branch has been
+-- modified. Another user might have modified the target branch while the
+-- merge was in progress. Wait a few minutes, and then try again.
+_ConcurrentReferenceUpdateException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ConcurrentReferenceUpdateException =
+  Core._MatchServiceError
+    defaultService
+    "ConcurrentReferenceUpdateException"
+
+-- | The specified branch is the default branch for the repository, and
+-- cannot be deleted. To delete this branch, you must first set another
+-- branch as the default branch.
+_DefaultBranchCannotBeDeletedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DefaultBranchCannotBeDeletedException =
+  Core._MatchServiceError
+    defaultService
+    "DefaultBranchCannotBeDeletedException"
+
+-- | A file cannot be added to the repository because the specified path name
+-- has the same name as a file that already exists in this repository.
+-- Either provide a different name for the file, or specify a different
+-- path for the file.
+_DirectoryNameConflictsWithFileNameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_DirectoryNameConflictsWithFileNameException =
+  Core._MatchServiceError
+    defaultService
+    "DirectoryNameConflictsWithFileNameException"
+
+-- | An encryption integrity check failed.
+_EncryptionIntegrityChecksFailedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_EncryptionIntegrityChecksFailedException =
+  Core._MatchServiceError
+    defaultService
+    "EncryptionIntegrityChecksFailedException"
+
+-- | An encryption key could not be accessed.
+_EncryptionKeyAccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_EncryptionKeyAccessDeniedException =
+  Core._MatchServiceError
+    defaultService
+    "EncryptionKeyAccessDeniedException"
+
+-- | The encryption key is disabled.
+_EncryptionKeyDisabledException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_EncryptionKeyDisabledException =
+  Core._MatchServiceError
+    defaultService
+    "EncryptionKeyDisabledException"
+
+-- | No encryption key was found.
+_EncryptionKeyNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_EncryptionKeyNotFoundException =
+  Core._MatchServiceError
+    defaultService
+    "EncryptionKeyNotFoundException"
+
+-- | The encryption key is not available.
+_EncryptionKeyUnavailableException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_EncryptionKeyUnavailableException =
+  Core._MatchServiceError
+    defaultService
+    "EncryptionKeyUnavailableException"
+
+-- | The commit cannot be created because both a source file and file content
+-- have been specified for the same file. You cannot provide both. Either
+-- specify a source file or provide the file content directly.
+_FileContentAndSourceFileSpecifiedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FileContentAndSourceFileSpecifiedException =
+  Core._MatchServiceError
+    defaultService
+    "FileContentAndSourceFileSpecifiedException"
+
+-- | The file cannot be added because it is empty. Empty files cannot be
+-- added to the repository with this API.
+_FileContentRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FileContentRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "FileContentRequiredException"
+
+-- | The file cannot be added because it is too large. The maximum file size
+-- is 6 MB, and the combined file content change size is 7 MB. Consider
+-- making these changes using a Git client.
+_FileContentSizeLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FileContentSizeLimitExceededException =
+  Core._MatchServiceError
+    defaultService
+    "FileContentSizeLimitExceededException"
+
+-- | The specified file does not exist. Verify that you have used the correct
+-- file name, full path, and extension.
+_FileDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FileDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "FileDoesNotExistException"
+
+-- | The commit cannot be created because no files have been specified as
+-- added, updated, or changed (PutFile or DeleteFile) for the commit.
+_FileEntryRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FileEntryRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "FileEntryRequiredException"
+
+-- | The commit cannot be created because no file mode has been specified. A
+-- file mode is required to update mode permissions for a file.
+_FileModeRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FileModeRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "FileModeRequiredException"
+
+-- | A file cannot be added to the repository because the specified file name
+-- has the same name as a directory in this repository. Either provide
+-- another name for the file, or add the file in a directory that does not
+-- match the file name.
+_FileNameConflictsWithDirectoryNameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FileNameConflictsWithDirectoryNameException =
+  Core._MatchServiceError
+    defaultService
+    "FileNameConflictsWithDirectoryNameException"
+
+-- | The commit cannot be created because a specified file path points to a
+-- submodule. Verify that the destination files have valid file paths that
+-- do not point to a submodule.
+_FilePathConflictsWithSubmodulePathException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FilePathConflictsWithSubmodulePathException =
+  Core._MatchServiceError
+    defaultService
+    "FilePathConflictsWithSubmodulePathException"
+
+-- | The specified file exceeds the file size limit for AWS CodeCommit. For
+-- more information about limits in AWS CodeCommit, see
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html AWS CodeCommit User Guide>.
+_FileTooLargeException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FileTooLargeException =
+  Core._MatchServiceError
+    defaultService
+    "FileTooLargeException"
+
+-- | The commit cannot be created because at least one of the overall changes
+-- in the commit results in a folder whose contents exceed the limit of 6
+-- MB. Either reduce the number and size of your changes, or split the
+-- changes across multiple folders.
+_FolderContentSizeLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FolderContentSizeLimitExceededException =
+  Core._MatchServiceError
+    defaultService
+    "FolderContentSizeLimitExceededException"
+
+-- | The specified folder does not exist. Either the folder name is not
+-- correct, or you did not enter the full path to the folder.
+_FolderDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_FolderDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "FolderDoesNotExistException"
+
+-- | The client request token is not valid. Either the token is not in a
+-- valid format, or the token has been used in a previous request and
+-- cannot be reused.
+_IdempotencyParameterMismatchException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_IdempotencyParameterMismatchException =
+  Core._MatchServiceError
+    defaultService
+    "IdempotencyParameterMismatchException"
+
+-- | The Amazon Resource Name (ARN) is not valid. Make sure that you have
+-- provided the full ARN for the user who initiated the change for the pull
+-- request, and then try again.
+_InvalidActorArnException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidActorArnException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidActorArnException"
+
+-- | The content for the approval rule is not valid.
+_InvalidApprovalRuleContentException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidApprovalRuleContentException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidApprovalRuleContentException"
+
+-- | The name for the approval rule is not valid.
+_InvalidApprovalRuleNameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidApprovalRuleNameException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidApprovalRuleNameException"
+
+-- | The content of the approval rule template is not valid.
+_InvalidApprovalRuleTemplateContentException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidApprovalRuleTemplateContentException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidApprovalRuleTemplateContentException"
+
+-- | The description for the approval rule template is not valid because it
+-- exceeds the maximum characters allowed for a description. For more
+-- information about limits in AWS CodeCommit, see
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html AWS CodeCommit User Guide>.
+_InvalidApprovalRuleTemplateDescriptionException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidApprovalRuleTemplateDescriptionException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidApprovalRuleTemplateDescriptionException"
+
+-- | The name of the approval rule template is not valid. Template names must
+-- be between 1 and 100 valid characters in length. For more information
+-- about limits in AWS CodeCommit, see
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html AWS CodeCommit User Guide>.
+_InvalidApprovalRuleTemplateNameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidApprovalRuleTemplateNameException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidApprovalRuleTemplateNameException"
+
+-- | The state for the approval is not valid. Valid values include APPROVE
+-- and REVOKE.
+_InvalidApprovalStateException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidApprovalStateException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidApprovalStateException"
+
+-- | The Amazon Resource Name (ARN) is not valid. Make sure that you have
+-- provided the full ARN for the author of the pull request, and then try
+-- again.
+_InvalidAuthorArnException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidAuthorArnException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidAuthorArnException"
+
+-- | The specified blob is not valid.
+_InvalidBlobIdException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidBlobIdException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidBlobIdException"
+
+-- | The specified reference name is not valid.
+_InvalidBranchNameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidBranchNameException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidBranchNameException"
+
+-- | The client request token is not valid.
+_InvalidClientRequestTokenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidClientRequestTokenException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidClientRequestTokenException"
+
+-- | The comment ID is not in a valid format. Make sure that you have
+-- provided the full comment ID.
+_InvalidCommentIdException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidCommentIdException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidCommentIdException"
+
+-- | The specified commit is not valid.
+_InvalidCommitException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidCommitException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidCommitException"
+
+-- | The specified commit ID is not valid.
+_InvalidCommitIdException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidCommitIdException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidCommitIdException"
+
+-- | The specified conflict detail level is not valid.
+_InvalidConflictDetailLevelException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidConflictDetailLevelException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidConflictDetailLevelException"
+
+-- | The specified conflict resolution list is not valid.
+_InvalidConflictResolutionException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidConflictResolutionException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidConflictResolutionException"
+
+-- | The specified conflict resolution strategy is not valid.
+_InvalidConflictResolutionStrategyException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidConflictResolutionStrategyException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidConflictResolutionStrategyException"
+
+-- | The specified continuation token is not valid.
+_InvalidContinuationTokenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidContinuationTokenException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidContinuationTokenException"
+
+-- | The specified deletion parameter is not valid.
+_InvalidDeletionParameterException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidDeletionParameterException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidDeletionParameterException"
+
+-- | The pull request description is not valid. Descriptions cannot be more
+-- than 1,000 characters.
+_InvalidDescriptionException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidDescriptionException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidDescriptionException"
+
+-- | The destination commit specifier is not valid. You must provide a valid
+-- branch name, tag, or full commit ID.
+_InvalidDestinationCommitSpecifierException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidDestinationCommitSpecifierException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidDestinationCommitSpecifierException"
+
+-- | The specified email address either contains one or more characters that
+-- are not allowed, or it exceeds the maximum number of characters allowed
+-- for an email address.
+_InvalidEmailException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidEmailException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidEmailException"
+
+-- | The location of the file is not valid. Make sure that you include the
+-- file name and extension.
+_InvalidFileLocationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidFileLocationException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidFileLocationException"
+
+-- | The specified file mode permission is not valid. For a list of valid
+-- file mode permissions, see PutFile.
+_InvalidFileModeException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidFileModeException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidFileModeException"
+
+-- | The position is not valid. Make sure that the line number exists in the
+-- version of the file you want to comment on.
+_InvalidFilePositionException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidFilePositionException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidFilePositionException"
+
+-- | The specified value for the number of conflict files to return is not
+-- valid.
+_InvalidMaxConflictFilesException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidMaxConflictFilesException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidMaxConflictFilesException"
+
+-- | The specified value for the number of merge hunks to return is not
+-- valid.
+_InvalidMaxMergeHunksException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidMaxMergeHunksException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidMaxMergeHunksException"
+
+-- | The specified number of maximum results is not valid.
+_InvalidMaxResultsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidMaxResultsException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidMaxResultsException"
+
+-- | The specified merge option is not valid for this operation. Not all
+-- merge strategies are supported for all operations.
+_InvalidMergeOptionException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidMergeOptionException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidMergeOptionException"
+
+-- | The specified sort order is not valid.
+_InvalidOrderException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidOrderException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidOrderException"
+
+-- | The override status is not valid. Valid statuses are OVERRIDE and
+-- REVOKE.
+_InvalidOverrideStatusException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidOverrideStatusException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidOverrideStatusException"
+
+-- | The parent commit ID is not valid. The commit ID cannot be empty, and
+-- must match the head commit ID for the branch of the repository where you
+-- want to add or update a file.
+_InvalidParentCommitIdException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidParentCommitIdException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidParentCommitIdException"
+
+-- | The specified path is not valid.
+_InvalidPathException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidPathException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidPathException"
+
+-- | The pull request event type is not valid.
+_InvalidPullRequestEventTypeException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidPullRequestEventTypeException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidPullRequestEventTypeException"
+
+-- | The pull request ID is not valid. Make sure that you have provided the
+-- full ID and that the pull request is in the specified repository, and
+-- then try again.
+_InvalidPullRequestIdException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidPullRequestIdException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidPullRequestIdException"
+
+-- | The pull request status is not valid. The only valid values are @OPEN@
+-- and @CLOSED@.
+_InvalidPullRequestStatusException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidPullRequestStatusException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidPullRequestStatusException"
+
+-- | The pull request status update is not valid. The only valid update is
+-- from @OPEN@ to @CLOSED@.
+_InvalidPullRequestStatusUpdateException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidPullRequestStatusUpdateException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidPullRequestStatusUpdateException"
+
+-- | The Amazon Resource Name (ARN) of the user or identity is not valid.
+_InvalidReactionUserArnException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidReactionUserArnException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidReactionUserArnException"
+
+-- | The value of the reaction is not valid. For more information, see the
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html AWS CodeCommit User Guide>.
+_InvalidReactionValueException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidReactionValueException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidReactionValueException"
+
+-- | The specified reference name format is not valid. Reference names must
+-- conform to the Git references format (for example, refs\/heads\/master).
+-- For more information, see
+-- <https://git-scm.com/book/en/v2/Git-Internals-Git-References Git Internals - Git References>
+-- or consult your Git documentation.
+_InvalidReferenceNameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidReferenceNameException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidReferenceNameException"
+
+-- | Either the enum is not in a valid format, or the specified file version
+-- enum is not valid in respect to the current file version.
+_InvalidRelativeFileVersionEnumException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidRelativeFileVersionEnumException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidRelativeFileVersionEnumException"
+
+-- | Automerge was specified for resolving the conflict, but the replacement
+-- type is not valid or content is missing.
+_InvalidReplacementContentException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidReplacementContentException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidReplacementContentException"
+
+-- | Automerge was specified for resolving the conflict, but the specified
+-- replacement type is not valid.
+_InvalidReplacementTypeException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidReplacementTypeException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidReplacementTypeException"
+
+-- | The specified repository description is not valid.
+_InvalidRepositoryDescriptionException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidRepositoryDescriptionException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidRepositoryDescriptionException"
+
+-- | A specified repository name is not valid.
+--
+-- This exception occurs only when a specified repository name is not
+-- valid. Other exceptions occur when a required repository parameter is
+-- missing, or when a specified repository does not exist.
+_InvalidRepositoryNameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidRepositoryNameException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidRepositoryNameException"
+
+-- | One or more branch names specified for the trigger is not valid.
+_InvalidRepositoryTriggerBranchNameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidRepositoryTriggerBranchNameException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidRepositoryTriggerBranchNameException"
+
+-- | The custom data provided for the trigger is not valid.
+_InvalidRepositoryTriggerCustomDataException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidRepositoryTriggerCustomDataException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidRepositoryTriggerCustomDataException"
+
+-- | The Amazon Resource Name (ARN) for the trigger is not valid for the
+-- specified destination. The most common reason for this error is that the
+-- ARN does not meet the requirements for the service type.
+_InvalidRepositoryTriggerDestinationArnException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidRepositoryTriggerDestinationArnException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidRepositoryTriggerDestinationArnException"
+
+-- | One or more events specified for the trigger is not valid. Check to make
+-- sure that all events specified match the requirements for allowed
+-- events.
+_InvalidRepositoryTriggerEventsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidRepositoryTriggerEventsException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidRepositoryTriggerEventsException"
+
+-- | The name of the trigger is not valid.
+_InvalidRepositoryTriggerNameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidRepositoryTriggerNameException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidRepositoryTriggerNameException"
+
+-- | The AWS Region for the trigger target does not match the AWS Region for
+-- the repository. Triggers must be created in the same Region as the
+-- target for the trigger.
+_InvalidRepositoryTriggerRegionException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidRepositoryTriggerRegionException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidRepositoryTriggerRegionException"
+
+-- | The value for the resource ARN is not valid. For more information about
+-- resources in AWS CodeCommit, see
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats CodeCommit Resources and Operations>
+-- in the AWS CodeCommit User Guide.
+_InvalidResourceArnException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidResourceArnException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidResourceArnException"
+
+-- | The revision ID is not valid. Use GetPullRequest to determine the value.
+_InvalidRevisionIdException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidRevisionIdException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidRevisionIdException"
+
+-- | The SHA-256 hash signature for the rule content is not valid.
+_InvalidRuleContentSha256Exception :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidRuleContentSha256Exception =
+  Core._MatchServiceError
+    defaultService
+    "InvalidRuleContentSha256Exception"
+
+-- | The specified sort by value is not valid.
+_InvalidSortByException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidSortByException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidSortByException"
+
+-- | The source commit specifier is not valid. You must provide a valid
+-- branch name, tag, or full commit ID.
+_InvalidSourceCommitSpecifierException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidSourceCommitSpecifierException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidSourceCommitSpecifierException"
+
+-- | The specified tag is not valid. Key names cannot be prefixed with aws:.
+_InvalidSystemTagUsageException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidSystemTagUsageException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidSystemTagUsageException"
+
+-- | The list of tags is not valid.
+_InvalidTagKeysListException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidTagKeysListException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidTagKeysListException"
+
+-- | The map of tags is not valid.
+_InvalidTagsMapException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidTagsMapException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidTagsMapException"
+
+-- | The specified target branch is not valid.
+_InvalidTargetBranchException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidTargetBranchException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidTargetBranchException"
+
+-- | The target for the pull request is not valid. A target must contain the
+-- full values for the repository name, source branch, and destination
+-- branch for the pull request.
+_InvalidTargetException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidTargetException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidTargetException"
+
+-- | The targets for the pull request is not valid or not in a valid format.
+-- Targets are a list of target objects. Each target object must contain
+-- the full values for the repository name, source branch, and destination
+-- branch for a pull request.
+_InvalidTargetsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidTargetsException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidTargetsException"
+
+-- | The title of the pull request is not valid. Pull request titles cannot
+-- exceed 100 characters in length.
+_InvalidTitleException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InvalidTitleException =
+  Core._MatchServiceError
+    defaultService
+    "InvalidTitleException"
+
+-- | The pull request cannot be merged automatically into the destination
+-- branch. You must manually merge the branches and resolve any conflicts.
+_ManualMergeRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ManualMergeRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ManualMergeRequiredException"
+
+-- | The number of branches for the trigger was exceeded.
+_MaximumBranchesExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MaximumBranchesExceededException =
+  Core._MatchServiceError
+    defaultService
+    "MaximumBranchesExceededException"
+
+-- | The number of allowed conflict resolution entries was exceeded.
+_MaximumConflictResolutionEntriesExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MaximumConflictResolutionEntriesExceededException =
+  Core._MatchServiceError
+    defaultService
+    "MaximumConflictResolutionEntriesExceededException"
+
+-- | The number of files to load exceeds the allowed limit.
+_MaximumFileContentToLoadExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MaximumFileContentToLoadExceededException =
+  Core._MatchServiceError
+    defaultService
+    "MaximumFileContentToLoadExceededException"
+
+-- | The number of specified files to change as part of this commit exceeds
+-- the maximum number of files that can be changed in a single commit.
+-- Consider using a Git client for these changes.
+_MaximumFileEntriesExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MaximumFileEntriesExceededException =
+  Core._MatchServiceError
+    defaultService
+    "MaximumFileEntriesExceededException"
+
+-- | The number of items to compare between the source or destination
+-- branches and the merge base has exceeded the maximum allowed.
+_MaximumItemsToCompareExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MaximumItemsToCompareExceededException =
+  Core._MatchServiceError
+    defaultService
+    "MaximumItemsToCompareExceededException"
+
+-- | The number of approvals required for the approval rule exceeds the
+-- maximum number allowed.
+_MaximumNumberOfApprovalsExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MaximumNumberOfApprovalsExceededException =
+  Core._MatchServiceError
+    defaultService
+    "MaximumNumberOfApprovalsExceededException"
+
+-- | You cannot create the pull request because the repository has too many
+-- open pull requests. The maximum number of open pull requests for a
+-- repository is 1,000. Close one or more open pull requests, and then try
+-- again.
+_MaximumOpenPullRequestsExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MaximumOpenPullRequestsExceededException =
+  Core._MatchServiceError
+    defaultService
+    "MaximumOpenPullRequestsExceededException"
+
+-- | The maximum number of allowed repository names was exceeded. Currently,
+-- this number is 100.
+_MaximumRepositoryNamesExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MaximumRepositoryNamesExceededException =
+  Core._MatchServiceError
+    defaultService
+    "MaximumRepositoryNamesExceededException"
+
+-- | The number of triggers allowed for the repository was exceeded.
+_MaximumRepositoryTriggersExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MaximumRepositoryTriggersExceededException =
+  Core._MatchServiceError
+    defaultService
+    "MaximumRepositoryTriggersExceededException"
+
+-- | The maximum number of approval rule templates for a repository has been
+-- exceeded. You cannot associate more than 25 approval rule templates with
+-- a repository.
+_MaximumRuleTemplatesAssociatedWithRepositoryException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MaximumRuleTemplatesAssociatedWithRepositoryException =
+  Core._MatchServiceError
+    defaultService
+    "MaximumRuleTemplatesAssociatedWithRepositoryException"
+
+-- | A merge option or stategy is required, and none was provided.
+_MergeOptionRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MergeOptionRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "MergeOptionRequiredException"
+
+-- | More than one conflict resolution entries exists for the conflict. A
+-- conflict can have only one conflict resolution entry.
+_MultipleConflictResolutionEntriesException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MultipleConflictResolutionEntriesException =
+  Core._MatchServiceError
+    defaultService
+    "MultipleConflictResolutionEntriesException"
+
+-- | You cannot include more than one repository in a pull request. Make sure
+-- you have specified only one repository name in your request, and then
+-- try again.
+_MultipleRepositoriesInPullRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_MultipleRepositoriesInPullRequestException =
+  Core._MatchServiceError
+    defaultService
+    "MultipleRepositoriesInPullRequestException"
+
+-- | The user name is not valid because it has exceeded the character limit
+-- for author names.
+_NameLengthExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_NameLengthExceededException =
+  Core._MatchServiceError
+    defaultService
+    "NameLengthExceededException"
+
+-- | The commit cannot be created because no changes will be made to the
+-- repository as a result of this commit. A commit must contain at least
+-- one change.
+_NoChangeException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_NoChangeException =
+  Core._MatchServiceError
+    defaultService
+    "NoChangeException"
+
+-- | The maximum number of approval rule templates has been exceeded for this
+-- AWS Region.
+_NumberOfRuleTemplatesExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_NumberOfRuleTemplatesExceededException =
+  Core._MatchServiceError
+    defaultService
+    "NumberOfRuleTemplatesExceededException"
+
+-- | The approval rule cannot be added. The pull request has the maximum
+-- number of approval rules associated with it.
+_NumberOfRulesExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_NumberOfRulesExceededException =
+  Core._MatchServiceError
+    defaultService
+    "NumberOfRulesExceededException"
+
+-- | The pull request has already had its approval rules set to override.
+_OverrideAlreadySetException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_OverrideAlreadySetException =
+  Core._MatchServiceError
+    defaultService
+    "OverrideAlreadySetException"
+
+-- | An override status is required, but no value was provided. Valid values
+-- include OVERRIDE and REVOKE.
+_OverrideStatusRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_OverrideStatusRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "OverrideStatusRequiredException"
+
+-- | The parent commit ID is not valid because it does not exist. The
+-- specified parent commit ID does not exist in the specified branch of the
+-- repository.
+_ParentCommitDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ParentCommitDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "ParentCommitDoesNotExistException"
+
+-- | The file could not be added because the provided parent commit ID is not
+-- the current tip of the specified branch. To view the full commit ID of
+-- the current head of the branch, use GetBranch.
+_ParentCommitIdOutdatedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ParentCommitIdOutdatedException =
+  Core._MatchServiceError
+    defaultService
+    "ParentCommitIdOutdatedException"
+
+-- | A parent commit ID is required. To view the full commit ID of a branch
+-- in a repository, use GetBranch or a Git command (for example, git pull
+-- or git log).
+_ParentCommitIdRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ParentCommitIdRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ParentCommitIdRequiredException"
+
+-- | The specified path does not exist.
+_PathDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_PathDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "PathDoesNotExistException"
+
+-- | The folderPath for a location cannot be null.
+_PathRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_PathRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "PathRequiredException"
+
+-- | The pull request status cannot be updated because it is already closed.
+_PullRequestAlreadyClosedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_PullRequestAlreadyClosedException =
+  Core._MatchServiceError
+    defaultService
+    "PullRequestAlreadyClosedException"
+
+-- | The pull request cannot be merged because one or more approval rules
+-- applied to the pull request have conditions that have not been met.
+_PullRequestApprovalRulesNotSatisfiedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_PullRequestApprovalRulesNotSatisfiedException =
+  Core._MatchServiceError
+    defaultService
+    "PullRequestApprovalRulesNotSatisfiedException"
+
+-- | The approval cannot be applied because the user approving the pull
+-- request matches the user who created the pull request. You cannot
+-- approve a pull request that you created.
+_PullRequestCannotBeApprovedByAuthorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_PullRequestCannotBeApprovedByAuthorException =
+  Core._MatchServiceError
+    defaultService
+    "PullRequestCannotBeApprovedByAuthorException"
+
+-- | The pull request ID could not be found. Make sure that you have
+-- specified the correct repository name and pull request ID, and then try
+-- again.
+_PullRequestDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_PullRequestDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "PullRequestDoesNotExistException"
+
+-- | A pull request ID is required, but none was provided.
+_PullRequestIdRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_PullRequestIdRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "PullRequestIdRequiredException"
+
+-- | A pull request status is required, but none was provided.
+_PullRequestStatusRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_PullRequestStatusRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "PullRequestStatusRequiredException"
+
+-- | The commit cannot be created because one or more files specified in the
+-- commit reference both a file and a folder.
+_PutFileEntryConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_PutFileEntryConflictException =
+  Core._MatchServiceError
+    defaultService
+    "PutFileEntryConflictException"
+
+-- | The number of reactions has been exceeded. Reactions are limited to one
+-- reaction per user for each individual comment ID.
+_ReactionLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ReactionLimitExceededException =
+  Core._MatchServiceError
+    defaultService
+    "ReactionLimitExceededException"
+
+-- | A reaction value is required.
+_ReactionValueRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ReactionValueRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ReactionValueRequiredException"
+
+-- | The specified reference does not exist. You must provide a full commit
+-- ID.
+_ReferenceDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ReferenceDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "ReferenceDoesNotExistException"
+
+-- | A reference name is required, but none was provided.
+_ReferenceNameRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ReferenceNameRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ReferenceNameRequiredException"
+
+-- | The specified reference is not a supported type.
+_ReferenceTypeNotSupportedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ReferenceTypeNotSupportedException =
+  Core._MatchServiceError
+    defaultService
+    "ReferenceTypeNotSupportedException"
+
+-- | USE_NEW_CONTENT was specified, but no replacement content has been
+-- provided.
+_ReplacementContentRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ReplacementContentRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ReplacementContentRequiredException"
+
+-- | A replacement type is required.
+_ReplacementTypeRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ReplacementTypeRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ReplacementTypeRequiredException"
+
+-- | The specified repository does not exist.
+_RepositoryDoesNotExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RepositoryDoesNotExistException =
+  Core._MatchServiceError
+    defaultService
+    "RepositoryDoesNotExistException"
+
+-- | A repository resource limit was exceeded.
+_RepositoryLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RepositoryLimitExceededException =
+  Core._MatchServiceError
+    defaultService
+    "RepositoryLimitExceededException"
+
+-- | The specified repository name already exists.
+_RepositoryNameExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RepositoryNameExistsException =
+  Core._MatchServiceError
+    defaultService
+    "RepositoryNameExistsException"
+
+-- | A repository name is required, but was not specified.
+_RepositoryNameRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RepositoryNameRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "RepositoryNameRequiredException"
+
+-- | At least one repository name object is required, but was not specified.
+_RepositoryNamesRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RepositoryNamesRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "RepositoryNamesRequiredException"
+
+-- | The repository does not contain any pull requests with that pull request
+-- ID. Use GetPullRequest to verify the correct repository name for the
+-- pull request ID.
+_RepositoryNotAssociatedWithPullRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RepositoryNotAssociatedWithPullRequestException =
+  Core._MatchServiceError
+    defaultService
+    "RepositoryNotAssociatedWithPullRequestException"
+
+-- | At least one branch name is required, but was not specified in the
+-- trigger configuration.
+_RepositoryTriggerBranchNameListRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RepositoryTriggerBranchNameListRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "RepositoryTriggerBranchNameListRequiredException"
+
+-- | A destination ARN for the target service for the trigger is required,
+-- but was not specified.
+_RepositoryTriggerDestinationArnRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RepositoryTriggerDestinationArnRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "RepositoryTriggerDestinationArnRequiredException"
+
+-- | At least one event for the trigger is required, but was not specified.
+_RepositoryTriggerEventsListRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RepositoryTriggerEventsListRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "RepositoryTriggerEventsListRequiredException"
+
+-- | A name for the trigger is required, but was not specified.
+_RepositoryTriggerNameRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RepositoryTriggerNameRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "RepositoryTriggerNameRequiredException"
+
+-- | The list of triggers for the repository is required, but was not
+-- specified.
+_RepositoryTriggersListRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RepositoryTriggersListRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "RepositoryTriggersListRequiredException"
+
+-- | A valid Amazon Resource Name (ARN) for an AWS CodeCommit resource is
+-- required. For a list of valid resources in AWS CodeCommit, see
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats CodeCommit Resources and Operations>
+-- in the AWS CodeCommit User Guide.
+_ResourceArnRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ResourceArnRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "ResourceArnRequiredException"
+
+-- | The commit cannot be created because one of the changes specifies
+-- copying or moving a .gitkeep file.
+_RestrictedSourceFileException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RestrictedSourceFileException =
+  Core._MatchServiceError
+    defaultService
+    "RestrictedSourceFileException"
+
+-- | A revision ID is required, but was not provided.
+_RevisionIdRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RevisionIdRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "RevisionIdRequiredException"
+
+-- | The revision ID provided in the request does not match the current
+-- revision ID. Use GetPullRequest to retrieve the current revision ID.
+_RevisionNotCurrentException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_RevisionNotCurrentException =
+  Core._MatchServiceError
+    defaultService
+    "RevisionNotCurrentException"
+
+-- | The file was not added or updated because the content of the file is
+-- exactly the same as the content of that file in the repository and
+-- branch that you specified.
+_SameFileContentException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_SameFileContentException =
+  Core._MatchServiceError
+    defaultService
+    "SameFileContentException"
+
+-- | The commit cannot be created because one or more changes in this commit
+-- duplicate actions in the same file path. For example, you cannot make
+-- the same delete request to the same file in the same file path twice, or
+-- make a delete request and a move request to the same file as part of the
+-- same commit.
+_SamePathRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_SamePathRequestException =
+  Core._MatchServiceError
+    defaultService
+    "SamePathRequestException"
+
+-- | The source branch and destination branch for the pull request are the
+-- same. You must specify different branches for the source and
+-- destination.
+_SourceAndDestinationAreSameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_SourceAndDestinationAreSameException =
+  Core._MatchServiceError
+    defaultService
+    "SourceAndDestinationAreSameException"
+
+-- | The commit cannot be created because no source files or file content
+-- have been specified for the commit.
+_SourceFileOrContentRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_SourceFileOrContentRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "SourceFileOrContentRequiredException"
+
+-- | A list of tag keys is required. The list cannot be empty or null.
+_TagKeysListRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_TagKeysListRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "TagKeysListRequiredException"
+
+-- | The tag policy is not valid.
+_TagPolicyException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_TagPolicyException =
+  Core._MatchServiceError
+    defaultService
+    "TagPolicyException"
+
+-- | A map of tags is required.
+_TagsMapRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_TagsMapRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "TagsMapRequiredException"
+
+-- | A pull request target is required. It cannot be empty or null. A pull
+-- request target must contain the full values for the repository name,
+-- source branch, and destination branch for the pull request.
+_TargetRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_TargetRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "TargetRequiredException"
+
+-- | An array of target objects is required. It cannot be empty or null.
+_TargetsRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_TargetsRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "TargetsRequiredException"
+
+-- | The tip of the source branch in the destination repository does not
+-- match the tip of the source branch specified in your request. The pull
+-- request might have been updated. Make sure that you have the latest
+-- changes.
+_TipOfSourceReferenceIsDifferentException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_TipOfSourceReferenceIsDifferentException =
+  Core._MatchServiceError
+    defaultService
+    "TipOfSourceReferenceIsDifferentException"
+
+-- | The divergence between the tips of the provided commit specifiers is too
+-- great to determine whether there might be any merge conflicts. Locally
+-- compare the specifiers using @git diff@ or a diff tool.
+_TipsDivergenceExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_TipsDivergenceExceededException =
+  Core._MatchServiceError
+    defaultService
+    "TipsDivergenceExceededException"
+
+-- | A pull request title is required. It cannot be empty or null.
+_TitleRequiredException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_TitleRequiredException =
+  Core._MatchServiceError
+    defaultService
+    "TitleRequiredException"
+
+-- | The maximum number of tags for an AWS CodeCommit resource has been
+-- exceeded.
+_TooManyTagsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_TooManyTagsException =
+  Core._MatchServiceError
+    defaultService
+    "TooManyTagsException"
diff --git a/gen/Amazonka/CodeCommit/Types/Approval.hs b/gen/Amazonka/CodeCommit/Types/Approval.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/Approval.hs
@@ -0,0 +1,88 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.Approval
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.Approval where
+
+import Amazonka.CodeCommit.Types.ApprovalState
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a specific approval on a pull request.
+--
+-- /See:/ 'newApproval' smart constructor.
+data Approval = Approval'
+  { -- | The state of the approval, APPROVE or REVOKE. REVOKE states are not
+    -- stored.
+    approvalState :: Prelude.Maybe ApprovalState,
+    -- | The Amazon Resource Name (ARN) of the user.
+    userArn :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Approval' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalState', 'approval_approvalState' - The state of the approval, APPROVE or REVOKE. REVOKE states are not
+-- stored.
+--
+-- 'userArn', 'approval_userArn' - The Amazon Resource Name (ARN) of the user.
+newApproval ::
+  Approval
+newApproval =
+  Approval'
+    { approvalState = Prelude.Nothing,
+      userArn = Prelude.Nothing
+    }
+
+-- | The state of the approval, APPROVE or REVOKE. REVOKE states are not
+-- stored.
+approval_approvalState :: Lens.Lens' Approval (Prelude.Maybe ApprovalState)
+approval_approvalState = Lens.lens (\Approval' {approvalState} -> approvalState) (\s@Approval' {} a -> s {approvalState = a} :: Approval)
+
+-- | The Amazon Resource Name (ARN) of the user.
+approval_userArn :: Lens.Lens' Approval (Prelude.Maybe Prelude.Text)
+approval_userArn = Lens.lens (\Approval' {userArn} -> userArn) (\s@Approval' {} a -> s {userArn = a} :: Approval)
+
+instance Data.FromJSON Approval where
+  parseJSON =
+    Data.withObject
+      "Approval"
+      ( \x ->
+          Approval'
+            Prelude.<$> (x Data..:? "approvalState")
+            Prelude.<*> (x Data..:? "userArn")
+      )
+
+instance Prelude.Hashable Approval where
+  hashWithSalt _salt Approval' {..} =
+    _salt
+      `Prelude.hashWithSalt` approvalState
+      `Prelude.hashWithSalt` userArn
+
+instance Prelude.NFData Approval where
+  rnf Approval' {..} =
+    Prelude.rnf approvalState
+      `Prelude.seq` Prelude.rnf userArn
diff --git a/gen/Amazonka/CodeCommit/Types/ApprovalRule.hs b/gen/Amazonka/CodeCommit/Types/ApprovalRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ApprovalRule.hs
@@ -0,0 +1,164 @@
+{-# 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.CodeCommit.Types.ApprovalRule
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ApprovalRule where
+
+import Amazonka.CodeCommit.Types.OriginApprovalRuleTemplate
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about an approval rule.
+--
+-- /See:/ 'newApprovalRule' smart constructor.
+data ApprovalRule = ApprovalRule'
+  { -- | The content of the approval rule.
+    approvalRuleContent :: Prelude.Maybe Prelude.Text,
+    -- | The system-generated ID of the approval rule.
+    approvalRuleId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the approval rule.
+    approvalRuleName :: Prelude.Maybe Prelude.Text,
+    -- | The date the approval rule was created, in timestamp format.
+    creationDate :: Prelude.Maybe Data.POSIX,
+    -- | The date the approval rule was most recently changed, in timestamp
+    -- format.
+    lastModifiedDate :: Prelude.Maybe Data.POSIX,
+    -- | The Amazon Resource Name (ARN) of the user who made the most recent
+    -- changes to the approval rule.
+    lastModifiedUser :: Prelude.Maybe Prelude.Text,
+    -- | The approval rule template used to create the rule.
+    originApprovalRuleTemplate :: Prelude.Maybe OriginApprovalRuleTemplate,
+    -- | The SHA-256 hash signature for the content of the approval rule.
+    ruleContentSha256 :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApprovalRule' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleContent', 'approvalRule_approvalRuleContent' - The content of the approval rule.
+--
+-- 'approvalRuleId', 'approvalRule_approvalRuleId' - The system-generated ID of the approval rule.
+--
+-- 'approvalRuleName', 'approvalRule_approvalRuleName' - The name of the approval rule.
+--
+-- 'creationDate', 'approvalRule_creationDate' - The date the approval rule was created, in timestamp format.
+--
+-- 'lastModifiedDate', 'approvalRule_lastModifiedDate' - The date the approval rule was most recently changed, in timestamp
+-- format.
+--
+-- 'lastModifiedUser', 'approvalRule_lastModifiedUser' - The Amazon Resource Name (ARN) of the user who made the most recent
+-- changes to the approval rule.
+--
+-- 'originApprovalRuleTemplate', 'approvalRule_originApprovalRuleTemplate' - The approval rule template used to create the rule.
+--
+-- 'ruleContentSha256', 'approvalRule_ruleContentSha256' - The SHA-256 hash signature for the content of the approval rule.
+newApprovalRule ::
+  ApprovalRule
+newApprovalRule =
+  ApprovalRule'
+    { approvalRuleContent =
+        Prelude.Nothing,
+      approvalRuleId = Prelude.Nothing,
+      approvalRuleName = Prelude.Nothing,
+      creationDate = Prelude.Nothing,
+      lastModifiedDate = Prelude.Nothing,
+      lastModifiedUser = Prelude.Nothing,
+      originApprovalRuleTemplate = Prelude.Nothing,
+      ruleContentSha256 = Prelude.Nothing
+    }
+
+-- | The content of the approval rule.
+approvalRule_approvalRuleContent :: Lens.Lens' ApprovalRule (Prelude.Maybe Prelude.Text)
+approvalRule_approvalRuleContent = Lens.lens (\ApprovalRule' {approvalRuleContent} -> approvalRuleContent) (\s@ApprovalRule' {} a -> s {approvalRuleContent = a} :: ApprovalRule)
+
+-- | The system-generated ID of the approval rule.
+approvalRule_approvalRuleId :: Lens.Lens' ApprovalRule (Prelude.Maybe Prelude.Text)
+approvalRule_approvalRuleId = Lens.lens (\ApprovalRule' {approvalRuleId} -> approvalRuleId) (\s@ApprovalRule' {} a -> s {approvalRuleId = a} :: ApprovalRule)
+
+-- | The name of the approval rule.
+approvalRule_approvalRuleName :: Lens.Lens' ApprovalRule (Prelude.Maybe Prelude.Text)
+approvalRule_approvalRuleName = Lens.lens (\ApprovalRule' {approvalRuleName} -> approvalRuleName) (\s@ApprovalRule' {} a -> s {approvalRuleName = a} :: ApprovalRule)
+
+-- | The date the approval rule was created, in timestamp format.
+approvalRule_creationDate :: Lens.Lens' ApprovalRule (Prelude.Maybe Prelude.UTCTime)
+approvalRule_creationDate = Lens.lens (\ApprovalRule' {creationDate} -> creationDate) (\s@ApprovalRule' {} a -> s {creationDate = a} :: ApprovalRule) Prelude.. Lens.mapping Data._Time
+
+-- | The date the approval rule was most recently changed, in timestamp
+-- format.
+approvalRule_lastModifiedDate :: Lens.Lens' ApprovalRule (Prelude.Maybe Prelude.UTCTime)
+approvalRule_lastModifiedDate = Lens.lens (\ApprovalRule' {lastModifiedDate} -> lastModifiedDate) (\s@ApprovalRule' {} a -> s {lastModifiedDate = a} :: ApprovalRule) Prelude.. Lens.mapping Data._Time
+
+-- | The Amazon Resource Name (ARN) of the user who made the most recent
+-- changes to the approval rule.
+approvalRule_lastModifiedUser :: Lens.Lens' ApprovalRule (Prelude.Maybe Prelude.Text)
+approvalRule_lastModifiedUser = Lens.lens (\ApprovalRule' {lastModifiedUser} -> lastModifiedUser) (\s@ApprovalRule' {} a -> s {lastModifiedUser = a} :: ApprovalRule)
+
+-- | The approval rule template used to create the rule.
+approvalRule_originApprovalRuleTemplate :: Lens.Lens' ApprovalRule (Prelude.Maybe OriginApprovalRuleTemplate)
+approvalRule_originApprovalRuleTemplate = Lens.lens (\ApprovalRule' {originApprovalRuleTemplate} -> originApprovalRuleTemplate) (\s@ApprovalRule' {} a -> s {originApprovalRuleTemplate = a} :: ApprovalRule)
+
+-- | The SHA-256 hash signature for the content of the approval rule.
+approvalRule_ruleContentSha256 :: Lens.Lens' ApprovalRule (Prelude.Maybe Prelude.Text)
+approvalRule_ruleContentSha256 = Lens.lens (\ApprovalRule' {ruleContentSha256} -> ruleContentSha256) (\s@ApprovalRule' {} a -> s {ruleContentSha256 = a} :: ApprovalRule)
+
+instance Data.FromJSON ApprovalRule where
+  parseJSON =
+    Data.withObject
+      "ApprovalRule"
+      ( \x ->
+          ApprovalRule'
+            Prelude.<$> (x Data..:? "approvalRuleContent")
+            Prelude.<*> (x Data..:? "approvalRuleId")
+            Prelude.<*> (x Data..:? "approvalRuleName")
+            Prelude.<*> (x Data..:? "creationDate")
+            Prelude.<*> (x Data..:? "lastModifiedDate")
+            Prelude.<*> (x Data..:? "lastModifiedUser")
+            Prelude.<*> (x Data..:? "originApprovalRuleTemplate")
+            Prelude.<*> (x Data..:? "ruleContentSha256")
+      )
+
+instance Prelude.Hashable ApprovalRule where
+  hashWithSalt _salt ApprovalRule' {..} =
+    _salt
+      `Prelude.hashWithSalt` approvalRuleContent
+      `Prelude.hashWithSalt` approvalRuleId
+      `Prelude.hashWithSalt` approvalRuleName
+      `Prelude.hashWithSalt` creationDate
+      `Prelude.hashWithSalt` lastModifiedDate
+      `Prelude.hashWithSalt` lastModifiedUser
+      `Prelude.hashWithSalt` originApprovalRuleTemplate
+      `Prelude.hashWithSalt` ruleContentSha256
+
+instance Prelude.NFData ApprovalRule where
+  rnf ApprovalRule' {..} =
+    Prelude.rnf approvalRuleContent
+      `Prelude.seq` Prelude.rnf approvalRuleId
+      `Prelude.seq` Prelude.rnf approvalRuleName
+      `Prelude.seq` Prelude.rnf creationDate
+      `Prelude.seq` Prelude.rnf lastModifiedDate
+      `Prelude.seq` Prelude.rnf lastModifiedUser
+      `Prelude.seq` Prelude.rnf originApprovalRuleTemplate
+      `Prelude.seq` Prelude.rnf ruleContentSha256
diff --git a/gen/Amazonka/CodeCommit/Types/ApprovalRuleEventMetadata.hs b/gen/Amazonka/CodeCommit/Types/ApprovalRuleEventMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ApprovalRuleEventMetadata.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ApprovalRuleEventMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ApprovalRuleEventMetadata where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about an event for an approval rule.
+--
+-- /See:/ 'newApprovalRuleEventMetadata' smart constructor.
+data ApprovalRuleEventMetadata = ApprovalRuleEventMetadata'
+  { -- | The content of the approval rule.
+    approvalRuleContent :: Prelude.Maybe Prelude.Text,
+    -- | The system-generated ID of the approval rule.
+    approvalRuleId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the approval rule.
+    approvalRuleName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApprovalRuleEventMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleContent', 'approvalRuleEventMetadata_approvalRuleContent' - The content of the approval rule.
+--
+-- 'approvalRuleId', 'approvalRuleEventMetadata_approvalRuleId' - The system-generated ID of the approval rule.
+--
+-- 'approvalRuleName', 'approvalRuleEventMetadata_approvalRuleName' - The name of the approval rule.
+newApprovalRuleEventMetadata ::
+  ApprovalRuleEventMetadata
+newApprovalRuleEventMetadata =
+  ApprovalRuleEventMetadata'
+    { approvalRuleContent =
+        Prelude.Nothing,
+      approvalRuleId = Prelude.Nothing,
+      approvalRuleName = Prelude.Nothing
+    }
+
+-- | The content of the approval rule.
+approvalRuleEventMetadata_approvalRuleContent :: Lens.Lens' ApprovalRuleEventMetadata (Prelude.Maybe Prelude.Text)
+approvalRuleEventMetadata_approvalRuleContent = Lens.lens (\ApprovalRuleEventMetadata' {approvalRuleContent} -> approvalRuleContent) (\s@ApprovalRuleEventMetadata' {} a -> s {approvalRuleContent = a} :: ApprovalRuleEventMetadata)
+
+-- | The system-generated ID of the approval rule.
+approvalRuleEventMetadata_approvalRuleId :: Lens.Lens' ApprovalRuleEventMetadata (Prelude.Maybe Prelude.Text)
+approvalRuleEventMetadata_approvalRuleId = Lens.lens (\ApprovalRuleEventMetadata' {approvalRuleId} -> approvalRuleId) (\s@ApprovalRuleEventMetadata' {} a -> s {approvalRuleId = a} :: ApprovalRuleEventMetadata)
+
+-- | The name of the approval rule.
+approvalRuleEventMetadata_approvalRuleName :: Lens.Lens' ApprovalRuleEventMetadata (Prelude.Maybe Prelude.Text)
+approvalRuleEventMetadata_approvalRuleName = Lens.lens (\ApprovalRuleEventMetadata' {approvalRuleName} -> approvalRuleName) (\s@ApprovalRuleEventMetadata' {} a -> s {approvalRuleName = a} :: ApprovalRuleEventMetadata)
+
+instance Data.FromJSON ApprovalRuleEventMetadata where
+  parseJSON =
+    Data.withObject
+      "ApprovalRuleEventMetadata"
+      ( \x ->
+          ApprovalRuleEventMetadata'
+            Prelude.<$> (x Data..:? "approvalRuleContent")
+            Prelude.<*> (x Data..:? "approvalRuleId")
+            Prelude.<*> (x Data..:? "approvalRuleName")
+      )
+
+instance Prelude.Hashable ApprovalRuleEventMetadata where
+  hashWithSalt _salt ApprovalRuleEventMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` approvalRuleContent
+      `Prelude.hashWithSalt` approvalRuleId
+      `Prelude.hashWithSalt` approvalRuleName
+
+instance Prelude.NFData ApprovalRuleEventMetadata where
+  rnf ApprovalRuleEventMetadata' {..} =
+    Prelude.rnf approvalRuleContent
+      `Prelude.seq` Prelude.rnf approvalRuleId
+      `Prelude.seq` Prelude.rnf approvalRuleName
diff --git a/gen/Amazonka/CodeCommit/Types/ApprovalRuleOverriddenEventMetadata.hs b/gen/Amazonka/CodeCommit/Types/ApprovalRuleOverriddenEventMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ApprovalRuleOverriddenEventMetadata.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ApprovalRuleOverriddenEventMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ApprovalRuleOverriddenEventMetadata where
+
+import Amazonka.CodeCommit.Types.OverrideStatus
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about an override event for approval rules for a
+-- pull request.
+--
+-- /See:/ 'newApprovalRuleOverriddenEventMetadata' smart constructor.
+data ApprovalRuleOverriddenEventMetadata = ApprovalRuleOverriddenEventMetadata'
+  { -- | The status of the override event.
+    overrideStatus :: Prelude.Maybe OverrideStatus,
+    -- | The revision ID of the pull request when the override event occurred.
+    revisionId :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApprovalRuleOverriddenEventMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'overrideStatus', 'approvalRuleOverriddenEventMetadata_overrideStatus' - The status of the override event.
+--
+-- 'revisionId', 'approvalRuleOverriddenEventMetadata_revisionId' - The revision ID of the pull request when the override event occurred.
+newApprovalRuleOverriddenEventMetadata ::
+  ApprovalRuleOverriddenEventMetadata
+newApprovalRuleOverriddenEventMetadata =
+  ApprovalRuleOverriddenEventMetadata'
+    { overrideStatus =
+        Prelude.Nothing,
+      revisionId = Prelude.Nothing
+    }
+
+-- | The status of the override event.
+approvalRuleOverriddenEventMetadata_overrideStatus :: Lens.Lens' ApprovalRuleOverriddenEventMetadata (Prelude.Maybe OverrideStatus)
+approvalRuleOverriddenEventMetadata_overrideStatus = Lens.lens (\ApprovalRuleOverriddenEventMetadata' {overrideStatus} -> overrideStatus) (\s@ApprovalRuleOverriddenEventMetadata' {} a -> s {overrideStatus = a} :: ApprovalRuleOverriddenEventMetadata)
+
+-- | The revision ID of the pull request when the override event occurred.
+approvalRuleOverriddenEventMetadata_revisionId :: Lens.Lens' ApprovalRuleOverriddenEventMetadata (Prelude.Maybe Prelude.Text)
+approvalRuleOverriddenEventMetadata_revisionId = Lens.lens (\ApprovalRuleOverriddenEventMetadata' {revisionId} -> revisionId) (\s@ApprovalRuleOverriddenEventMetadata' {} a -> s {revisionId = a} :: ApprovalRuleOverriddenEventMetadata)
+
+instance
+  Data.FromJSON
+    ApprovalRuleOverriddenEventMetadata
+  where
+  parseJSON =
+    Data.withObject
+      "ApprovalRuleOverriddenEventMetadata"
+      ( \x ->
+          ApprovalRuleOverriddenEventMetadata'
+            Prelude.<$> (x Data..:? "overrideStatus")
+            Prelude.<*> (x Data..:? "revisionId")
+      )
+
+instance
+  Prelude.Hashable
+    ApprovalRuleOverriddenEventMetadata
+  where
+  hashWithSalt
+    _salt
+    ApprovalRuleOverriddenEventMetadata' {..} =
+      _salt
+        `Prelude.hashWithSalt` overrideStatus
+        `Prelude.hashWithSalt` revisionId
+
+instance
+  Prelude.NFData
+    ApprovalRuleOverriddenEventMetadata
+  where
+  rnf ApprovalRuleOverriddenEventMetadata' {..} =
+    Prelude.rnf overrideStatus
+      `Prelude.seq` Prelude.rnf revisionId
diff --git a/gen/Amazonka/CodeCommit/Types/ApprovalRuleTemplate.hs b/gen/Amazonka/CodeCommit/Types/ApprovalRuleTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ApprovalRuleTemplate.hs
@@ -0,0 +1,166 @@
+{-# 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.CodeCommit.Types.ApprovalRuleTemplate
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ApprovalRuleTemplate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about an approval rule template.
+--
+-- /See:/ 'newApprovalRuleTemplate' smart constructor.
+data ApprovalRuleTemplate = ApprovalRuleTemplate'
+  { -- | The content of the approval rule template.
+    approvalRuleTemplateContent :: Prelude.Maybe Prelude.Text,
+    -- | The description of the approval rule template.
+    approvalRuleTemplateDescription :: Prelude.Maybe Prelude.Text,
+    -- | The system-generated ID of the approval rule template.
+    approvalRuleTemplateId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the approval rule template.
+    approvalRuleTemplateName :: Prelude.Maybe Prelude.Text,
+    -- | The date the approval rule template was created, in timestamp format.
+    creationDate :: Prelude.Maybe Data.POSIX,
+    -- | The date the approval rule template was most recently changed, in
+    -- timestamp format.
+    lastModifiedDate :: Prelude.Maybe Data.POSIX,
+    -- | The Amazon Resource Name (ARN) of the user who made the most recent
+    -- changes to the approval rule template.
+    lastModifiedUser :: Prelude.Maybe Prelude.Text,
+    -- | The SHA-256 hash signature for the content of the approval rule
+    -- template.
+    ruleContentSha256 :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApprovalRuleTemplate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleTemplateContent', 'approvalRuleTemplate_approvalRuleTemplateContent' - The content of the approval rule template.
+--
+-- 'approvalRuleTemplateDescription', 'approvalRuleTemplate_approvalRuleTemplateDescription' - The description of the approval rule template.
+--
+-- 'approvalRuleTemplateId', 'approvalRuleTemplate_approvalRuleTemplateId' - The system-generated ID of the approval rule template.
+--
+-- 'approvalRuleTemplateName', 'approvalRuleTemplate_approvalRuleTemplateName' - The name of the approval rule template.
+--
+-- 'creationDate', 'approvalRuleTemplate_creationDate' - The date the approval rule template was created, in timestamp format.
+--
+-- 'lastModifiedDate', 'approvalRuleTemplate_lastModifiedDate' - The date the approval rule template was most recently changed, in
+-- timestamp format.
+--
+-- 'lastModifiedUser', 'approvalRuleTemplate_lastModifiedUser' - The Amazon Resource Name (ARN) of the user who made the most recent
+-- changes to the approval rule template.
+--
+-- 'ruleContentSha256', 'approvalRuleTemplate_ruleContentSha256' - The SHA-256 hash signature for the content of the approval rule
+-- template.
+newApprovalRuleTemplate ::
+  ApprovalRuleTemplate
+newApprovalRuleTemplate =
+  ApprovalRuleTemplate'
+    { approvalRuleTemplateContent =
+        Prelude.Nothing,
+      approvalRuleTemplateDescription = Prelude.Nothing,
+      approvalRuleTemplateId = Prelude.Nothing,
+      approvalRuleTemplateName = Prelude.Nothing,
+      creationDate = Prelude.Nothing,
+      lastModifiedDate = Prelude.Nothing,
+      lastModifiedUser = Prelude.Nothing,
+      ruleContentSha256 = Prelude.Nothing
+    }
+
+-- | The content of the approval rule template.
+approvalRuleTemplate_approvalRuleTemplateContent :: Lens.Lens' ApprovalRuleTemplate (Prelude.Maybe Prelude.Text)
+approvalRuleTemplate_approvalRuleTemplateContent = Lens.lens (\ApprovalRuleTemplate' {approvalRuleTemplateContent} -> approvalRuleTemplateContent) (\s@ApprovalRuleTemplate' {} a -> s {approvalRuleTemplateContent = a} :: ApprovalRuleTemplate)
+
+-- | The description of the approval rule template.
+approvalRuleTemplate_approvalRuleTemplateDescription :: Lens.Lens' ApprovalRuleTemplate (Prelude.Maybe Prelude.Text)
+approvalRuleTemplate_approvalRuleTemplateDescription = Lens.lens (\ApprovalRuleTemplate' {approvalRuleTemplateDescription} -> approvalRuleTemplateDescription) (\s@ApprovalRuleTemplate' {} a -> s {approvalRuleTemplateDescription = a} :: ApprovalRuleTemplate)
+
+-- | The system-generated ID of the approval rule template.
+approvalRuleTemplate_approvalRuleTemplateId :: Lens.Lens' ApprovalRuleTemplate (Prelude.Maybe Prelude.Text)
+approvalRuleTemplate_approvalRuleTemplateId = Lens.lens (\ApprovalRuleTemplate' {approvalRuleTemplateId} -> approvalRuleTemplateId) (\s@ApprovalRuleTemplate' {} a -> s {approvalRuleTemplateId = a} :: ApprovalRuleTemplate)
+
+-- | The name of the approval rule template.
+approvalRuleTemplate_approvalRuleTemplateName :: Lens.Lens' ApprovalRuleTemplate (Prelude.Maybe Prelude.Text)
+approvalRuleTemplate_approvalRuleTemplateName = Lens.lens (\ApprovalRuleTemplate' {approvalRuleTemplateName} -> approvalRuleTemplateName) (\s@ApprovalRuleTemplate' {} a -> s {approvalRuleTemplateName = a} :: ApprovalRuleTemplate)
+
+-- | The date the approval rule template was created, in timestamp format.
+approvalRuleTemplate_creationDate :: Lens.Lens' ApprovalRuleTemplate (Prelude.Maybe Prelude.UTCTime)
+approvalRuleTemplate_creationDate = Lens.lens (\ApprovalRuleTemplate' {creationDate} -> creationDate) (\s@ApprovalRuleTemplate' {} a -> s {creationDate = a} :: ApprovalRuleTemplate) Prelude.. Lens.mapping Data._Time
+
+-- | The date the approval rule template was most recently changed, in
+-- timestamp format.
+approvalRuleTemplate_lastModifiedDate :: Lens.Lens' ApprovalRuleTemplate (Prelude.Maybe Prelude.UTCTime)
+approvalRuleTemplate_lastModifiedDate = Lens.lens (\ApprovalRuleTemplate' {lastModifiedDate} -> lastModifiedDate) (\s@ApprovalRuleTemplate' {} a -> s {lastModifiedDate = a} :: ApprovalRuleTemplate) Prelude.. Lens.mapping Data._Time
+
+-- | The Amazon Resource Name (ARN) of the user who made the most recent
+-- changes to the approval rule template.
+approvalRuleTemplate_lastModifiedUser :: Lens.Lens' ApprovalRuleTemplate (Prelude.Maybe Prelude.Text)
+approvalRuleTemplate_lastModifiedUser = Lens.lens (\ApprovalRuleTemplate' {lastModifiedUser} -> lastModifiedUser) (\s@ApprovalRuleTemplate' {} a -> s {lastModifiedUser = a} :: ApprovalRuleTemplate)
+
+-- | The SHA-256 hash signature for the content of the approval rule
+-- template.
+approvalRuleTemplate_ruleContentSha256 :: Lens.Lens' ApprovalRuleTemplate (Prelude.Maybe Prelude.Text)
+approvalRuleTemplate_ruleContentSha256 = Lens.lens (\ApprovalRuleTemplate' {ruleContentSha256} -> ruleContentSha256) (\s@ApprovalRuleTemplate' {} a -> s {ruleContentSha256 = a} :: ApprovalRuleTemplate)
+
+instance Data.FromJSON ApprovalRuleTemplate where
+  parseJSON =
+    Data.withObject
+      "ApprovalRuleTemplate"
+      ( \x ->
+          ApprovalRuleTemplate'
+            Prelude.<$> (x Data..:? "approvalRuleTemplateContent")
+            Prelude.<*> (x Data..:? "approvalRuleTemplateDescription")
+            Prelude.<*> (x Data..:? "approvalRuleTemplateId")
+            Prelude.<*> (x Data..:? "approvalRuleTemplateName")
+            Prelude.<*> (x Data..:? "creationDate")
+            Prelude.<*> (x Data..:? "lastModifiedDate")
+            Prelude.<*> (x Data..:? "lastModifiedUser")
+            Prelude.<*> (x Data..:? "ruleContentSha256")
+      )
+
+instance Prelude.Hashable ApprovalRuleTemplate where
+  hashWithSalt _salt ApprovalRuleTemplate' {..} =
+    _salt
+      `Prelude.hashWithSalt` approvalRuleTemplateContent
+      `Prelude.hashWithSalt` approvalRuleTemplateDescription
+      `Prelude.hashWithSalt` approvalRuleTemplateId
+      `Prelude.hashWithSalt` approvalRuleTemplateName
+      `Prelude.hashWithSalt` creationDate
+      `Prelude.hashWithSalt` lastModifiedDate
+      `Prelude.hashWithSalt` lastModifiedUser
+      `Prelude.hashWithSalt` ruleContentSha256
+
+instance Prelude.NFData ApprovalRuleTemplate where
+  rnf ApprovalRuleTemplate' {..} =
+    Prelude.rnf approvalRuleTemplateContent
+      `Prelude.seq` Prelude.rnf approvalRuleTemplateDescription
+      `Prelude.seq` Prelude.rnf approvalRuleTemplateId
+      `Prelude.seq` Prelude.rnf approvalRuleTemplateName
+      `Prelude.seq` Prelude.rnf creationDate
+      `Prelude.seq` Prelude.rnf lastModifiedDate
+      `Prelude.seq` Prelude.rnf lastModifiedUser
+      `Prelude.seq` Prelude.rnf ruleContentSha256
diff --git a/gen/Amazonka/CodeCommit/Types/ApprovalState.hs b/gen/Amazonka/CodeCommit/Types/ApprovalState.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ApprovalState.hs
@@ -0,0 +1,71 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ApprovalState
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ApprovalState
+  ( ApprovalState
+      ( ..,
+        ApprovalState_APPROVE,
+        ApprovalState_REVOKE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ApprovalState = ApprovalState'
+  { fromApprovalState ::
+      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 ApprovalState_APPROVE :: ApprovalState
+pattern ApprovalState_APPROVE = ApprovalState' "APPROVE"
+
+pattern ApprovalState_REVOKE :: ApprovalState
+pattern ApprovalState_REVOKE = ApprovalState' "REVOKE"
+
+{-# COMPLETE
+  ApprovalState_APPROVE,
+  ApprovalState_REVOKE,
+  ApprovalState'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/ApprovalStateChangedEventMetadata.hs b/gen/Amazonka/CodeCommit/Types/ApprovalStateChangedEventMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ApprovalStateChangedEventMetadata.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ApprovalStateChangedEventMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ApprovalStateChangedEventMetadata where
+
+import Amazonka.CodeCommit.Types.ApprovalState
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a change in the approval state for a pull
+-- request.
+--
+-- /See:/ 'newApprovalStateChangedEventMetadata' smart constructor.
+data ApprovalStateChangedEventMetadata = ApprovalStateChangedEventMetadata'
+  { -- | The approval status for the pull request.
+    approvalStatus :: Prelude.Maybe ApprovalState,
+    -- | The revision ID of the pull request when the approval state changed.
+    revisionId :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ApprovalStateChangedEventMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalStatus', 'approvalStateChangedEventMetadata_approvalStatus' - The approval status for the pull request.
+--
+-- 'revisionId', 'approvalStateChangedEventMetadata_revisionId' - The revision ID of the pull request when the approval state changed.
+newApprovalStateChangedEventMetadata ::
+  ApprovalStateChangedEventMetadata
+newApprovalStateChangedEventMetadata =
+  ApprovalStateChangedEventMetadata'
+    { approvalStatus =
+        Prelude.Nothing,
+      revisionId = Prelude.Nothing
+    }
+
+-- | The approval status for the pull request.
+approvalStateChangedEventMetadata_approvalStatus :: Lens.Lens' ApprovalStateChangedEventMetadata (Prelude.Maybe ApprovalState)
+approvalStateChangedEventMetadata_approvalStatus = Lens.lens (\ApprovalStateChangedEventMetadata' {approvalStatus} -> approvalStatus) (\s@ApprovalStateChangedEventMetadata' {} a -> s {approvalStatus = a} :: ApprovalStateChangedEventMetadata)
+
+-- | The revision ID of the pull request when the approval state changed.
+approvalStateChangedEventMetadata_revisionId :: Lens.Lens' ApprovalStateChangedEventMetadata (Prelude.Maybe Prelude.Text)
+approvalStateChangedEventMetadata_revisionId = Lens.lens (\ApprovalStateChangedEventMetadata' {revisionId} -> revisionId) (\s@ApprovalStateChangedEventMetadata' {} a -> s {revisionId = a} :: ApprovalStateChangedEventMetadata)
+
+instance
+  Data.FromJSON
+    ApprovalStateChangedEventMetadata
+  where
+  parseJSON =
+    Data.withObject
+      "ApprovalStateChangedEventMetadata"
+      ( \x ->
+          ApprovalStateChangedEventMetadata'
+            Prelude.<$> (x Data..:? "approvalStatus")
+            Prelude.<*> (x Data..:? "revisionId")
+      )
+
+instance
+  Prelude.Hashable
+    ApprovalStateChangedEventMetadata
+  where
+  hashWithSalt
+    _salt
+    ApprovalStateChangedEventMetadata' {..} =
+      _salt
+        `Prelude.hashWithSalt` approvalStatus
+        `Prelude.hashWithSalt` revisionId
+
+instance
+  Prelude.NFData
+    ApprovalStateChangedEventMetadata
+  where
+  rnf ApprovalStateChangedEventMetadata' {..} =
+    Prelude.rnf approvalStatus
+      `Prelude.seq` Prelude.rnf revisionId
diff --git a/gen/Amazonka/CodeCommit/Types/BatchAssociateApprovalRuleTemplateWithRepositoriesError.hs b/gen/Amazonka/CodeCommit/Types/BatchAssociateApprovalRuleTemplateWithRepositoriesError.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/BatchAssociateApprovalRuleTemplateWithRepositoriesError.hs
@@ -0,0 +1,118 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.BatchAssociateApprovalRuleTemplateWithRepositoriesError
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.BatchAssociateApprovalRuleTemplateWithRepositoriesError where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about errors in a
+-- BatchAssociateApprovalRuleTemplateWithRepositories operation.
+--
+-- /See:/ 'newBatchAssociateApprovalRuleTemplateWithRepositoriesError' smart constructor.
+data BatchAssociateApprovalRuleTemplateWithRepositoriesError = BatchAssociateApprovalRuleTemplateWithRepositoriesError'
+  { -- | An error code that specifies whether the repository name was not valid
+    -- or not found.
+    errorCode :: Prelude.Maybe Prelude.Text,
+    -- | An error message that provides details about why the repository name was
+    -- not found or not valid.
+    errorMessage :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where the association was not made.
+    repositoryName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchAssociateApprovalRuleTemplateWithRepositoriesError' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'errorCode', 'batchAssociateApprovalRuleTemplateWithRepositoriesError_errorCode' - An error code that specifies whether the repository name was not valid
+-- or not found.
+--
+-- 'errorMessage', 'batchAssociateApprovalRuleTemplateWithRepositoriesError_errorMessage' - An error message that provides details about why the repository name was
+-- not found or not valid.
+--
+-- 'repositoryName', 'batchAssociateApprovalRuleTemplateWithRepositoriesError_repositoryName' - The name of the repository where the association was not made.
+newBatchAssociateApprovalRuleTemplateWithRepositoriesError ::
+  BatchAssociateApprovalRuleTemplateWithRepositoriesError
+newBatchAssociateApprovalRuleTemplateWithRepositoriesError =
+  BatchAssociateApprovalRuleTemplateWithRepositoriesError'
+    { errorCode =
+        Prelude.Nothing,
+      errorMessage =
+        Prelude.Nothing,
+      repositoryName =
+        Prelude.Nothing
+    }
+
+-- | An error code that specifies whether the repository name was not valid
+-- or not found.
+batchAssociateApprovalRuleTemplateWithRepositoriesError_errorCode :: Lens.Lens' BatchAssociateApprovalRuleTemplateWithRepositoriesError (Prelude.Maybe Prelude.Text)
+batchAssociateApprovalRuleTemplateWithRepositoriesError_errorCode = Lens.lens (\BatchAssociateApprovalRuleTemplateWithRepositoriesError' {errorCode} -> errorCode) (\s@BatchAssociateApprovalRuleTemplateWithRepositoriesError' {} a -> s {errorCode = a} :: BatchAssociateApprovalRuleTemplateWithRepositoriesError)
+
+-- | An error message that provides details about why the repository name was
+-- not found or not valid.
+batchAssociateApprovalRuleTemplateWithRepositoriesError_errorMessage :: Lens.Lens' BatchAssociateApprovalRuleTemplateWithRepositoriesError (Prelude.Maybe Prelude.Text)
+batchAssociateApprovalRuleTemplateWithRepositoriesError_errorMessage = Lens.lens (\BatchAssociateApprovalRuleTemplateWithRepositoriesError' {errorMessage} -> errorMessage) (\s@BatchAssociateApprovalRuleTemplateWithRepositoriesError' {} a -> s {errorMessage = a} :: BatchAssociateApprovalRuleTemplateWithRepositoriesError)
+
+-- | The name of the repository where the association was not made.
+batchAssociateApprovalRuleTemplateWithRepositoriesError_repositoryName :: Lens.Lens' BatchAssociateApprovalRuleTemplateWithRepositoriesError (Prelude.Maybe Prelude.Text)
+batchAssociateApprovalRuleTemplateWithRepositoriesError_repositoryName = Lens.lens (\BatchAssociateApprovalRuleTemplateWithRepositoriesError' {repositoryName} -> repositoryName) (\s@BatchAssociateApprovalRuleTemplateWithRepositoriesError' {} a -> s {repositoryName = a} :: BatchAssociateApprovalRuleTemplateWithRepositoriesError)
+
+instance
+  Data.FromJSON
+    BatchAssociateApprovalRuleTemplateWithRepositoriesError
+  where
+  parseJSON =
+    Data.withObject
+      "BatchAssociateApprovalRuleTemplateWithRepositoriesError"
+      ( \x ->
+          BatchAssociateApprovalRuleTemplateWithRepositoriesError'
+            Prelude.<$> (x Data..:? "errorCode")
+            Prelude.<*> (x Data..:? "errorMessage")
+            Prelude.<*> (x Data..:? "repositoryName")
+      )
+
+instance
+  Prelude.Hashable
+    BatchAssociateApprovalRuleTemplateWithRepositoriesError
+  where
+  hashWithSalt
+    _salt
+    BatchAssociateApprovalRuleTemplateWithRepositoriesError' {..} =
+      _salt
+        `Prelude.hashWithSalt` errorCode
+        `Prelude.hashWithSalt` errorMessage
+        `Prelude.hashWithSalt` repositoryName
+
+instance
+  Prelude.NFData
+    BatchAssociateApprovalRuleTemplateWithRepositoriesError
+  where
+  rnf
+    BatchAssociateApprovalRuleTemplateWithRepositoriesError' {..} =
+      Prelude.rnf errorCode
+        `Prelude.seq` Prelude.rnf errorMessage
+        `Prelude.seq` Prelude.rnf repositoryName
diff --git a/gen/Amazonka/CodeCommit/Types/BatchDescribeMergeConflictsError.hs b/gen/Amazonka/CodeCommit/Types/BatchDescribeMergeConflictsError.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/BatchDescribeMergeConflictsError.hs
@@ -0,0 +1,118 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.BatchDescribeMergeConflictsError
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.BatchDescribeMergeConflictsError where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about errors in a BatchDescribeMergeConflicts
+-- operation.
+--
+-- /See:/ 'newBatchDescribeMergeConflictsError' smart constructor.
+data BatchDescribeMergeConflictsError = BatchDescribeMergeConflictsError'
+  { -- | The path to the file.
+    filePath :: Prelude.Text,
+    -- | The name of the exception.
+    exceptionName :: Prelude.Text,
+    -- | The message provided by the exception.
+    message :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchDescribeMergeConflictsError' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'filePath', 'batchDescribeMergeConflictsError_filePath' - The path to the file.
+--
+-- 'exceptionName', 'batchDescribeMergeConflictsError_exceptionName' - The name of the exception.
+--
+-- 'message', 'batchDescribeMergeConflictsError_message' - The message provided by the exception.
+newBatchDescribeMergeConflictsError ::
+  -- | 'filePath'
+  Prelude.Text ->
+  -- | 'exceptionName'
+  Prelude.Text ->
+  -- | 'message'
+  Prelude.Text ->
+  BatchDescribeMergeConflictsError
+newBatchDescribeMergeConflictsError
+  pFilePath_
+  pExceptionName_
+  pMessage_ =
+    BatchDescribeMergeConflictsError'
+      { filePath =
+          pFilePath_,
+        exceptionName = pExceptionName_,
+        message = pMessage_
+      }
+
+-- | The path to the file.
+batchDescribeMergeConflictsError_filePath :: Lens.Lens' BatchDescribeMergeConflictsError Prelude.Text
+batchDescribeMergeConflictsError_filePath = Lens.lens (\BatchDescribeMergeConflictsError' {filePath} -> filePath) (\s@BatchDescribeMergeConflictsError' {} a -> s {filePath = a} :: BatchDescribeMergeConflictsError)
+
+-- | The name of the exception.
+batchDescribeMergeConflictsError_exceptionName :: Lens.Lens' BatchDescribeMergeConflictsError Prelude.Text
+batchDescribeMergeConflictsError_exceptionName = Lens.lens (\BatchDescribeMergeConflictsError' {exceptionName} -> exceptionName) (\s@BatchDescribeMergeConflictsError' {} a -> s {exceptionName = a} :: BatchDescribeMergeConflictsError)
+
+-- | The message provided by the exception.
+batchDescribeMergeConflictsError_message :: Lens.Lens' BatchDescribeMergeConflictsError Prelude.Text
+batchDescribeMergeConflictsError_message = Lens.lens (\BatchDescribeMergeConflictsError' {message} -> message) (\s@BatchDescribeMergeConflictsError' {} a -> s {message = a} :: BatchDescribeMergeConflictsError)
+
+instance
+  Data.FromJSON
+    BatchDescribeMergeConflictsError
+  where
+  parseJSON =
+    Data.withObject
+      "BatchDescribeMergeConflictsError"
+      ( \x ->
+          BatchDescribeMergeConflictsError'
+            Prelude.<$> (x Data..: "filePath")
+            Prelude.<*> (x Data..: "exceptionName")
+            Prelude.<*> (x Data..: "message")
+      )
+
+instance
+  Prelude.Hashable
+    BatchDescribeMergeConflictsError
+  where
+  hashWithSalt
+    _salt
+    BatchDescribeMergeConflictsError' {..} =
+      _salt
+        `Prelude.hashWithSalt` filePath
+        `Prelude.hashWithSalt` exceptionName
+        `Prelude.hashWithSalt` message
+
+instance
+  Prelude.NFData
+    BatchDescribeMergeConflictsError
+  where
+  rnf BatchDescribeMergeConflictsError' {..} =
+    Prelude.rnf filePath
+      `Prelude.seq` Prelude.rnf exceptionName
+      `Prelude.seq` Prelude.rnf message
diff --git a/gen/Amazonka/CodeCommit/Types/BatchDisassociateApprovalRuleTemplateFromRepositoriesError.hs b/gen/Amazonka/CodeCommit/Types/BatchDisassociateApprovalRuleTemplateFromRepositoriesError.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/BatchDisassociateApprovalRuleTemplateFromRepositoriesError.hs
@@ -0,0 +1,121 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.BatchDisassociateApprovalRuleTemplateFromRepositoriesError
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.BatchDisassociateApprovalRuleTemplateFromRepositoriesError where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about errors in a
+-- BatchDisassociateApprovalRuleTemplateFromRepositories operation.
+--
+-- /See:/ 'newBatchDisassociateApprovalRuleTemplateFromRepositoriesError' smart constructor.
+data BatchDisassociateApprovalRuleTemplateFromRepositoriesError = BatchDisassociateApprovalRuleTemplateFromRepositoriesError'
+  { -- | An error code that specifies whether the repository name was not valid
+    -- or not found.
+    errorCode :: Prelude.Maybe Prelude.Text,
+    -- | An error message that provides details about why the repository name was
+    -- either not found or not valid.
+    errorMessage :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where the association with the template was
+    -- not able to be removed.
+    repositoryName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchDisassociateApprovalRuleTemplateFromRepositoriesError' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'errorCode', 'batchDisassociateApprovalRuleTemplateFromRepositoriesError_errorCode' - An error code that specifies whether the repository name was not valid
+-- or not found.
+--
+-- 'errorMessage', 'batchDisassociateApprovalRuleTemplateFromRepositoriesError_errorMessage' - An error message that provides details about why the repository name was
+-- either not found or not valid.
+--
+-- 'repositoryName', 'batchDisassociateApprovalRuleTemplateFromRepositoriesError_repositoryName' - The name of the repository where the association with the template was
+-- not able to be removed.
+newBatchDisassociateApprovalRuleTemplateFromRepositoriesError ::
+  BatchDisassociateApprovalRuleTemplateFromRepositoriesError
+newBatchDisassociateApprovalRuleTemplateFromRepositoriesError =
+  BatchDisassociateApprovalRuleTemplateFromRepositoriesError'
+    { errorCode =
+        Prelude.Nothing,
+      errorMessage =
+        Prelude.Nothing,
+      repositoryName =
+        Prelude.Nothing
+    }
+
+-- | An error code that specifies whether the repository name was not valid
+-- or not found.
+batchDisassociateApprovalRuleTemplateFromRepositoriesError_errorCode :: Lens.Lens' BatchDisassociateApprovalRuleTemplateFromRepositoriesError (Prelude.Maybe Prelude.Text)
+batchDisassociateApprovalRuleTemplateFromRepositoriesError_errorCode = Lens.lens (\BatchDisassociateApprovalRuleTemplateFromRepositoriesError' {errorCode} -> errorCode) (\s@BatchDisassociateApprovalRuleTemplateFromRepositoriesError' {} a -> s {errorCode = a} :: BatchDisassociateApprovalRuleTemplateFromRepositoriesError)
+
+-- | An error message that provides details about why the repository name was
+-- either not found or not valid.
+batchDisassociateApprovalRuleTemplateFromRepositoriesError_errorMessage :: Lens.Lens' BatchDisassociateApprovalRuleTemplateFromRepositoriesError (Prelude.Maybe Prelude.Text)
+batchDisassociateApprovalRuleTemplateFromRepositoriesError_errorMessage = Lens.lens (\BatchDisassociateApprovalRuleTemplateFromRepositoriesError' {errorMessage} -> errorMessage) (\s@BatchDisassociateApprovalRuleTemplateFromRepositoriesError' {} a -> s {errorMessage = a} :: BatchDisassociateApprovalRuleTemplateFromRepositoriesError)
+
+-- | The name of the repository where the association with the template was
+-- not able to be removed.
+batchDisassociateApprovalRuleTemplateFromRepositoriesError_repositoryName :: Lens.Lens' BatchDisassociateApprovalRuleTemplateFromRepositoriesError (Prelude.Maybe Prelude.Text)
+batchDisassociateApprovalRuleTemplateFromRepositoriesError_repositoryName = Lens.lens (\BatchDisassociateApprovalRuleTemplateFromRepositoriesError' {repositoryName} -> repositoryName) (\s@BatchDisassociateApprovalRuleTemplateFromRepositoriesError' {} a -> s {repositoryName = a} :: BatchDisassociateApprovalRuleTemplateFromRepositoriesError)
+
+instance
+  Data.FromJSON
+    BatchDisassociateApprovalRuleTemplateFromRepositoriesError
+  where
+  parseJSON =
+    Data.withObject
+      "BatchDisassociateApprovalRuleTemplateFromRepositoriesError"
+      ( \x ->
+          BatchDisassociateApprovalRuleTemplateFromRepositoriesError'
+            Prelude.<$> (x Data..:? "errorCode")
+            Prelude.<*> (x Data..:? "errorMessage")
+            Prelude.<*> (x Data..:? "repositoryName")
+      )
+
+instance
+  Prelude.Hashable
+    BatchDisassociateApprovalRuleTemplateFromRepositoriesError
+  where
+  hashWithSalt
+    _salt
+    BatchDisassociateApprovalRuleTemplateFromRepositoriesError' {..} =
+      _salt
+        `Prelude.hashWithSalt` errorCode
+        `Prelude.hashWithSalt` errorMessage
+        `Prelude.hashWithSalt` repositoryName
+
+instance
+  Prelude.NFData
+    BatchDisassociateApprovalRuleTemplateFromRepositoriesError
+  where
+  rnf
+    BatchDisassociateApprovalRuleTemplateFromRepositoriesError' {..} =
+      Prelude.rnf errorCode
+        `Prelude.seq` Prelude.rnf errorMessage
+        `Prelude.seq` Prelude.rnf repositoryName
diff --git a/gen/Amazonka/CodeCommit/Types/BatchGetCommitsError.hs b/gen/Amazonka/CodeCommit/Types/BatchGetCommitsError.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/BatchGetCommitsError.hs
@@ -0,0 +1,102 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.BatchGetCommitsError
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.BatchGetCommitsError where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about errors in a BatchGetCommits operation.
+--
+-- /See:/ 'newBatchGetCommitsError' smart constructor.
+data BatchGetCommitsError = BatchGetCommitsError'
+  { -- | A commit ID that either could not be found or was not in a valid format.
+    commitId :: Prelude.Maybe Prelude.Text,
+    -- | An error code that specifies whether the commit ID was not valid or not
+    -- found.
+    errorCode :: Prelude.Maybe Prelude.Text,
+    -- | An error message that provides detail about why the commit ID either was
+    -- not found or was not valid.
+    errorMessage :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchGetCommitsError' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commitId', 'batchGetCommitsError_commitId' - A commit ID that either could not be found or was not in a valid format.
+--
+-- 'errorCode', 'batchGetCommitsError_errorCode' - An error code that specifies whether the commit ID was not valid or not
+-- found.
+--
+-- 'errorMessage', 'batchGetCommitsError_errorMessage' - An error message that provides detail about why the commit ID either was
+-- not found or was not valid.
+newBatchGetCommitsError ::
+  BatchGetCommitsError
+newBatchGetCommitsError =
+  BatchGetCommitsError'
+    { commitId = Prelude.Nothing,
+      errorCode = Prelude.Nothing,
+      errorMessage = Prelude.Nothing
+    }
+
+-- | A commit ID that either could not be found or was not in a valid format.
+batchGetCommitsError_commitId :: Lens.Lens' BatchGetCommitsError (Prelude.Maybe Prelude.Text)
+batchGetCommitsError_commitId = Lens.lens (\BatchGetCommitsError' {commitId} -> commitId) (\s@BatchGetCommitsError' {} a -> s {commitId = a} :: BatchGetCommitsError)
+
+-- | An error code that specifies whether the commit ID was not valid or not
+-- found.
+batchGetCommitsError_errorCode :: Lens.Lens' BatchGetCommitsError (Prelude.Maybe Prelude.Text)
+batchGetCommitsError_errorCode = Lens.lens (\BatchGetCommitsError' {errorCode} -> errorCode) (\s@BatchGetCommitsError' {} a -> s {errorCode = a} :: BatchGetCommitsError)
+
+-- | An error message that provides detail about why the commit ID either was
+-- not found or was not valid.
+batchGetCommitsError_errorMessage :: Lens.Lens' BatchGetCommitsError (Prelude.Maybe Prelude.Text)
+batchGetCommitsError_errorMessage = Lens.lens (\BatchGetCommitsError' {errorMessage} -> errorMessage) (\s@BatchGetCommitsError' {} a -> s {errorMessage = a} :: BatchGetCommitsError)
+
+instance Data.FromJSON BatchGetCommitsError where
+  parseJSON =
+    Data.withObject
+      "BatchGetCommitsError"
+      ( \x ->
+          BatchGetCommitsError'
+            Prelude.<$> (x Data..:? "commitId")
+            Prelude.<*> (x Data..:? "errorCode")
+            Prelude.<*> (x Data..:? "errorMessage")
+      )
+
+instance Prelude.Hashable BatchGetCommitsError where
+  hashWithSalt _salt BatchGetCommitsError' {..} =
+    _salt
+      `Prelude.hashWithSalt` commitId
+      `Prelude.hashWithSalt` errorCode
+      `Prelude.hashWithSalt` errorMessage
+
+instance Prelude.NFData BatchGetCommitsError where
+  rnf BatchGetCommitsError' {..} =
+    Prelude.rnf commitId
+      `Prelude.seq` Prelude.rnf errorCode
+      `Prelude.seq` Prelude.rnf errorMessage
diff --git a/gen/Amazonka/CodeCommit/Types/BlobMetadata.hs b/gen/Amazonka/CodeCommit/Types/BlobMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/BlobMetadata.hs
@@ -0,0 +1,123 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.BlobMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.BlobMetadata where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a specific Git blob object.
+--
+-- /See:/ 'newBlobMetadata' smart constructor.
+data BlobMetadata = BlobMetadata'
+  { -- | The full ID of the blob.
+    blobId :: Prelude.Maybe Prelude.Text,
+    -- | The file mode permissions of the blob. File mode permission codes
+    -- include:
+    --
+    -- -   @100644@ indicates read\/write
+    --
+    -- -   @100755@ indicates read\/write\/execute
+    --
+    -- -   @160000@ indicates a submodule
+    --
+    -- -   @120000@ indicates a symlink
+    mode :: Prelude.Maybe Prelude.Text,
+    -- | The path to the blob and associated file name, if any.
+    path :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BlobMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'blobId', 'blobMetadata_blobId' - The full ID of the blob.
+--
+-- 'mode', 'blobMetadata_mode' - The file mode permissions of the blob. File mode permission codes
+-- include:
+--
+-- -   @100644@ indicates read\/write
+--
+-- -   @100755@ indicates read\/write\/execute
+--
+-- -   @160000@ indicates a submodule
+--
+-- -   @120000@ indicates a symlink
+--
+-- 'path', 'blobMetadata_path' - The path to the blob and associated file name, if any.
+newBlobMetadata ::
+  BlobMetadata
+newBlobMetadata =
+  BlobMetadata'
+    { blobId = Prelude.Nothing,
+      mode = Prelude.Nothing,
+      path = Prelude.Nothing
+    }
+
+-- | The full ID of the blob.
+blobMetadata_blobId :: Lens.Lens' BlobMetadata (Prelude.Maybe Prelude.Text)
+blobMetadata_blobId = Lens.lens (\BlobMetadata' {blobId} -> blobId) (\s@BlobMetadata' {} a -> s {blobId = a} :: BlobMetadata)
+
+-- | The file mode permissions of the blob. File mode permission codes
+-- include:
+--
+-- -   @100644@ indicates read\/write
+--
+-- -   @100755@ indicates read\/write\/execute
+--
+-- -   @160000@ indicates a submodule
+--
+-- -   @120000@ indicates a symlink
+blobMetadata_mode :: Lens.Lens' BlobMetadata (Prelude.Maybe Prelude.Text)
+blobMetadata_mode = Lens.lens (\BlobMetadata' {mode} -> mode) (\s@BlobMetadata' {} a -> s {mode = a} :: BlobMetadata)
+
+-- | The path to the blob and associated file name, if any.
+blobMetadata_path :: Lens.Lens' BlobMetadata (Prelude.Maybe Prelude.Text)
+blobMetadata_path = Lens.lens (\BlobMetadata' {path} -> path) (\s@BlobMetadata' {} a -> s {path = a} :: BlobMetadata)
+
+instance Data.FromJSON BlobMetadata where
+  parseJSON =
+    Data.withObject
+      "BlobMetadata"
+      ( \x ->
+          BlobMetadata'
+            Prelude.<$> (x Data..:? "blobId")
+            Prelude.<*> (x Data..:? "mode")
+            Prelude.<*> (x Data..:? "path")
+      )
+
+instance Prelude.Hashable BlobMetadata where
+  hashWithSalt _salt BlobMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` blobId
+      `Prelude.hashWithSalt` mode
+      `Prelude.hashWithSalt` path
+
+instance Prelude.NFData BlobMetadata where
+  rnf BlobMetadata' {..} =
+    Prelude.rnf blobId
+      `Prelude.seq` Prelude.rnf mode
+      `Prelude.seq` Prelude.rnf path
diff --git a/gen/Amazonka/CodeCommit/Types/BranchInfo.hs b/gen/Amazonka/CodeCommit/Types/BranchInfo.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/BranchInfo.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.BranchInfo
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.BranchInfo where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a branch.
+--
+-- /See:/ 'newBranchInfo' smart constructor.
+data BranchInfo = BranchInfo'
+  { -- | The name of the branch.
+    branchName :: Prelude.Maybe Prelude.Text,
+    -- | The ID of the last commit made to the branch.
+    commitId :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BranchInfo' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'branchName', 'branchInfo_branchName' - The name of the branch.
+--
+-- 'commitId', 'branchInfo_commitId' - The ID of the last commit made to the branch.
+newBranchInfo ::
+  BranchInfo
+newBranchInfo =
+  BranchInfo'
+    { branchName = Prelude.Nothing,
+      commitId = Prelude.Nothing
+    }
+
+-- | The name of the branch.
+branchInfo_branchName :: Lens.Lens' BranchInfo (Prelude.Maybe Prelude.Text)
+branchInfo_branchName = Lens.lens (\BranchInfo' {branchName} -> branchName) (\s@BranchInfo' {} a -> s {branchName = a} :: BranchInfo)
+
+-- | The ID of the last commit made to the branch.
+branchInfo_commitId :: Lens.Lens' BranchInfo (Prelude.Maybe Prelude.Text)
+branchInfo_commitId = Lens.lens (\BranchInfo' {commitId} -> commitId) (\s@BranchInfo' {} a -> s {commitId = a} :: BranchInfo)
+
+instance Data.FromJSON BranchInfo where
+  parseJSON =
+    Data.withObject
+      "BranchInfo"
+      ( \x ->
+          BranchInfo'
+            Prelude.<$> (x Data..:? "branchName")
+            Prelude.<*> (x Data..:? "commitId")
+      )
+
+instance Prelude.Hashable BranchInfo where
+  hashWithSalt _salt BranchInfo' {..} =
+    _salt
+      `Prelude.hashWithSalt` branchName
+      `Prelude.hashWithSalt` commitId
+
+instance Prelude.NFData BranchInfo where
+  rnf BranchInfo' {..} =
+    Prelude.rnf branchName
+      `Prelude.seq` Prelude.rnf commitId
diff --git a/gen/Amazonka/CodeCommit/Types/ChangeTypeEnum.hs b/gen/Amazonka/CodeCommit/Types/ChangeTypeEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ChangeTypeEnum.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ChangeTypeEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ChangeTypeEnum
+  ( ChangeTypeEnum
+      ( ..,
+        ChangeTypeEnum_A,
+        ChangeTypeEnum_D,
+        ChangeTypeEnum_M
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ChangeTypeEnum = ChangeTypeEnum'
+  { fromChangeTypeEnum ::
+      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 ChangeTypeEnum_A :: ChangeTypeEnum
+pattern ChangeTypeEnum_A = ChangeTypeEnum' "A"
+
+pattern ChangeTypeEnum_D :: ChangeTypeEnum
+pattern ChangeTypeEnum_D = ChangeTypeEnum' "D"
+
+pattern ChangeTypeEnum_M :: ChangeTypeEnum
+pattern ChangeTypeEnum_M = ChangeTypeEnum' "M"
+
+{-# COMPLETE
+  ChangeTypeEnum_A,
+  ChangeTypeEnum_D,
+  ChangeTypeEnum_M,
+  ChangeTypeEnum'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/Comment.hs b/gen/Amazonka/CodeCommit/Types/Comment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/Comment.hs
@@ -0,0 +1,207 @@
+{-# 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.CodeCommit.Types.Comment
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.Comment where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a specific comment.
+--
+-- /See:/ 'newComment' smart constructor.
+data Comment = Comment'
+  { -- | The Amazon Resource Name (ARN) of the person who posted the comment.
+    authorArn :: Prelude.Maybe Prelude.Text,
+    -- | The emoji reactions to a comment, if any, submitted by the user whose
+    -- credentials are associated with the call to the API.
+    callerReactions :: Prelude.Maybe [Prelude.Text],
+    -- | A unique, client-generated idempotency token that, when provided in a
+    -- request, ensures the request cannot be repeated with a changed
+    -- parameter. If a request is received with the same parameters and a token
+    -- is included, the request returns information about the initial request
+    -- that used that token.
+    clientRequestToken :: Prelude.Maybe Prelude.Text,
+    -- | The system-generated comment ID.
+    commentId :: Prelude.Maybe Prelude.Text,
+    -- | The content of the comment.
+    content :: Prelude.Maybe Prelude.Text,
+    -- | The date and time the comment was created, in timestamp format.
+    creationDate :: Prelude.Maybe Data.POSIX,
+    -- | A Boolean value indicating whether the comment has been deleted.
+    deleted :: Prelude.Maybe Prelude.Bool,
+    -- | The ID of the comment for which this comment is a reply, if any.
+    inReplyTo :: Prelude.Maybe Prelude.Text,
+    -- | The date and time the comment was most recently modified, in timestamp
+    -- format.
+    lastModifiedDate :: Prelude.Maybe Data.POSIX,
+    -- | A string to integer map that represents the number of individual users
+    -- who have responded to a comment with the specified reactions.
+    reactionCounts :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Int)
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Comment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authorArn', 'comment_authorArn' - The Amazon Resource Name (ARN) of the person who posted the comment.
+--
+-- 'callerReactions', 'comment_callerReactions' - The emoji reactions to a comment, if any, submitted by the user whose
+-- credentials are associated with the call to the API.
+--
+-- 'clientRequestToken', 'comment_clientRequestToken' - A unique, client-generated idempotency token that, when provided in a
+-- request, ensures the request cannot be repeated with a changed
+-- parameter. If a request is received with the same parameters and a token
+-- is included, the request returns information about the initial request
+-- that used that token.
+--
+-- 'commentId', 'comment_commentId' - The system-generated comment ID.
+--
+-- 'content', 'comment_content' - The content of the comment.
+--
+-- 'creationDate', 'comment_creationDate' - The date and time the comment was created, in timestamp format.
+--
+-- 'deleted', 'comment_deleted' - A Boolean value indicating whether the comment has been deleted.
+--
+-- 'inReplyTo', 'comment_inReplyTo' - The ID of the comment for which this comment is a reply, if any.
+--
+-- 'lastModifiedDate', 'comment_lastModifiedDate' - The date and time the comment was most recently modified, in timestamp
+-- format.
+--
+-- 'reactionCounts', 'comment_reactionCounts' - A string to integer map that represents the number of individual users
+-- who have responded to a comment with the specified reactions.
+newComment ::
+  Comment
+newComment =
+  Comment'
+    { authorArn = Prelude.Nothing,
+      callerReactions = Prelude.Nothing,
+      clientRequestToken = Prelude.Nothing,
+      commentId = Prelude.Nothing,
+      content = Prelude.Nothing,
+      creationDate = Prelude.Nothing,
+      deleted = Prelude.Nothing,
+      inReplyTo = Prelude.Nothing,
+      lastModifiedDate = Prelude.Nothing,
+      reactionCounts = Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) of the person who posted the comment.
+comment_authorArn :: Lens.Lens' Comment (Prelude.Maybe Prelude.Text)
+comment_authorArn = Lens.lens (\Comment' {authorArn} -> authorArn) (\s@Comment' {} a -> s {authorArn = a} :: Comment)
+
+-- | The emoji reactions to a comment, if any, submitted by the user whose
+-- credentials are associated with the call to the API.
+comment_callerReactions :: Lens.Lens' Comment (Prelude.Maybe [Prelude.Text])
+comment_callerReactions = Lens.lens (\Comment' {callerReactions} -> callerReactions) (\s@Comment' {} a -> s {callerReactions = a} :: Comment) Prelude.. Lens.mapping Lens.coerced
+
+-- | A unique, client-generated idempotency token that, when provided in a
+-- request, ensures the request cannot be repeated with a changed
+-- parameter. If a request is received with the same parameters and a token
+-- is included, the request returns information about the initial request
+-- that used that token.
+comment_clientRequestToken :: Lens.Lens' Comment (Prelude.Maybe Prelude.Text)
+comment_clientRequestToken = Lens.lens (\Comment' {clientRequestToken} -> clientRequestToken) (\s@Comment' {} a -> s {clientRequestToken = a} :: Comment)
+
+-- | The system-generated comment ID.
+comment_commentId :: Lens.Lens' Comment (Prelude.Maybe Prelude.Text)
+comment_commentId = Lens.lens (\Comment' {commentId} -> commentId) (\s@Comment' {} a -> s {commentId = a} :: Comment)
+
+-- | The content of the comment.
+comment_content :: Lens.Lens' Comment (Prelude.Maybe Prelude.Text)
+comment_content = Lens.lens (\Comment' {content} -> content) (\s@Comment' {} a -> s {content = a} :: Comment)
+
+-- | The date and time the comment was created, in timestamp format.
+comment_creationDate :: Lens.Lens' Comment (Prelude.Maybe Prelude.UTCTime)
+comment_creationDate = Lens.lens (\Comment' {creationDate} -> creationDate) (\s@Comment' {} a -> s {creationDate = a} :: Comment) Prelude.. Lens.mapping Data._Time
+
+-- | A Boolean value indicating whether the comment has been deleted.
+comment_deleted :: Lens.Lens' Comment (Prelude.Maybe Prelude.Bool)
+comment_deleted = Lens.lens (\Comment' {deleted} -> deleted) (\s@Comment' {} a -> s {deleted = a} :: Comment)
+
+-- | The ID of the comment for which this comment is a reply, if any.
+comment_inReplyTo :: Lens.Lens' Comment (Prelude.Maybe Prelude.Text)
+comment_inReplyTo = Lens.lens (\Comment' {inReplyTo} -> inReplyTo) (\s@Comment' {} a -> s {inReplyTo = a} :: Comment)
+
+-- | The date and time the comment was most recently modified, in timestamp
+-- format.
+comment_lastModifiedDate :: Lens.Lens' Comment (Prelude.Maybe Prelude.UTCTime)
+comment_lastModifiedDate = Lens.lens (\Comment' {lastModifiedDate} -> lastModifiedDate) (\s@Comment' {} a -> s {lastModifiedDate = a} :: Comment) Prelude.. Lens.mapping Data._Time
+
+-- | A string to integer map that represents the number of individual users
+-- who have responded to a comment with the specified reactions.
+comment_reactionCounts :: Lens.Lens' Comment (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Int))
+comment_reactionCounts = Lens.lens (\Comment' {reactionCounts} -> reactionCounts) (\s@Comment' {} a -> s {reactionCounts = a} :: Comment) Prelude.. Lens.mapping Lens.coerced
+
+instance Data.FromJSON Comment where
+  parseJSON =
+    Data.withObject
+      "Comment"
+      ( \x ->
+          Comment'
+            Prelude.<$> (x Data..:? "authorArn")
+            Prelude.<*> ( x
+                            Data..:? "callerReactions"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "clientRequestToken")
+            Prelude.<*> (x Data..:? "commentId")
+            Prelude.<*> (x Data..:? "content")
+            Prelude.<*> (x Data..:? "creationDate")
+            Prelude.<*> (x Data..:? "deleted")
+            Prelude.<*> (x Data..:? "inReplyTo")
+            Prelude.<*> (x Data..:? "lastModifiedDate")
+            Prelude.<*> ( x
+                            Data..:? "reactionCounts"
+                            Data..!= Prelude.mempty
+                        )
+      )
+
+instance Prelude.Hashable Comment where
+  hashWithSalt _salt Comment' {..} =
+    _salt
+      `Prelude.hashWithSalt` authorArn
+      `Prelude.hashWithSalt` callerReactions
+      `Prelude.hashWithSalt` clientRequestToken
+      `Prelude.hashWithSalt` commentId
+      `Prelude.hashWithSalt` content
+      `Prelude.hashWithSalt` creationDate
+      `Prelude.hashWithSalt` deleted
+      `Prelude.hashWithSalt` inReplyTo
+      `Prelude.hashWithSalt` lastModifiedDate
+      `Prelude.hashWithSalt` reactionCounts
+
+instance Prelude.NFData Comment where
+  rnf Comment' {..} =
+    Prelude.rnf authorArn
+      `Prelude.seq` Prelude.rnf callerReactions
+      `Prelude.seq` Prelude.rnf clientRequestToken
+      `Prelude.seq` Prelude.rnf commentId
+      `Prelude.seq` Prelude.rnf content
+      `Prelude.seq` Prelude.rnf creationDate
+      `Prelude.seq` Prelude.rnf deleted
+      `Prelude.seq` Prelude.rnf inReplyTo
+      `Prelude.seq` Prelude.rnf lastModifiedDate
+      `Prelude.seq` Prelude.rnf reactionCounts
diff --git a/gen/Amazonka/CodeCommit/Types/CommentsForComparedCommit.hs b/gen/Amazonka/CodeCommit/Types/CommentsForComparedCommit.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/CommentsForComparedCommit.hs
@@ -0,0 +1,169 @@
+{-# 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.CodeCommit.Types.CommentsForComparedCommit
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.CommentsForComparedCommit where
+
+import Amazonka.CodeCommit.Types.Comment
+import Amazonka.CodeCommit.Types.Location
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about comments on the comparison between two
+-- commits.
+--
+-- /See:/ 'newCommentsForComparedCommit' smart constructor.
+data CommentsForComparedCommit = CommentsForComparedCommit'
+  { -- | The full blob ID of the commit used to establish the after of the
+    -- comparison.
+    afterBlobId :: Prelude.Maybe Prelude.Text,
+    -- | The full commit ID of the commit used to establish the after of the
+    -- comparison.
+    afterCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The full blob ID of the commit used to establish the before of the
+    -- comparison.
+    beforeBlobId :: Prelude.Maybe Prelude.Text,
+    -- | The full commit ID of the commit used to establish the before of the
+    -- comparison.
+    beforeCommitId :: Prelude.Maybe Prelude.Text,
+    -- | An array of comment objects. Each comment object contains information
+    -- about a comment on the comparison between commits.
+    comments :: Prelude.Maybe [Comment],
+    -- | Location information about the comment on the comparison, including the
+    -- file name, line number, and whether the version of the file where the
+    -- comment was made is BEFORE or AFTER.
+    location :: Prelude.Maybe Location,
+    -- | The name of the repository that contains the compared commits.
+    repositoryName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CommentsForComparedCommit' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'afterBlobId', 'commentsForComparedCommit_afterBlobId' - The full blob ID of the commit used to establish the after of the
+-- comparison.
+--
+-- 'afterCommitId', 'commentsForComparedCommit_afterCommitId' - The full commit ID of the commit used to establish the after of the
+-- comparison.
+--
+-- 'beforeBlobId', 'commentsForComparedCommit_beforeBlobId' - The full blob ID of the commit used to establish the before of the
+-- comparison.
+--
+-- 'beforeCommitId', 'commentsForComparedCommit_beforeCommitId' - The full commit ID of the commit used to establish the before of the
+-- comparison.
+--
+-- 'comments', 'commentsForComparedCommit_comments' - An array of comment objects. Each comment object contains information
+-- about a comment on the comparison between commits.
+--
+-- 'location', 'commentsForComparedCommit_location' - Location information about the comment on the comparison, including the
+-- file name, line number, and whether the version of the file where the
+-- comment was made is BEFORE or AFTER.
+--
+-- 'repositoryName', 'commentsForComparedCommit_repositoryName' - The name of the repository that contains the compared commits.
+newCommentsForComparedCommit ::
+  CommentsForComparedCommit
+newCommentsForComparedCommit =
+  CommentsForComparedCommit'
+    { afterBlobId =
+        Prelude.Nothing,
+      afterCommitId = Prelude.Nothing,
+      beforeBlobId = Prelude.Nothing,
+      beforeCommitId = Prelude.Nothing,
+      comments = Prelude.Nothing,
+      location = Prelude.Nothing,
+      repositoryName = Prelude.Nothing
+    }
+
+-- | The full blob ID of the commit used to establish the after of the
+-- comparison.
+commentsForComparedCommit_afterBlobId :: Lens.Lens' CommentsForComparedCommit (Prelude.Maybe Prelude.Text)
+commentsForComparedCommit_afterBlobId = Lens.lens (\CommentsForComparedCommit' {afterBlobId} -> afterBlobId) (\s@CommentsForComparedCommit' {} a -> s {afterBlobId = a} :: CommentsForComparedCommit)
+
+-- | The full commit ID of the commit used to establish the after of the
+-- comparison.
+commentsForComparedCommit_afterCommitId :: Lens.Lens' CommentsForComparedCommit (Prelude.Maybe Prelude.Text)
+commentsForComparedCommit_afterCommitId = Lens.lens (\CommentsForComparedCommit' {afterCommitId} -> afterCommitId) (\s@CommentsForComparedCommit' {} a -> s {afterCommitId = a} :: CommentsForComparedCommit)
+
+-- | The full blob ID of the commit used to establish the before of the
+-- comparison.
+commentsForComparedCommit_beforeBlobId :: Lens.Lens' CommentsForComparedCommit (Prelude.Maybe Prelude.Text)
+commentsForComparedCommit_beforeBlobId = Lens.lens (\CommentsForComparedCommit' {beforeBlobId} -> beforeBlobId) (\s@CommentsForComparedCommit' {} a -> s {beforeBlobId = a} :: CommentsForComparedCommit)
+
+-- | The full commit ID of the commit used to establish the before of the
+-- comparison.
+commentsForComparedCommit_beforeCommitId :: Lens.Lens' CommentsForComparedCommit (Prelude.Maybe Prelude.Text)
+commentsForComparedCommit_beforeCommitId = Lens.lens (\CommentsForComparedCommit' {beforeCommitId} -> beforeCommitId) (\s@CommentsForComparedCommit' {} a -> s {beforeCommitId = a} :: CommentsForComparedCommit)
+
+-- | An array of comment objects. Each comment object contains information
+-- about a comment on the comparison between commits.
+commentsForComparedCommit_comments :: Lens.Lens' CommentsForComparedCommit (Prelude.Maybe [Comment])
+commentsForComparedCommit_comments = Lens.lens (\CommentsForComparedCommit' {comments} -> comments) (\s@CommentsForComparedCommit' {} a -> s {comments = a} :: CommentsForComparedCommit) Prelude.. Lens.mapping Lens.coerced
+
+-- | Location information about the comment on the comparison, including the
+-- file name, line number, and whether the version of the file where the
+-- comment was made is BEFORE or AFTER.
+commentsForComparedCommit_location :: Lens.Lens' CommentsForComparedCommit (Prelude.Maybe Location)
+commentsForComparedCommit_location = Lens.lens (\CommentsForComparedCommit' {location} -> location) (\s@CommentsForComparedCommit' {} a -> s {location = a} :: CommentsForComparedCommit)
+
+-- | The name of the repository that contains the compared commits.
+commentsForComparedCommit_repositoryName :: Lens.Lens' CommentsForComparedCommit (Prelude.Maybe Prelude.Text)
+commentsForComparedCommit_repositoryName = Lens.lens (\CommentsForComparedCommit' {repositoryName} -> repositoryName) (\s@CommentsForComparedCommit' {} a -> s {repositoryName = a} :: CommentsForComparedCommit)
+
+instance Data.FromJSON CommentsForComparedCommit where
+  parseJSON =
+    Data.withObject
+      "CommentsForComparedCommit"
+      ( \x ->
+          CommentsForComparedCommit'
+            Prelude.<$> (x Data..:? "afterBlobId")
+            Prelude.<*> (x Data..:? "afterCommitId")
+            Prelude.<*> (x Data..:? "beforeBlobId")
+            Prelude.<*> (x Data..:? "beforeCommitId")
+            Prelude.<*> (x Data..:? "comments" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "location")
+            Prelude.<*> (x Data..:? "repositoryName")
+      )
+
+instance Prelude.Hashable CommentsForComparedCommit where
+  hashWithSalt _salt CommentsForComparedCommit' {..} =
+    _salt
+      `Prelude.hashWithSalt` afterBlobId
+      `Prelude.hashWithSalt` afterCommitId
+      `Prelude.hashWithSalt` beforeBlobId
+      `Prelude.hashWithSalt` beforeCommitId
+      `Prelude.hashWithSalt` comments
+      `Prelude.hashWithSalt` location
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData CommentsForComparedCommit where
+  rnf CommentsForComparedCommit' {..} =
+    Prelude.rnf afterBlobId
+      `Prelude.seq` Prelude.rnf afterCommitId
+      `Prelude.seq` Prelude.rnf beforeBlobId
+      `Prelude.seq` Prelude.rnf beforeCommitId
+      `Prelude.seq` Prelude.rnf comments
+      `Prelude.seq` Prelude.rnf location
+      `Prelude.seq` Prelude.rnf repositoryName
diff --git a/gen/Amazonka/CodeCommit/Types/CommentsForPullRequest.hs b/gen/Amazonka/CodeCommit/Types/CommentsForPullRequest.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/CommentsForPullRequest.hs
@@ -0,0 +1,189 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.CommentsForPullRequest
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.CommentsForPullRequest where
+
+import Amazonka.CodeCommit.Types.Comment
+import Amazonka.CodeCommit.Types.Location
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about comments on a pull request.
+--
+-- /See:/ 'newCommentsForPullRequest' smart constructor.
+data CommentsForPullRequest = CommentsForPullRequest'
+  { -- | The full blob ID of the file on which you want to comment on the source
+    -- commit.
+    afterBlobId :: Prelude.Maybe Prelude.Text,
+    -- | The full commit ID of the commit that was the tip of the source branch
+    -- at the time the comment was made.
+    afterCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The full blob ID of the file on which you want to comment on the
+    -- destination commit.
+    beforeBlobId :: Prelude.Maybe Prelude.Text,
+    -- | The full commit ID of the commit that was the tip of the destination
+    -- branch when the pull request was created. This commit is superceded by
+    -- the after commit in the source branch when and if you merge the source
+    -- branch into the destination branch.
+    beforeCommitId :: Prelude.Maybe Prelude.Text,
+    -- | An array of comment objects. Each comment object contains information
+    -- about a comment on the pull request.
+    comments :: Prelude.Maybe [Comment],
+    -- | Location information about the comment on the pull request, including
+    -- the file name, line number, and whether the version of the file where
+    -- the comment was made is BEFORE (destination branch) or AFTER (source
+    -- branch).
+    location :: Prelude.Maybe Location,
+    -- | The system-generated ID of the pull request.
+    pullRequestId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository that contains the pull request.
+    repositoryName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CommentsForPullRequest' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'afterBlobId', 'commentsForPullRequest_afterBlobId' - The full blob ID of the file on which you want to comment on the source
+-- commit.
+--
+-- 'afterCommitId', 'commentsForPullRequest_afterCommitId' - The full commit ID of the commit that was the tip of the source branch
+-- at the time the comment was made.
+--
+-- 'beforeBlobId', 'commentsForPullRequest_beforeBlobId' - The full blob ID of the file on which you want to comment on the
+-- destination commit.
+--
+-- 'beforeCommitId', 'commentsForPullRequest_beforeCommitId' - The full commit ID of the commit that was the tip of the destination
+-- branch when the pull request was created. This commit is superceded by
+-- the after commit in the source branch when and if you merge the source
+-- branch into the destination branch.
+--
+-- 'comments', 'commentsForPullRequest_comments' - An array of comment objects. Each comment object contains information
+-- about a comment on the pull request.
+--
+-- 'location', 'commentsForPullRequest_location' - Location information about the comment on the pull request, including
+-- the file name, line number, and whether the version of the file where
+-- the comment was made is BEFORE (destination branch) or AFTER (source
+-- branch).
+--
+-- 'pullRequestId', 'commentsForPullRequest_pullRequestId' - The system-generated ID of the pull request.
+--
+-- 'repositoryName', 'commentsForPullRequest_repositoryName' - The name of the repository that contains the pull request.
+newCommentsForPullRequest ::
+  CommentsForPullRequest
+newCommentsForPullRequest =
+  CommentsForPullRequest'
+    { afterBlobId =
+        Prelude.Nothing,
+      afterCommitId = Prelude.Nothing,
+      beforeBlobId = Prelude.Nothing,
+      beforeCommitId = Prelude.Nothing,
+      comments = Prelude.Nothing,
+      location = Prelude.Nothing,
+      pullRequestId = Prelude.Nothing,
+      repositoryName = Prelude.Nothing
+    }
+
+-- | The full blob ID of the file on which you want to comment on the source
+-- commit.
+commentsForPullRequest_afterBlobId :: Lens.Lens' CommentsForPullRequest (Prelude.Maybe Prelude.Text)
+commentsForPullRequest_afterBlobId = Lens.lens (\CommentsForPullRequest' {afterBlobId} -> afterBlobId) (\s@CommentsForPullRequest' {} a -> s {afterBlobId = a} :: CommentsForPullRequest)
+
+-- | The full commit ID of the commit that was the tip of the source branch
+-- at the time the comment was made.
+commentsForPullRequest_afterCommitId :: Lens.Lens' CommentsForPullRequest (Prelude.Maybe Prelude.Text)
+commentsForPullRequest_afterCommitId = Lens.lens (\CommentsForPullRequest' {afterCommitId} -> afterCommitId) (\s@CommentsForPullRequest' {} a -> s {afterCommitId = a} :: CommentsForPullRequest)
+
+-- | The full blob ID of the file on which you want to comment on the
+-- destination commit.
+commentsForPullRequest_beforeBlobId :: Lens.Lens' CommentsForPullRequest (Prelude.Maybe Prelude.Text)
+commentsForPullRequest_beforeBlobId = Lens.lens (\CommentsForPullRequest' {beforeBlobId} -> beforeBlobId) (\s@CommentsForPullRequest' {} a -> s {beforeBlobId = a} :: CommentsForPullRequest)
+
+-- | The full commit ID of the commit that was the tip of the destination
+-- branch when the pull request was created. This commit is superceded by
+-- the after commit in the source branch when and if you merge the source
+-- branch into the destination branch.
+commentsForPullRequest_beforeCommitId :: Lens.Lens' CommentsForPullRequest (Prelude.Maybe Prelude.Text)
+commentsForPullRequest_beforeCommitId = Lens.lens (\CommentsForPullRequest' {beforeCommitId} -> beforeCommitId) (\s@CommentsForPullRequest' {} a -> s {beforeCommitId = a} :: CommentsForPullRequest)
+
+-- | An array of comment objects. Each comment object contains information
+-- about a comment on the pull request.
+commentsForPullRequest_comments :: Lens.Lens' CommentsForPullRequest (Prelude.Maybe [Comment])
+commentsForPullRequest_comments = Lens.lens (\CommentsForPullRequest' {comments} -> comments) (\s@CommentsForPullRequest' {} a -> s {comments = a} :: CommentsForPullRequest) Prelude.. Lens.mapping Lens.coerced
+
+-- | Location information about the comment on the pull request, including
+-- the file name, line number, and whether the version of the file where
+-- the comment was made is BEFORE (destination branch) or AFTER (source
+-- branch).
+commentsForPullRequest_location :: Lens.Lens' CommentsForPullRequest (Prelude.Maybe Location)
+commentsForPullRequest_location = Lens.lens (\CommentsForPullRequest' {location} -> location) (\s@CommentsForPullRequest' {} a -> s {location = a} :: CommentsForPullRequest)
+
+-- | The system-generated ID of the pull request.
+commentsForPullRequest_pullRequestId :: Lens.Lens' CommentsForPullRequest (Prelude.Maybe Prelude.Text)
+commentsForPullRequest_pullRequestId = Lens.lens (\CommentsForPullRequest' {pullRequestId} -> pullRequestId) (\s@CommentsForPullRequest' {} a -> s {pullRequestId = a} :: CommentsForPullRequest)
+
+-- | The name of the repository that contains the pull request.
+commentsForPullRequest_repositoryName :: Lens.Lens' CommentsForPullRequest (Prelude.Maybe Prelude.Text)
+commentsForPullRequest_repositoryName = Lens.lens (\CommentsForPullRequest' {repositoryName} -> repositoryName) (\s@CommentsForPullRequest' {} a -> s {repositoryName = a} :: CommentsForPullRequest)
+
+instance Data.FromJSON CommentsForPullRequest where
+  parseJSON =
+    Data.withObject
+      "CommentsForPullRequest"
+      ( \x ->
+          CommentsForPullRequest'
+            Prelude.<$> (x Data..:? "afterBlobId")
+            Prelude.<*> (x Data..:? "afterCommitId")
+            Prelude.<*> (x Data..:? "beforeBlobId")
+            Prelude.<*> (x Data..:? "beforeCommitId")
+            Prelude.<*> (x Data..:? "comments" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "location")
+            Prelude.<*> (x Data..:? "pullRequestId")
+            Prelude.<*> (x Data..:? "repositoryName")
+      )
+
+instance Prelude.Hashable CommentsForPullRequest where
+  hashWithSalt _salt CommentsForPullRequest' {..} =
+    _salt
+      `Prelude.hashWithSalt` afterBlobId
+      `Prelude.hashWithSalt` afterCommitId
+      `Prelude.hashWithSalt` beforeBlobId
+      `Prelude.hashWithSalt` beforeCommitId
+      `Prelude.hashWithSalt` comments
+      `Prelude.hashWithSalt` location
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData CommentsForPullRequest where
+  rnf CommentsForPullRequest' {..} =
+    Prelude.rnf afterBlobId
+      `Prelude.seq` Prelude.rnf afterCommitId
+      `Prelude.seq` Prelude.rnf beforeBlobId
+      `Prelude.seq` Prelude.rnf beforeCommitId
+      `Prelude.seq` Prelude.rnf comments
+      `Prelude.seq` Prelude.rnf location
+      `Prelude.seq` Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf repositoryName
diff --git a/gen/Amazonka/CodeCommit/Types/Commit.hs b/gen/Amazonka/CodeCommit/Types/Commit.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/Commit.hs
@@ -0,0 +1,178 @@
+{-# 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.CodeCommit.Types.Commit
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.Commit where
+
+import Amazonka.CodeCommit.Types.UserInfo
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a specific commit.
+--
+-- /See:/ 'newCommit' smart constructor.
+data Commit = Commit'
+  { -- | Any other data associated with the specified commit.
+    additionalData :: Prelude.Maybe Prelude.Text,
+    -- | Information about the author of the specified commit. Information
+    -- includes the date in timestamp format with GMT offset, the name of the
+    -- author, and the email address for the author, as configured in Git.
+    author :: Prelude.Maybe UserInfo,
+    -- | The full SHA ID of the specified commit.
+    commitId :: Prelude.Maybe Prelude.Text,
+    -- | Information about the person who committed the specified commit, also
+    -- known as the committer. Information includes the date in timestamp
+    -- format with GMT offset, the name of the committer, and the email address
+    -- for the committer, as configured in Git.
+    --
+    -- For more information about the difference between an author and a
+    -- committer in Git, see
+    -- <http://git-scm.com/book/ch2-3.html Viewing the Commit History> in Pro
+    -- Git by Scott Chacon and Ben Straub.
+    committer :: Prelude.Maybe UserInfo,
+    -- | The commit message associated with the specified commit.
+    message :: Prelude.Maybe Prelude.Text,
+    -- | A list of parent commits for the specified commit. Each parent commit ID
+    -- is the full commit ID.
+    parents :: Prelude.Maybe [Prelude.Text],
+    -- | Tree information for the specified commit.
+    treeId :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Commit' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'additionalData', 'commit_additionalData' - Any other data associated with the specified commit.
+--
+-- 'author', 'commit_author' - Information about the author of the specified commit. Information
+-- includes the date in timestamp format with GMT offset, the name of the
+-- author, and the email address for the author, as configured in Git.
+--
+-- 'commitId', 'commit_commitId' - The full SHA ID of the specified commit.
+--
+-- 'committer', 'commit_committer' - Information about the person who committed the specified commit, also
+-- known as the committer. Information includes the date in timestamp
+-- format with GMT offset, the name of the committer, and the email address
+-- for the committer, as configured in Git.
+--
+-- For more information about the difference between an author and a
+-- committer in Git, see
+-- <http://git-scm.com/book/ch2-3.html Viewing the Commit History> in Pro
+-- Git by Scott Chacon and Ben Straub.
+--
+-- 'message', 'commit_message' - The commit message associated with the specified commit.
+--
+-- 'parents', 'commit_parents' - A list of parent commits for the specified commit. Each parent commit ID
+-- is the full commit ID.
+--
+-- 'treeId', 'commit_treeId' - Tree information for the specified commit.
+newCommit ::
+  Commit
+newCommit =
+  Commit'
+    { additionalData = Prelude.Nothing,
+      author = Prelude.Nothing,
+      commitId = Prelude.Nothing,
+      committer = Prelude.Nothing,
+      message = Prelude.Nothing,
+      parents = Prelude.Nothing,
+      treeId = Prelude.Nothing
+    }
+
+-- | Any other data associated with the specified commit.
+commit_additionalData :: Lens.Lens' Commit (Prelude.Maybe Prelude.Text)
+commit_additionalData = Lens.lens (\Commit' {additionalData} -> additionalData) (\s@Commit' {} a -> s {additionalData = a} :: Commit)
+
+-- | Information about the author of the specified commit. Information
+-- includes the date in timestamp format with GMT offset, the name of the
+-- author, and the email address for the author, as configured in Git.
+commit_author :: Lens.Lens' Commit (Prelude.Maybe UserInfo)
+commit_author = Lens.lens (\Commit' {author} -> author) (\s@Commit' {} a -> s {author = a} :: Commit)
+
+-- | The full SHA ID of the specified commit.
+commit_commitId :: Lens.Lens' Commit (Prelude.Maybe Prelude.Text)
+commit_commitId = Lens.lens (\Commit' {commitId} -> commitId) (\s@Commit' {} a -> s {commitId = a} :: Commit)
+
+-- | Information about the person who committed the specified commit, also
+-- known as the committer. Information includes the date in timestamp
+-- format with GMT offset, the name of the committer, and the email address
+-- for the committer, as configured in Git.
+--
+-- For more information about the difference between an author and a
+-- committer in Git, see
+-- <http://git-scm.com/book/ch2-3.html Viewing the Commit History> in Pro
+-- Git by Scott Chacon and Ben Straub.
+commit_committer :: Lens.Lens' Commit (Prelude.Maybe UserInfo)
+commit_committer = Lens.lens (\Commit' {committer} -> committer) (\s@Commit' {} a -> s {committer = a} :: Commit)
+
+-- | The commit message associated with the specified commit.
+commit_message :: Lens.Lens' Commit (Prelude.Maybe Prelude.Text)
+commit_message = Lens.lens (\Commit' {message} -> message) (\s@Commit' {} a -> s {message = a} :: Commit)
+
+-- | A list of parent commits for the specified commit. Each parent commit ID
+-- is the full commit ID.
+commit_parents :: Lens.Lens' Commit (Prelude.Maybe [Prelude.Text])
+commit_parents = Lens.lens (\Commit' {parents} -> parents) (\s@Commit' {} a -> s {parents = a} :: Commit) Prelude.. Lens.mapping Lens.coerced
+
+-- | Tree information for the specified commit.
+commit_treeId :: Lens.Lens' Commit (Prelude.Maybe Prelude.Text)
+commit_treeId = Lens.lens (\Commit' {treeId} -> treeId) (\s@Commit' {} a -> s {treeId = a} :: Commit)
+
+instance Data.FromJSON Commit where
+  parseJSON =
+    Data.withObject
+      "Commit"
+      ( \x ->
+          Commit'
+            Prelude.<$> (x Data..:? "additionalData")
+            Prelude.<*> (x Data..:? "author")
+            Prelude.<*> (x Data..:? "commitId")
+            Prelude.<*> (x Data..:? "committer")
+            Prelude.<*> (x Data..:? "message")
+            Prelude.<*> (x Data..:? "parents" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "treeId")
+      )
+
+instance Prelude.Hashable Commit where
+  hashWithSalt _salt Commit' {..} =
+    _salt
+      `Prelude.hashWithSalt` additionalData
+      `Prelude.hashWithSalt` author
+      `Prelude.hashWithSalt` commitId
+      `Prelude.hashWithSalt` committer
+      `Prelude.hashWithSalt` message
+      `Prelude.hashWithSalt` parents
+      `Prelude.hashWithSalt` treeId
+
+instance Prelude.NFData Commit where
+  rnf Commit' {..} =
+    Prelude.rnf additionalData
+      `Prelude.seq` Prelude.rnf author
+      `Prelude.seq` Prelude.rnf commitId
+      `Prelude.seq` Prelude.rnf committer
+      `Prelude.seq` Prelude.rnf message
+      `Prelude.seq` Prelude.rnf parents
+      `Prelude.seq` Prelude.rnf treeId
diff --git a/gen/Amazonka/CodeCommit/Types/Conflict.hs b/gen/Amazonka/CodeCommit/Types/Conflict.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/Conflict.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.CodeCommit.Types.Conflict
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.Conflict where
+
+import Amazonka.CodeCommit.Types.ConflictMetadata
+import Amazonka.CodeCommit.Types.MergeHunk
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about conflicts in a merge operation.
+--
+-- /See:/ 'newConflict' smart constructor.
+data Conflict = Conflict'
+  { -- | Metadata about a conflict in a merge operation.
+    conflictMetadata :: Prelude.Maybe ConflictMetadata,
+    -- | A list of hunks that contain the differences between files or lines
+    -- causing the conflict.
+    mergeHunks :: Prelude.Maybe [MergeHunk]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Conflict' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'conflictMetadata', 'conflict_conflictMetadata' - Metadata about a conflict in a merge operation.
+--
+-- 'mergeHunks', 'conflict_mergeHunks' - A list of hunks that contain the differences between files or lines
+-- causing the conflict.
+newConflict ::
+  Conflict
+newConflict =
+  Conflict'
+    { conflictMetadata = Prelude.Nothing,
+      mergeHunks = Prelude.Nothing
+    }
+
+-- | Metadata about a conflict in a merge operation.
+conflict_conflictMetadata :: Lens.Lens' Conflict (Prelude.Maybe ConflictMetadata)
+conflict_conflictMetadata = Lens.lens (\Conflict' {conflictMetadata} -> conflictMetadata) (\s@Conflict' {} a -> s {conflictMetadata = a} :: Conflict)
+
+-- | A list of hunks that contain the differences between files or lines
+-- causing the conflict.
+conflict_mergeHunks :: Lens.Lens' Conflict (Prelude.Maybe [MergeHunk])
+conflict_mergeHunks = Lens.lens (\Conflict' {mergeHunks} -> mergeHunks) (\s@Conflict' {} a -> s {mergeHunks = a} :: Conflict) Prelude.. Lens.mapping Lens.coerced
+
+instance Data.FromJSON Conflict where
+  parseJSON =
+    Data.withObject
+      "Conflict"
+      ( \x ->
+          Conflict'
+            Prelude.<$> (x Data..:? "conflictMetadata")
+            Prelude.<*> (x Data..:? "mergeHunks" Data..!= Prelude.mempty)
+      )
+
+instance Prelude.Hashable Conflict where
+  hashWithSalt _salt Conflict' {..} =
+    _salt
+      `Prelude.hashWithSalt` conflictMetadata
+      `Prelude.hashWithSalt` mergeHunks
+
+instance Prelude.NFData Conflict where
+  rnf Conflict' {..} =
+    Prelude.rnf conflictMetadata
+      `Prelude.seq` Prelude.rnf mergeHunks
diff --git a/gen/Amazonka/CodeCommit/Types/ConflictDetailLevelTypeEnum.hs b/gen/Amazonka/CodeCommit/Types/ConflictDetailLevelTypeEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ConflictDetailLevelTypeEnum.hs
@@ -0,0 +1,71 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ConflictDetailLevelTypeEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ConflictDetailLevelTypeEnum
+  ( ConflictDetailLevelTypeEnum
+      ( ..,
+        ConflictDetailLevelTypeEnum_FILE_LEVEL,
+        ConflictDetailLevelTypeEnum_LINE_LEVEL
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ConflictDetailLevelTypeEnum = ConflictDetailLevelTypeEnum'
+  { fromConflictDetailLevelTypeEnum ::
+      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 ConflictDetailLevelTypeEnum_FILE_LEVEL :: ConflictDetailLevelTypeEnum
+pattern ConflictDetailLevelTypeEnum_FILE_LEVEL = ConflictDetailLevelTypeEnum' "FILE_LEVEL"
+
+pattern ConflictDetailLevelTypeEnum_LINE_LEVEL :: ConflictDetailLevelTypeEnum
+pattern ConflictDetailLevelTypeEnum_LINE_LEVEL = ConflictDetailLevelTypeEnum' "LINE_LEVEL"
+
+{-# COMPLETE
+  ConflictDetailLevelTypeEnum_FILE_LEVEL,
+  ConflictDetailLevelTypeEnum_LINE_LEVEL,
+  ConflictDetailLevelTypeEnum'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/ConflictMetadata.hs b/gen/Amazonka/CodeCommit/Types/ConflictMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ConflictMetadata.hs
@@ -0,0 +1,210 @@
+{-# 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.CodeCommit.Types.ConflictMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ConflictMetadata where
+
+import Amazonka.CodeCommit.Types.FileModes
+import Amazonka.CodeCommit.Types.FileSizes
+import Amazonka.CodeCommit.Types.IsBinaryFile
+import Amazonka.CodeCommit.Types.MergeOperations
+import Amazonka.CodeCommit.Types.ObjectTypes
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about the metadata for a conflict in a merge operation.
+--
+-- /See:/ 'newConflictMetadata' smart constructor.
+data ConflictMetadata = ConflictMetadata'
+  { -- | A boolean value indicating whether there are conflicts in the content of
+    -- a file.
+    contentConflict :: Prelude.Maybe Prelude.Bool,
+    -- | A boolean value indicating whether there are conflicts in the file mode
+    -- of a file.
+    fileModeConflict :: Prelude.Maybe Prelude.Bool,
+    -- | The file modes of the file in the source, destination, and base of the
+    -- merge.
+    fileModes :: Prelude.Maybe FileModes,
+    -- | The path of the file that contains conflicts.
+    filePath :: Prelude.Maybe Prelude.Text,
+    -- | The file sizes of the file in the source, destination, and base of the
+    -- merge.
+    fileSizes :: Prelude.Maybe FileSizes,
+    -- | A boolean value (true or false) indicating whether the file is binary or
+    -- textual in the source, destination, and base of the merge.
+    isBinaryFile :: Prelude.Maybe IsBinaryFile,
+    -- | Whether an add, modify, or delete operation caused the conflict between
+    -- the source and destination of the merge.
+    mergeOperations :: Prelude.Maybe MergeOperations,
+    -- | The number of conflicts, including both hunk conflicts and metadata
+    -- conflicts.
+    numberOfConflicts :: Prelude.Maybe Prelude.Int,
+    -- | A boolean value (true or false) indicating whether there are conflicts
+    -- between the branches in the object type of a file, folder, or submodule.
+    objectTypeConflict :: Prelude.Maybe Prelude.Bool,
+    -- | Information about any object type conflicts in a merge operation.
+    objectTypes :: Prelude.Maybe ObjectTypes
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ConflictMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'contentConflict', 'conflictMetadata_contentConflict' - A boolean value indicating whether there are conflicts in the content of
+-- a file.
+--
+-- 'fileModeConflict', 'conflictMetadata_fileModeConflict' - A boolean value indicating whether there are conflicts in the file mode
+-- of a file.
+--
+-- 'fileModes', 'conflictMetadata_fileModes' - The file modes of the file in the source, destination, and base of the
+-- merge.
+--
+-- 'filePath', 'conflictMetadata_filePath' - The path of the file that contains conflicts.
+--
+-- 'fileSizes', 'conflictMetadata_fileSizes' - The file sizes of the file in the source, destination, and base of the
+-- merge.
+--
+-- 'isBinaryFile', 'conflictMetadata_isBinaryFile' - A boolean value (true or false) indicating whether the file is binary or
+-- textual in the source, destination, and base of the merge.
+--
+-- 'mergeOperations', 'conflictMetadata_mergeOperations' - Whether an add, modify, or delete operation caused the conflict between
+-- the source and destination of the merge.
+--
+-- 'numberOfConflicts', 'conflictMetadata_numberOfConflicts' - The number of conflicts, including both hunk conflicts and metadata
+-- conflicts.
+--
+-- 'objectTypeConflict', 'conflictMetadata_objectTypeConflict' - A boolean value (true or false) indicating whether there are conflicts
+-- between the branches in the object type of a file, folder, or submodule.
+--
+-- 'objectTypes', 'conflictMetadata_objectTypes' - Information about any object type conflicts in a merge operation.
+newConflictMetadata ::
+  ConflictMetadata
+newConflictMetadata =
+  ConflictMetadata'
+    { contentConflict =
+        Prelude.Nothing,
+      fileModeConflict = Prelude.Nothing,
+      fileModes = Prelude.Nothing,
+      filePath = Prelude.Nothing,
+      fileSizes = Prelude.Nothing,
+      isBinaryFile = Prelude.Nothing,
+      mergeOperations = Prelude.Nothing,
+      numberOfConflicts = Prelude.Nothing,
+      objectTypeConflict = Prelude.Nothing,
+      objectTypes = Prelude.Nothing
+    }
+
+-- | A boolean value indicating whether there are conflicts in the content of
+-- a file.
+conflictMetadata_contentConflict :: Lens.Lens' ConflictMetadata (Prelude.Maybe Prelude.Bool)
+conflictMetadata_contentConflict = Lens.lens (\ConflictMetadata' {contentConflict} -> contentConflict) (\s@ConflictMetadata' {} a -> s {contentConflict = a} :: ConflictMetadata)
+
+-- | A boolean value indicating whether there are conflicts in the file mode
+-- of a file.
+conflictMetadata_fileModeConflict :: Lens.Lens' ConflictMetadata (Prelude.Maybe Prelude.Bool)
+conflictMetadata_fileModeConflict = Lens.lens (\ConflictMetadata' {fileModeConflict} -> fileModeConflict) (\s@ConflictMetadata' {} a -> s {fileModeConflict = a} :: ConflictMetadata)
+
+-- | The file modes of the file in the source, destination, and base of the
+-- merge.
+conflictMetadata_fileModes :: Lens.Lens' ConflictMetadata (Prelude.Maybe FileModes)
+conflictMetadata_fileModes = Lens.lens (\ConflictMetadata' {fileModes} -> fileModes) (\s@ConflictMetadata' {} a -> s {fileModes = a} :: ConflictMetadata)
+
+-- | The path of the file that contains conflicts.
+conflictMetadata_filePath :: Lens.Lens' ConflictMetadata (Prelude.Maybe Prelude.Text)
+conflictMetadata_filePath = Lens.lens (\ConflictMetadata' {filePath} -> filePath) (\s@ConflictMetadata' {} a -> s {filePath = a} :: ConflictMetadata)
+
+-- | The file sizes of the file in the source, destination, and base of the
+-- merge.
+conflictMetadata_fileSizes :: Lens.Lens' ConflictMetadata (Prelude.Maybe FileSizes)
+conflictMetadata_fileSizes = Lens.lens (\ConflictMetadata' {fileSizes} -> fileSizes) (\s@ConflictMetadata' {} a -> s {fileSizes = a} :: ConflictMetadata)
+
+-- | A boolean value (true or false) indicating whether the file is binary or
+-- textual in the source, destination, and base of the merge.
+conflictMetadata_isBinaryFile :: Lens.Lens' ConflictMetadata (Prelude.Maybe IsBinaryFile)
+conflictMetadata_isBinaryFile = Lens.lens (\ConflictMetadata' {isBinaryFile} -> isBinaryFile) (\s@ConflictMetadata' {} a -> s {isBinaryFile = a} :: ConflictMetadata)
+
+-- | Whether an add, modify, or delete operation caused the conflict between
+-- the source and destination of the merge.
+conflictMetadata_mergeOperations :: Lens.Lens' ConflictMetadata (Prelude.Maybe MergeOperations)
+conflictMetadata_mergeOperations = Lens.lens (\ConflictMetadata' {mergeOperations} -> mergeOperations) (\s@ConflictMetadata' {} a -> s {mergeOperations = a} :: ConflictMetadata)
+
+-- | The number of conflicts, including both hunk conflicts and metadata
+-- conflicts.
+conflictMetadata_numberOfConflicts :: Lens.Lens' ConflictMetadata (Prelude.Maybe Prelude.Int)
+conflictMetadata_numberOfConflicts = Lens.lens (\ConflictMetadata' {numberOfConflicts} -> numberOfConflicts) (\s@ConflictMetadata' {} a -> s {numberOfConflicts = a} :: ConflictMetadata)
+
+-- | A boolean value (true or false) indicating whether there are conflicts
+-- between the branches in the object type of a file, folder, or submodule.
+conflictMetadata_objectTypeConflict :: Lens.Lens' ConflictMetadata (Prelude.Maybe Prelude.Bool)
+conflictMetadata_objectTypeConflict = Lens.lens (\ConflictMetadata' {objectTypeConflict} -> objectTypeConflict) (\s@ConflictMetadata' {} a -> s {objectTypeConflict = a} :: ConflictMetadata)
+
+-- | Information about any object type conflicts in a merge operation.
+conflictMetadata_objectTypes :: Lens.Lens' ConflictMetadata (Prelude.Maybe ObjectTypes)
+conflictMetadata_objectTypes = Lens.lens (\ConflictMetadata' {objectTypes} -> objectTypes) (\s@ConflictMetadata' {} a -> s {objectTypes = a} :: ConflictMetadata)
+
+instance Data.FromJSON ConflictMetadata where
+  parseJSON =
+    Data.withObject
+      "ConflictMetadata"
+      ( \x ->
+          ConflictMetadata'
+            Prelude.<$> (x Data..:? "contentConflict")
+            Prelude.<*> (x Data..:? "fileModeConflict")
+            Prelude.<*> (x Data..:? "fileModes")
+            Prelude.<*> (x Data..:? "filePath")
+            Prelude.<*> (x Data..:? "fileSizes")
+            Prelude.<*> (x Data..:? "isBinaryFile")
+            Prelude.<*> (x Data..:? "mergeOperations")
+            Prelude.<*> (x Data..:? "numberOfConflicts")
+            Prelude.<*> (x Data..:? "objectTypeConflict")
+            Prelude.<*> (x Data..:? "objectTypes")
+      )
+
+instance Prelude.Hashable ConflictMetadata where
+  hashWithSalt _salt ConflictMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` contentConflict
+      `Prelude.hashWithSalt` fileModeConflict
+      `Prelude.hashWithSalt` fileModes
+      `Prelude.hashWithSalt` filePath
+      `Prelude.hashWithSalt` fileSizes
+      `Prelude.hashWithSalt` isBinaryFile
+      `Prelude.hashWithSalt` mergeOperations
+      `Prelude.hashWithSalt` numberOfConflicts
+      `Prelude.hashWithSalt` objectTypeConflict
+      `Prelude.hashWithSalt` objectTypes
+
+instance Prelude.NFData ConflictMetadata where
+  rnf ConflictMetadata' {..} =
+    Prelude.rnf contentConflict
+      `Prelude.seq` Prelude.rnf fileModeConflict
+      `Prelude.seq` Prelude.rnf fileModes
+      `Prelude.seq` Prelude.rnf filePath
+      `Prelude.seq` Prelude.rnf fileSizes
+      `Prelude.seq` Prelude.rnf isBinaryFile
+      `Prelude.seq` Prelude.rnf mergeOperations
+      `Prelude.seq` Prelude.rnf numberOfConflicts
+      `Prelude.seq` Prelude.rnf objectTypeConflict
+      `Prelude.seq` Prelude.rnf objectTypes
diff --git a/gen/Amazonka/CodeCommit/Types/ConflictResolution.hs b/gen/Amazonka/CodeCommit/Types/ConflictResolution.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ConflictResolution.hs
@@ -0,0 +1,100 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ConflictResolution
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ConflictResolution where
+
+import Amazonka.CodeCommit.Types.DeleteFileEntry
+import Amazonka.CodeCommit.Types.ReplaceContentEntry
+import Amazonka.CodeCommit.Types.SetFileModeEntry
+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
+
+-- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
+-- use when resolving conflicts during a merge.
+--
+-- /See:/ 'newConflictResolution' smart constructor.
+data ConflictResolution = ConflictResolution'
+  { -- | Files to be deleted as part of the merge conflict resolution.
+    deleteFiles :: Prelude.Maybe [DeleteFileEntry],
+    -- | Files to have content replaced as part of the merge conflict resolution.
+    replaceContents :: Prelude.Maybe [ReplaceContentEntry],
+    -- | File modes that are set as part of the merge conflict resolution.
+    setFileModes :: Prelude.Maybe [SetFileModeEntry]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ConflictResolution' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'deleteFiles', 'conflictResolution_deleteFiles' - Files to be deleted as part of the merge conflict resolution.
+--
+-- 'replaceContents', 'conflictResolution_replaceContents' - Files to have content replaced as part of the merge conflict resolution.
+--
+-- 'setFileModes', 'conflictResolution_setFileModes' - File modes that are set as part of the merge conflict resolution.
+newConflictResolution ::
+  ConflictResolution
+newConflictResolution =
+  ConflictResolution'
+    { deleteFiles = Prelude.Nothing,
+      replaceContents = Prelude.Nothing,
+      setFileModes = Prelude.Nothing
+    }
+
+-- | Files to be deleted as part of the merge conflict resolution.
+conflictResolution_deleteFiles :: Lens.Lens' ConflictResolution (Prelude.Maybe [DeleteFileEntry])
+conflictResolution_deleteFiles = Lens.lens (\ConflictResolution' {deleteFiles} -> deleteFiles) (\s@ConflictResolution' {} a -> s {deleteFiles = a} :: ConflictResolution) Prelude.. Lens.mapping Lens.coerced
+
+-- | Files to have content replaced as part of the merge conflict resolution.
+conflictResolution_replaceContents :: Lens.Lens' ConflictResolution (Prelude.Maybe [ReplaceContentEntry])
+conflictResolution_replaceContents = Lens.lens (\ConflictResolution' {replaceContents} -> replaceContents) (\s@ConflictResolution' {} a -> s {replaceContents = a} :: ConflictResolution) Prelude.. Lens.mapping Lens.coerced
+
+-- | File modes that are set as part of the merge conflict resolution.
+conflictResolution_setFileModes :: Lens.Lens' ConflictResolution (Prelude.Maybe [SetFileModeEntry])
+conflictResolution_setFileModes = Lens.lens (\ConflictResolution' {setFileModes} -> setFileModes) (\s@ConflictResolution' {} a -> s {setFileModes = a} :: ConflictResolution) Prelude.. Lens.mapping Lens.coerced
+
+instance Prelude.Hashable ConflictResolution where
+  hashWithSalt _salt ConflictResolution' {..} =
+    _salt
+      `Prelude.hashWithSalt` deleteFiles
+      `Prelude.hashWithSalt` replaceContents
+      `Prelude.hashWithSalt` setFileModes
+
+instance Prelude.NFData ConflictResolution where
+  rnf ConflictResolution' {..} =
+    Prelude.rnf deleteFiles
+      `Prelude.seq` Prelude.rnf replaceContents
+      `Prelude.seq` Prelude.rnf setFileModes
+
+instance Data.ToJSON ConflictResolution where
+  toJSON ConflictResolution' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("deleteFiles" Data..=) Prelude.<$> deleteFiles,
+            ("replaceContents" Data..=)
+              Prelude.<$> replaceContents,
+            ("setFileModes" Data..=) Prelude.<$> setFileModes
+          ]
+      )
diff --git a/gen/Amazonka/CodeCommit/Types/ConflictResolutionStrategyTypeEnum.hs b/gen/Amazonka/CodeCommit/Types/ConflictResolutionStrategyTypeEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ConflictResolutionStrategyTypeEnum.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ConflictResolutionStrategyTypeEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ConflictResolutionStrategyTypeEnum
+  ( ConflictResolutionStrategyTypeEnum
+      ( ..,
+        ConflictResolutionStrategyTypeEnum_ACCEPT_DESTINATION,
+        ConflictResolutionStrategyTypeEnum_ACCEPT_SOURCE,
+        ConflictResolutionStrategyTypeEnum_AUTOMERGE,
+        ConflictResolutionStrategyTypeEnum_NONE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ConflictResolutionStrategyTypeEnum = ConflictResolutionStrategyTypeEnum'
+  { fromConflictResolutionStrategyTypeEnum ::
+      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 ConflictResolutionStrategyTypeEnum_ACCEPT_DESTINATION :: ConflictResolutionStrategyTypeEnum
+pattern ConflictResolutionStrategyTypeEnum_ACCEPT_DESTINATION = ConflictResolutionStrategyTypeEnum' "ACCEPT_DESTINATION"
+
+pattern ConflictResolutionStrategyTypeEnum_ACCEPT_SOURCE :: ConflictResolutionStrategyTypeEnum
+pattern ConflictResolutionStrategyTypeEnum_ACCEPT_SOURCE = ConflictResolutionStrategyTypeEnum' "ACCEPT_SOURCE"
+
+pattern ConflictResolutionStrategyTypeEnum_AUTOMERGE :: ConflictResolutionStrategyTypeEnum
+pattern ConflictResolutionStrategyTypeEnum_AUTOMERGE = ConflictResolutionStrategyTypeEnum' "AUTOMERGE"
+
+pattern ConflictResolutionStrategyTypeEnum_NONE :: ConflictResolutionStrategyTypeEnum
+pattern ConflictResolutionStrategyTypeEnum_NONE = ConflictResolutionStrategyTypeEnum' "NONE"
+
+{-# COMPLETE
+  ConflictResolutionStrategyTypeEnum_ACCEPT_DESTINATION,
+  ConflictResolutionStrategyTypeEnum_ACCEPT_SOURCE,
+  ConflictResolutionStrategyTypeEnum_AUTOMERGE,
+  ConflictResolutionStrategyTypeEnum_NONE,
+  ConflictResolutionStrategyTypeEnum'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/DeleteFileEntry.hs b/gen/Amazonka/CodeCommit/Types/DeleteFileEntry.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/DeleteFileEntry.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.DeleteFileEntry
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.DeleteFileEntry 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 file that is deleted as part of a commit.
+--
+-- /See:/ 'newDeleteFileEntry' smart constructor.
+data DeleteFileEntry = DeleteFileEntry'
+  { -- | The full path of the file to be deleted, including the name of the file.
+    filePath :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteFileEntry' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'filePath', 'deleteFileEntry_filePath' - The full path of the file to be deleted, including the name of the file.
+newDeleteFileEntry ::
+  -- | 'filePath'
+  Prelude.Text ->
+  DeleteFileEntry
+newDeleteFileEntry pFilePath_ =
+  DeleteFileEntry' {filePath = pFilePath_}
+
+-- | The full path of the file to be deleted, including the name of the file.
+deleteFileEntry_filePath :: Lens.Lens' DeleteFileEntry Prelude.Text
+deleteFileEntry_filePath = Lens.lens (\DeleteFileEntry' {filePath} -> filePath) (\s@DeleteFileEntry' {} a -> s {filePath = a} :: DeleteFileEntry)
+
+instance Prelude.Hashable DeleteFileEntry where
+  hashWithSalt _salt DeleteFileEntry' {..} =
+    _salt `Prelude.hashWithSalt` filePath
+
+instance Prelude.NFData DeleteFileEntry where
+  rnf DeleteFileEntry' {..} = Prelude.rnf filePath
+
+instance Data.ToJSON DeleteFileEntry where
+  toJSON DeleteFileEntry' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("filePath" Data..= filePath)]
+      )
diff --git a/gen/Amazonka/CodeCommit/Types/Difference.hs b/gen/Amazonka/CodeCommit/Types/Difference.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/Difference.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.CodeCommit.Types.Difference
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.Difference where
+
+import Amazonka.CodeCommit.Types.BlobMetadata
+import Amazonka.CodeCommit.Types.ChangeTypeEnum
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a set of differences for a commit specifier.
+--
+-- /See:/ 'newDifference' smart constructor.
+data Difference = Difference'
+  { -- | Information about an @afterBlob@ data type object, including the ID, the
+    -- file mode permission code, and the path.
+    afterBlob :: Prelude.Maybe BlobMetadata,
+    -- | Information about a @beforeBlob@ data type object, including the ID, the
+    -- file mode permission code, and the path.
+    beforeBlob :: Prelude.Maybe BlobMetadata,
+    -- | Whether the change type of the difference is an addition (A), deletion
+    -- (D), or modification (M).
+    changeType :: Prelude.Maybe ChangeTypeEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Difference' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'afterBlob', 'difference_afterBlob' - Information about an @afterBlob@ data type object, including the ID, the
+-- file mode permission code, and the path.
+--
+-- 'beforeBlob', 'difference_beforeBlob' - Information about a @beforeBlob@ data type object, including the ID, the
+-- file mode permission code, and the path.
+--
+-- 'changeType', 'difference_changeType' - Whether the change type of the difference is an addition (A), deletion
+-- (D), or modification (M).
+newDifference ::
+  Difference
+newDifference =
+  Difference'
+    { afterBlob = Prelude.Nothing,
+      beforeBlob = Prelude.Nothing,
+      changeType = Prelude.Nothing
+    }
+
+-- | Information about an @afterBlob@ data type object, including the ID, the
+-- file mode permission code, and the path.
+difference_afterBlob :: Lens.Lens' Difference (Prelude.Maybe BlobMetadata)
+difference_afterBlob = Lens.lens (\Difference' {afterBlob} -> afterBlob) (\s@Difference' {} a -> s {afterBlob = a} :: Difference)
+
+-- | Information about a @beforeBlob@ data type object, including the ID, the
+-- file mode permission code, and the path.
+difference_beforeBlob :: Lens.Lens' Difference (Prelude.Maybe BlobMetadata)
+difference_beforeBlob = Lens.lens (\Difference' {beforeBlob} -> beforeBlob) (\s@Difference' {} a -> s {beforeBlob = a} :: Difference)
+
+-- | Whether the change type of the difference is an addition (A), deletion
+-- (D), or modification (M).
+difference_changeType :: Lens.Lens' Difference (Prelude.Maybe ChangeTypeEnum)
+difference_changeType = Lens.lens (\Difference' {changeType} -> changeType) (\s@Difference' {} a -> s {changeType = a} :: Difference)
+
+instance Data.FromJSON Difference where
+  parseJSON =
+    Data.withObject
+      "Difference"
+      ( \x ->
+          Difference'
+            Prelude.<$> (x Data..:? "afterBlob")
+            Prelude.<*> (x Data..:? "beforeBlob")
+            Prelude.<*> (x Data..:? "changeType")
+      )
+
+instance Prelude.Hashable Difference where
+  hashWithSalt _salt Difference' {..} =
+    _salt
+      `Prelude.hashWithSalt` afterBlob
+      `Prelude.hashWithSalt` beforeBlob
+      `Prelude.hashWithSalt` changeType
+
+instance Prelude.NFData Difference where
+  rnf Difference' {..} =
+    Prelude.rnf afterBlob
+      `Prelude.seq` Prelude.rnf beforeBlob
+      `Prelude.seq` Prelude.rnf changeType
diff --git a/gen/Amazonka/CodeCommit/Types/Evaluation.hs b/gen/Amazonka/CodeCommit/Types/Evaluation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/Evaluation.hs
@@ -0,0 +1,119 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.Evaluation
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.Evaluation where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about the approval rules applied to a pull request
+-- and whether conditions have been met.
+--
+-- /See:/ 'newEvaluation' smart constructor.
+data Evaluation = Evaluation'
+  { -- | The names of the approval rules that have not had their conditions met.
+    approvalRulesNotSatisfied :: Prelude.Maybe [Prelude.Text],
+    -- | The names of the approval rules that have had their conditions met.
+    approvalRulesSatisfied :: Prelude.Maybe [Prelude.Text],
+    -- | Whether the state of the pull request is approved.
+    approved :: Prelude.Maybe Prelude.Bool,
+    -- | Whether the approval rule requirements for the pull request have been
+    -- overridden and no longer need to be met.
+    overridden :: Prelude.Maybe Prelude.Bool
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Evaluation' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRulesNotSatisfied', 'evaluation_approvalRulesNotSatisfied' - The names of the approval rules that have not had their conditions met.
+--
+-- 'approvalRulesSatisfied', 'evaluation_approvalRulesSatisfied' - The names of the approval rules that have had their conditions met.
+--
+-- 'approved', 'evaluation_approved' - Whether the state of the pull request is approved.
+--
+-- 'overridden', 'evaluation_overridden' - Whether the approval rule requirements for the pull request have been
+-- overridden and no longer need to be met.
+newEvaluation ::
+  Evaluation
+newEvaluation =
+  Evaluation'
+    { approvalRulesNotSatisfied =
+        Prelude.Nothing,
+      approvalRulesSatisfied = Prelude.Nothing,
+      approved = Prelude.Nothing,
+      overridden = Prelude.Nothing
+    }
+
+-- | The names of the approval rules that have not had their conditions met.
+evaluation_approvalRulesNotSatisfied :: Lens.Lens' Evaluation (Prelude.Maybe [Prelude.Text])
+evaluation_approvalRulesNotSatisfied = Lens.lens (\Evaluation' {approvalRulesNotSatisfied} -> approvalRulesNotSatisfied) (\s@Evaluation' {} a -> s {approvalRulesNotSatisfied = a} :: Evaluation) Prelude.. Lens.mapping Lens.coerced
+
+-- | The names of the approval rules that have had their conditions met.
+evaluation_approvalRulesSatisfied :: Lens.Lens' Evaluation (Prelude.Maybe [Prelude.Text])
+evaluation_approvalRulesSatisfied = Lens.lens (\Evaluation' {approvalRulesSatisfied} -> approvalRulesSatisfied) (\s@Evaluation' {} a -> s {approvalRulesSatisfied = a} :: Evaluation) Prelude.. Lens.mapping Lens.coerced
+
+-- | Whether the state of the pull request is approved.
+evaluation_approved :: Lens.Lens' Evaluation (Prelude.Maybe Prelude.Bool)
+evaluation_approved = Lens.lens (\Evaluation' {approved} -> approved) (\s@Evaluation' {} a -> s {approved = a} :: Evaluation)
+
+-- | Whether the approval rule requirements for the pull request have been
+-- overridden and no longer need to be met.
+evaluation_overridden :: Lens.Lens' Evaluation (Prelude.Maybe Prelude.Bool)
+evaluation_overridden = Lens.lens (\Evaluation' {overridden} -> overridden) (\s@Evaluation' {} a -> s {overridden = a} :: Evaluation)
+
+instance Data.FromJSON Evaluation where
+  parseJSON =
+    Data.withObject
+      "Evaluation"
+      ( \x ->
+          Evaluation'
+            Prelude.<$> ( x
+                            Data..:? "approvalRulesNotSatisfied"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> ( x
+                            Data..:? "approvalRulesSatisfied"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "approved")
+            Prelude.<*> (x Data..:? "overridden")
+      )
+
+instance Prelude.Hashable Evaluation where
+  hashWithSalt _salt Evaluation' {..} =
+    _salt
+      `Prelude.hashWithSalt` approvalRulesNotSatisfied
+      `Prelude.hashWithSalt` approvalRulesSatisfied
+      `Prelude.hashWithSalt` approved
+      `Prelude.hashWithSalt` overridden
+
+instance Prelude.NFData Evaluation where
+  rnf Evaluation' {..} =
+    Prelude.rnf approvalRulesNotSatisfied
+      `Prelude.seq` Prelude.rnf approvalRulesSatisfied
+      `Prelude.seq` Prelude.rnf approved
+      `Prelude.seq` Prelude.rnf overridden
diff --git a/gen/Amazonka/CodeCommit/Types/File.hs b/gen/Amazonka/CodeCommit/Types/File.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/File.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.File
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.File where
+
+import Amazonka.CodeCommit.Types.FileModeTypeEnum
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a file in a repository.
+--
+-- /See:/ 'newFile' smart constructor.
+data File = File'
+  { -- | The fully qualified path to the file in the repository.
+    absolutePath :: Prelude.Maybe Prelude.Text,
+    -- | The blob ID that contains the file information.
+    blobId :: Prelude.Maybe Prelude.Text,
+    -- | The extrapolated file mode permissions for the file. Valid values
+    -- include EXECUTABLE and NORMAL.
+    fileMode :: Prelude.Maybe FileModeTypeEnum,
+    -- | The relative path of the file from the folder where the query
+    -- originated.
+    relativePath :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'File' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'absolutePath', 'file_absolutePath' - The fully qualified path to the file in the repository.
+--
+-- 'blobId', 'file_blobId' - The blob ID that contains the file information.
+--
+-- 'fileMode', 'file_fileMode' - The extrapolated file mode permissions for the file. Valid values
+-- include EXECUTABLE and NORMAL.
+--
+-- 'relativePath', 'file_relativePath' - The relative path of the file from the folder where the query
+-- originated.
+newFile ::
+  File
+newFile =
+  File'
+    { absolutePath = Prelude.Nothing,
+      blobId = Prelude.Nothing,
+      fileMode = Prelude.Nothing,
+      relativePath = Prelude.Nothing
+    }
+
+-- | The fully qualified path to the file in the repository.
+file_absolutePath :: Lens.Lens' File (Prelude.Maybe Prelude.Text)
+file_absolutePath = Lens.lens (\File' {absolutePath} -> absolutePath) (\s@File' {} a -> s {absolutePath = a} :: File)
+
+-- | The blob ID that contains the file information.
+file_blobId :: Lens.Lens' File (Prelude.Maybe Prelude.Text)
+file_blobId = Lens.lens (\File' {blobId} -> blobId) (\s@File' {} a -> s {blobId = a} :: File)
+
+-- | The extrapolated file mode permissions for the file. Valid values
+-- include EXECUTABLE and NORMAL.
+file_fileMode :: Lens.Lens' File (Prelude.Maybe FileModeTypeEnum)
+file_fileMode = Lens.lens (\File' {fileMode} -> fileMode) (\s@File' {} a -> s {fileMode = a} :: File)
+
+-- | The relative path of the file from the folder where the query
+-- originated.
+file_relativePath :: Lens.Lens' File (Prelude.Maybe Prelude.Text)
+file_relativePath = Lens.lens (\File' {relativePath} -> relativePath) (\s@File' {} a -> s {relativePath = a} :: File)
+
+instance Data.FromJSON File where
+  parseJSON =
+    Data.withObject
+      "File"
+      ( \x ->
+          File'
+            Prelude.<$> (x Data..:? "absolutePath")
+            Prelude.<*> (x Data..:? "blobId")
+            Prelude.<*> (x Data..:? "fileMode")
+            Prelude.<*> (x Data..:? "relativePath")
+      )
+
+instance Prelude.Hashable File where
+  hashWithSalt _salt File' {..} =
+    _salt
+      `Prelude.hashWithSalt` absolutePath
+      `Prelude.hashWithSalt` blobId
+      `Prelude.hashWithSalt` fileMode
+      `Prelude.hashWithSalt` relativePath
+
+instance Prelude.NFData File where
+  rnf File' {..} =
+    Prelude.rnf absolutePath
+      `Prelude.seq` Prelude.rnf blobId
+      `Prelude.seq` Prelude.rnf fileMode
+      `Prelude.seq` Prelude.rnf relativePath
diff --git a/gen/Amazonka/CodeCommit/Types/FileMetadata.hs b/gen/Amazonka/CodeCommit/Types/FileMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/FileMetadata.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.CodeCommit.Types.FileMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.FileMetadata where
+
+import Amazonka.CodeCommit.Types.FileModeTypeEnum
+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 file to be added, updated, or deleted as part of a commit.
+--
+-- /See:/ 'newFileMetadata' smart constructor.
+data FileMetadata = FileMetadata'
+  { -- | The full path to the file to be added or updated, including the name of
+    -- the file.
+    absolutePath :: Prelude.Maybe Prelude.Text,
+    -- | The blob ID that contains the file information.
+    blobId :: Prelude.Maybe Prelude.Text,
+    -- | The extrapolated file mode permissions for the file. Valid values
+    -- include EXECUTABLE and NORMAL.
+    fileMode :: Prelude.Maybe FileModeTypeEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'FileMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'absolutePath', 'fileMetadata_absolutePath' - The full path to the file to be added or updated, including the name of
+-- the file.
+--
+-- 'blobId', 'fileMetadata_blobId' - The blob ID that contains the file information.
+--
+-- 'fileMode', 'fileMetadata_fileMode' - The extrapolated file mode permissions for the file. Valid values
+-- include EXECUTABLE and NORMAL.
+newFileMetadata ::
+  FileMetadata
+newFileMetadata =
+  FileMetadata'
+    { absolutePath = Prelude.Nothing,
+      blobId = Prelude.Nothing,
+      fileMode = Prelude.Nothing
+    }
+
+-- | The full path to the file to be added or updated, including the name of
+-- the file.
+fileMetadata_absolutePath :: Lens.Lens' FileMetadata (Prelude.Maybe Prelude.Text)
+fileMetadata_absolutePath = Lens.lens (\FileMetadata' {absolutePath} -> absolutePath) (\s@FileMetadata' {} a -> s {absolutePath = a} :: FileMetadata)
+
+-- | The blob ID that contains the file information.
+fileMetadata_blobId :: Lens.Lens' FileMetadata (Prelude.Maybe Prelude.Text)
+fileMetadata_blobId = Lens.lens (\FileMetadata' {blobId} -> blobId) (\s@FileMetadata' {} a -> s {blobId = a} :: FileMetadata)
+
+-- | The extrapolated file mode permissions for the file. Valid values
+-- include EXECUTABLE and NORMAL.
+fileMetadata_fileMode :: Lens.Lens' FileMetadata (Prelude.Maybe FileModeTypeEnum)
+fileMetadata_fileMode = Lens.lens (\FileMetadata' {fileMode} -> fileMode) (\s@FileMetadata' {} a -> s {fileMode = a} :: FileMetadata)
+
+instance Data.FromJSON FileMetadata where
+  parseJSON =
+    Data.withObject
+      "FileMetadata"
+      ( \x ->
+          FileMetadata'
+            Prelude.<$> (x Data..:? "absolutePath")
+            Prelude.<*> (x Data..:? "blobId")
+            Prelude.<*> (x Data..:? "fileMode")
+      )
+
+instance Prelude.Hashable FileMetadata where
+  hashWithSalt _salt FileMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` absolutePath
+      `Prelude.hashWithSalt` blobId
+      `Prelude.hashWithSalt` fileMode
+
+instance Prelude.NFData FileMetadata where
+  rnf FileMetadata' {..} =
+    Prelude.rnf absolutePath
+      `Prelude.seq` Prelude.rnf blobId
+      `Prelude.seq` Prelude.rnf fileMode
diff --git a/gen/Amazonka/CodeCommit/Types/FileModeTypeEnum.hs b/gen/Amazonka/CodeCommit/Types/FileModeTypeEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/FileModeTypeEnum.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.FileModeTypeEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.FileModeTypeEnum
+  ( FileModeTypeEnum
+      ( ..,
+        FileModeTypeEnum_EXECUTABLE,
+        FileModeTypeEnum_NORMAL,
+        FileModeTypeEnum_SYMLINK
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype FileModeTypeEnum = FileModeTypeEnum'
+  { fromFileModeTypeEnum ::
+      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 FileModeTypeEnum_EXECUTABLE :: FileModeTypeEnum
+pattern FileModeTypeEnum_EXECUTABLE = FileModeTypeEnum' "EXECUTABLE"
+
+pattern FileModeTypeEnum_NORMAL :: FileModeTypeEnum
+pattern FileModeTypeEnum_NORMAL = FileModeTypeEnum' "NORMAL"
+
+pattern FileModeTypeEnum_SYMLINK :: FileModeTypeEnum
+pattern FileModeTypeEnum_SYMLINK = FileModeTypeEnum' "SYMLINK"
+
+{-# COMPLETE
+  FileModeTypeEnum_EXECUTABLE,
+  FileModeTypeEnum_NORMAL,
+  FileModeTypeEnum_SYMLINK,
+  FileModeTypeEnum'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/FileModes.hs b/gen/Amazonka/CodeCommit/Types/FileModes.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/FileModes.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.FileModes
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.FileModes where
+
+import Amazonka.CodeCommit.Types.FileModeTypeEnum
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about file modes in a merge or pull request.
+--
+-- /See:/ 'newFileModes' smart constructor.
+data FileModes = FileModes'
+  { -- | The file mode of a file in the base of a merge or pull request.
+    base :: Prelude.Maybe FileModeTypeEnum,
+    -- | The file mode of a file in the destination of a merge or pull request.
+    destination :: Prelude.Maybe FileModeTypeEnum,
+    -- | The file mode of a file in the source of a merge or pull request.
+    source :: Prelude.Maybe FileModeTypeEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'FileModes' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'base', 'fileModes_base' - The file mode of a file in the base of a merge or pull request.
+--
+-- 'destination', 'fileModes_destination' - The file mode of a file in the destination of a merge or pull request.
+--
+-- 'source', 'fileModes_source' - The file mode of a file in the source of a merge or pull request.
+newFileModes ::
+  FileModes
+newFileModes =
+  FileModes'
+    { base = Prelude.Nothing,
+      destination = Prelude.Nothing,
+      source = Prelude.Nothing
+    }
+
+-- | The file mode of a file in the base of a merge or pull request.
+fileModes_base :: Lens.Lens' FileModes (Prelude.Maybe FileModeTypeEnum)
+fileModes_base = Lens.lens (\FileModes' {base} -> base) (\s@FileModes' {} a -> s {base = a} :: FileModes)
+
+-- | The file mode of a file in the destination of a merge or pull request.
+fileModes_destination :: Lens.Lens' FileModes (Prelude.Maybe FileModeTypeEnum)
+fileModes_destination = Lens.lens (\FileModes' {destination} -> destination) (\s@FileModes' {} a -> s {destination = a} :: FileModes)
+
+-- | The file mode of a file in the source of a merge or pull request.
+fileModes_source :: Lens.Lens' FileModes (Prelude.Maybe FileModeTypeEnum)
+fileModes_source = Lens.lens (\FileModes' {source} -> source) (\s@FileModes' {} a -> s {source = a} :: FileModes)
+
+instance Data.FromJSON FileModes where
+  parseJSON =
+    Data.withObject
+      "FileModes"
+      ( \x ->
+          FileModes'
+            Prelude.<$> (x Data..:? "base")
+            Prelude.<*> (x Data..:? "destination")
+            Prelude.<*> (x Data..:? "source")
+      )
+
+instance Prelude.Hashable FileModes where
+  hashWithSalt _salt FileModes' {..} =
+    _salt
+      `Prelude.hashWithSalt` base
+      `Prelude.hashWithSalt` destination
+      `Prelude.hashWithSalt` source
+
+instance Prelude.NFData FileModes where
+  rnf FileModes' {..} =
+    Prelude.rnf base
+      `Prelude.seq` Prelude.rnf destination
+      `Prelude.seq` Prelude.rnf source
diff --git a/gen/Amazonka/CodeCommit/Types/FileSizes.hs b/gen/Amazonka/CodeCommit/Types/FileSizes.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/FileSizes.hs
@@ -0,0 +1,96 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.FileSizes
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.FileSizes where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about the size of files in a merge or pull request.
+--
+-- /See:/ 'newFileSizes' smart constructor.
+data FileSizes = FileSizes'
+  { -- | The size of a file in the base of a merge or pull request.
+    base :: Prelude.Maybe Prelude.Integer,
+    -- | The size of a file in the destination of a merge or pull request.
+    destination :: Prelude.Maybe Prelude.Integer,
+    -- | The size of a file in the source of a merge or pull request.
+    source :: Prelude.Maybe Prelude.Integer
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'FileSizes' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'base', 'fileSizes_base' - The size of a file in the base of a merge or pull request.
+--
+-- 'destination', 'fileSizes_destination' - The size of a file in the destination of a merge or pull request.
+--
+-- 'source', 'fileSizes_source' - The size of a file in the source of a merge or pull request.
+newFileSizes ::
+  FileSizes
+newFileSizes =
+  FileSizes'
+    { base = Prelude.Nothing,
+      destination = Prelude.Nothing,
+      source = Prelude.Nothing
+    }
+
+-- | The size of a file in the base of a merge or pull request.
+fileSizes_base :: Lens.Lens' FileSizes (Prelude.Maybe Prelude.Integer)
+fileSizes_base = Lens.lens (\FileSizes' {base} -> base) (\s@FileSizes' {} a -> s {base = a} :: FileSizes)
+
+-- | The size of a file in the destination of a merge or pull request.
+fileSizes_destination :: Lens.Lens' FileSizes (Prelude.Maybe Prelude.Integer)
+fileSizes_destination = Lens.lens (\FileSizes' {destination} -> destination) (\s@FileSizes' {} a -> s {destination = a} :: FileSizes)
+
+-- | The size of a file in the source of a merge or pull request.
+fileSizes_source :: Lens.Lens' FileSizes (Prelude.Maybe Prelude.Integer)
+fileSizes_source = Lens.lens (\FileSizes' {source} -> source) (\s@FileSizes' {} a -> s {source = a} :: FileSizes)
+
+instance Data.FromJSON FileSizes where
+  parseJSON =
+    Data.withObject
+      "FileSizes"
+      ( \x ->
+          FileSizes'
+            Prelude.<$> (x Data..:? "base")
+            Prelude.<*> (x Data..:? "destination")
+            Prelude.<*> (x Data..:? "source")
+      )
+
+instance Prelude.Hashable FileSizes where
+  hashWithSalt _salt FileSizes' {..} =
+    _salt
+      `Prelude.hashWithSalt` base
+      `Prelude.hashWithSalt` destination
+      `Prelude.hashWithSalt` source
+
+instance Prelude.NFData FileSizes where
+  rnf FileSizes' {..} =
+    Prelude.rnf base
+      `Prelude.seq` Prelude.rnf destination
+      `Prelude.seq` Prelude.rnf source
diff --git a/gen/Amazonka/CodeCommit/Types/Folder.hs b/gen/Amazonka/CodeCommit/Types/Folder.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/Folder.hs
@@ -0,0 +1,102 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.Folder
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.Folder where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a folder in a repository.
+--
+-- /See:/ 'newFolder' smart constructor.
+data Folder = Folder'
+  { -- | The fully qualified path of the folder in the repository.
+    absolutePath :: Prelude.Maybe Prelude.Text,
+    -- | The relative path of the specified folder from the folder where the
+    -- query originated.
+    relativePath :: Prelude.Maybe Prelude.Text,
+    -- | The full SHA-1 pointer of the tree information for the commit that
+    -- contains the folder.
+    treeId :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Folder' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'absolutePath', 'folder_absolutePath' - The fully qualified path of the folder in the repository.
+--
+-- 'relativePath', 'folder_relativePath' - The relative path of the specified folder from the folder where the
+-- query originated.
+--
+-- 'treeId', 'folder_treeId' - The full SHA-1 pointer of the tree information for the commit that
+-- contains the folder.
+newFolder ::
+  Folder
+newFolder =
+  Folder'
+    { absolutePath = Prelude.Nothing,
+      relativePath = Prelude.Nothing,
+      treeId = Prelude.Nothing
+    }
+
+-- | The fully qualified path of the folder in the repository.
+folder_absolutePath :: Lens.Lens' Folder (Prelude.Maybe Prelude.Text)
+folder_absolutePath = Lens.lens (\Folder' {absolutePath} -> absolutePath) (\s@Folder' {} a -> s {absolutePath = a} :: Folder)
+
+-- | The relative path of the specified folder from the folder where the
+-- query originated.
+folder_relativePath :: Lens.Lens' Folder (Prelude.Maybe Prelude.Text)
+folder_relativePath = Lens.lens (\Folder' {relativePath} -> relativePath) (\s@Folder' {} a -> s {relativePath = a} :: Folder)
+
+-- | The full SHA-1 pointer of the tree information for the commit that
+-- contains the folder.
+folder_treeId :: Lens.Lens' Folder (Prelude.Maybe Prelude.Text)
+folder_treeId = Lens.lens (\Folder' {treeId} -> treeId) (\s@Folder' {} a -> s {treeId = a} :: Folder)
+
+instance Data.FromJSON Folder where
+  parseJSON =
+    Data.withObject
+      "Folder"
+      ( \x ->
+          Folder'
+            Prelude.<$> (x Data..:? "absolutePath")
+            Prelude.<*> (x Data..:? "relativePath")
+            Prelude.<*> (x Data..:? "treeId")
+      )
+
+instance Prelude.Hashable Folder where
+  hashWithSalt _salt Folder' {..} =
+    _salt
+      `Prelude.hashWithSalt` absolutePath
+      `Prelude.hashWithSalt` relativePath
+      `Prelude.hashWithSalt` treeId
+
+instance Prelude.NFData Folder where
+  rnf Folder' {..} =
+    Prelude.rnf absolutePath
+      `Prelude.seq` Prelude.rnf relativePath
+      `Prelude.seq` Prelude.rnf treeId
diff --git a/gen/Amazonka/CodeCommit/Types/IsBinaryFile.hs b/gen/Amazonka/CodeCommit/Types/IsBinaryFile.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/IsBinaryFile.hs
@@ -0,0 +1,106 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.IsBinaryFile
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.IsBinaryFile where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about whether a file is binary or textual in a merge or pull
+-- request operation.
+--
+-- /See:/ 'newIsBinaryFile' smart constructor.
+data IsBinaryFile = IsBinaryFile'
+  { -- | The binary or non-binary status of a file in the base of a merge or pull
+    -- request.
+    base :: Prelude.Maybe Prelude.Bool,
+    -- | The binary or non-binary status of a file in the destination of a merge
+    -- or pull request.
+    destination :: Prelude.Maybe Prelude.Bool,
+    -- | The binary or non-binary status of file in the source of a merge or pull
+    -- request.
+    source :: Prelude.Maybe Prelude.Bool
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'IsBinaryFile' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'base', 'isBinaryFile_base' - The binary or non-binary status of a file in the base of a merge or pull
+-- request.
+--
+-- 'destination', 'isBinaryFile_destination' - The binary or non-binary status of a file in the destination of a merge
+-- or pull request.
+--
+-- 'source', 'isBinaryFile_source' - The binary or non-binary status of file in the source of a merge or pull
+-- request.
+newIsBinaryFile ::
+  IsBinaryFile
+newIsBinaryFile =
+  IsBinaryFile'
+    { base = Prelude.Nothing,
+      destination = Prelude.Nothing,
+      source = Prelude.Nothing
+    }
+
+-- | The binary or non-binary status of a file in the base of a merge or pull
+-- request.
+isBinaryFile_base :: Lens.Lens' IsBinaryFile (Prelude.Maybe Prelude.Bool)
+isBinaryFile_base = Lens.lens (\IsBinaryFile' {base} -> base) (\s@IsBinaryFile' {} a -> s {base = a} :: IsBinaryFile)
+
+-- | The binary or non-binary status of a file in the destination of a merge
+-- or pull request.
+isBinaryFile_destination :: Lens.Lens' IsBinaryFile (Prelude.Maybe Prelude.Bool)
+isBinaryFile_destination = Lens.lens (\IsBinaryFile' {destination} -> destination) (\s@IsBinaryFile' {} a -> s {destination = a} :: IsBinaryFile)
+
+-- | The binary or non-binary status of file in the source of a merge or pull
+-- request.
+isBinaryFile_source :: Lens.Lens' IsBinaryFile (Prelude.Maybe Prelude.Bool)
+isBinaryFile_source = Lens.lens (\IsBinaryFile' {source} -> source) (\s@IsBinaryFile' {} a -> s {source = a} :: IsBinaryFile)
+
+instance Data.FromJSON IsBinaryFile where
+  parseJSON =
+    Data.withObject
+      "IsBinaryFile"
+      ( \x ->
+          IsBinaryFile'
+            Prelude.<$> (x Data..:? "base")
+            Prelude.<*> (x Data..:? "destination")
+            Prelude.<*> (x Data..:? "source")
+      )
+
+instance Prelude.Hashable IsBinaryFile where
+  hashWithSalt _salt IsBinaryFile' {..} =
+    _salt
+      `Prelude.hashWithSalt` base
+      `Prelude.hashWithSalt` destination
+      `Prelude.hashWithSalt` source
+
+instance Prelude.NFData IsBinaryFile where
+  rnf IsBinaryFile' {..} =
+    Prelude.rnf base
+      `Prelude.seq` Prelude.rnf destination
+      `Prelude.seq` Prelude.rnf source
diff --git a/gen/Amazonka/CodeCommit/Types/Location.hs b/gen/Amazonka/CodeCommit/Types/Location.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/Location.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.Location
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.Location where
+
+import Amazonka.CodeCommit.Types.RelativeFileVersionEnum
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about the location of a change or comment in the
+-- comparison between two commits or a pull request.
+--
+-- /See:/ 'newLocation' smart constructor.
+data Location = Location'
+  { -- | The name of the file being compared, including its extension and
+    -- subdirectory, if any.
+    filePath :: Prelude.Maybe Prelude.Text,
+    -- | The position of a change in a compared file, in line number format.
+    filePosition :: Prelude.Maybe Prelude.Integer,
+    -- | In a comparison of commits or a pull request, whether the change is in
+    -- the before or after of that comparison.
+    relativeFileVersion :: Prelude.Maybe RelativeFileVersionEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Location' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'filePath', 'location_filePath' - The name of the file being compared, including its extension and
+-- subdirectory, if any.
+--
+-- 'filePosition', 'location_filePosition' - The position of a change in a compared file, in line number format.
+--
+-- 'relativeFileVersion', 'location_relativeFileVersion' - In a comparison of commits or a pull request, whether the change is in
+-- the before or after of that comparison.
+newLocation ::
+  Location
+newLocation =
+  Location'
+    { filePath = Prelude.Nothing,
+      filePosition = Prelude.Nothing,
+      relativeFileVersion = Prelude.Nothing
+    }
+
+-- | The name of the file being compared, including its extension and
+-- subdirectory, if any.
+location_filePath :: Lens.Lens' Location (Prelude.Maybe Prelude.Text)
+location_filePath = Lens.lens (\Location' {filePath} -> filePath) (\s@Location' {} a -> s {filePath = a} :: Location)
+
+-- | The position of a change in a compared file, in line number format.
+location_filePosition :: Lens.Lens' Location (Prelude.Maybe Prelude.Integer)
+location_filePosition = Lens.lens (\Location' {filePosition} -> filePosition) (\s@Location' {} a -> s {filePosition = a} :: Location)
+
+-- | In a comparison of commits or a pull request, whether the change is in
+-- the before or after of that comparison.
+location_relativeFileVersion :: Lens.Lens' Location (Prelude.Maybe RelativeFileVersionEnum)
+location_relativeFileVersion = Lens.lens (\Location' {relativeFileVersion} -> relativeFileVersion) (\s@Location' {} a -> s {relativeFileVersion = a} :: Location)
+
+instance Data.FromJSON Location where
+  parseJSON =
+    Data.withObject
+      "Location"
+      ( \x ->
+          Location'
+            Prelude.<$> (x Data..:? "filePath")
+            Prelude.<*> (x Data..:? "filePosition")
+            Prelude.<*> (x Data..:? "relativeFileVersion")
+      )
+
+instance Prelude.Hashable Location where
+  hashWithSalt _salt Location' {..} =
+    _salt
+      `Prelude.hashWithSalt` filePath
+      `Prelude.hashWithSalt` filePosition
+      `Prelude.hashWithSalt` relativeFileVersion
+
+instance Prelude.NFData Location where
+  rnf Location' {..} =
+    Prelude.rnf filePath
+      `Prelude.seq` Prelude.rnf filePosition
+      `Prelude.seq` Prelude.rnf relativeFileVersion
+
+instance Data.ToJSON Location where
+  toJSON Location' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("filePath" Data..=) Prelude.<$> filePath,
+            ("filePosition" Data..=) Prelude.<$> filePosition,
+            ("relativeFileVersion" Data..=)
+              Prelude.<$> relativeFileVersion
+          ]
+      )
diff --git a/gen/Amazonka/CodeCommit/Types/MergeHunk.hs b/gen/Amazonka/CodeCommit/Types/MergeHunk.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/MergeHunk.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.MergeHunk
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.MergeHunk where
+
+import Amazonka.CodeCommit.Types.MergeHunkDetail
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about merge hunks in a merge or pull request operation.
+--
+-- /See:/ 'newMergeHunk' smart constructor.
+data MergeHunk = MergeHunk'
+  { -- | Information about the merge hunk in the base of a merge or pull request.
+    base :: Prelude.Maybe MergeHunkDetail,
+    -- | Information about the merge hunk in the destination of a merge or pull
+    -- request.
+    destination :: Prelude.Maybe MergeHunkDetail,
+    -- | A Boolean value indicating whether a combination of hunks contains a
+    -- conflict. Conflicts occur when the same file or the same lines in a file
+    -- were modified in both the source and destination of a merge or pull
+    -- request. Valid values include true, false, and null. True when the hunk
+    -- represents a conflict and one or more files contains a line conflict.
+    -- File mode conflicts in a merge do not set this to true.
+    isConflict :: Prelude.Maybe Prelude.Bool,
+    -- | Information about the merge hunk in the source of a merge or pull
+    -- request.
+    source :: Prelude.Maybe MergeHunkDetail
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergeHunk' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'base', 'mergeHunk_base' - Information about the merge hunk in the base of a merge or pull request.
+--
+-- 'destination', 'mergeHunk_destination' - Information about the merge hunk in the destination of a merge or pull
+-- request.
+--
+-- 'isConflict', 'mergeHunk_isConflict' - A Boolean value indicating whether a combination of hunks contains a
+-- conflict. Conflicts occur when the same file or the same lines in a file
+-- were modified in both the source and destination of a merge or pull
+-- request. Valid values include true, false, and null. True when the hunk
+-- represents a conflict and one or more files contains a line conflict.
+-- File mode conflicts in a merge do not set this to true.
+--
+-- 'source', 'mergeHunk_source' - Information about the merge hunk in the source of a merge or pull
+-- request.
+newMergeHunk ::
+  MergeHunk
+newMergeHunk =
+  MergeHunk'
+    { base = Prelude.Nothing,
+      destination = Prelude.Nothing,
+      isConflict = Prelude.Nothing,
+      source = Prelude.Nothing
+    }
+
+-- | Information about the merge hunk in the base of a merge or pull request.
+mergeHunk_base :: Lens.Lens' MergeHunk (Prelude.Maybe MergeHunkDetail)
+mergeHunk_base = Lens.lens (\MergeHunk' {base} -> base) (\s@MergeHunk' {} a -> s {base = a} :: MergeHunk)
+
+-- | Information about the merge hunk in the destination of a merge or pull
+-- request.
+mergeHunk_destination :: Lens.Lens' MergeHunk (Prelude.Maybe MergeHunkDetail)
+mergeHunk_destination = Lens.lens (\MergeHunk' {destination} -> destination) (\s@MergeHunk' {} a -> s {destination = a} :: MergeHunk)
+
+-- | A Boolean value indicating whether a combination of hunks contains a
+-- conflict. Conflicts occur when the same file or the same lines in a file
+-- were modified in both the source and destination of a merge or pull
+-- request. Valid values include true, false, and null. True when the hunk
+-- represents a conflict and one or more files contains a line conflict.
+-- File mode conflicts in a merge do not set this to true.
+mergeHunk_isConflict :: Lens.Lens' MergeHunk (Prelude.Maybe Prelude.Bool)
+mergeHunk_isConflict = Lens.lens (\MergeHunk' {isConflict} -> isConflict) (\s@MergeHunk' {} a -> s {isConflict = a} :: MergeHunk)
+
+-- | Information about the merge hunk in the source of a merge or pull
+-- request.
+mergeHunk_source :: Lens.Lens' MergeHunk (Prelude.Maybe MergeHunkDetail)
+mergeHunk_source = Lens.lens (\MergeHunk' {source} -> source) (\s@MergeHunk' {} a -> s {source = a} :: MergeHunk)
+
+instance Data.FromJSON MergeHunk where
+  parseJSON =
+    Data.withObject
+      "MergeHunk"
+      ( \x ->
+          MergeHunk'
+            Prelude.<$> (x Data..:? "base")
+            Prelude.<*> (x Data..:? "destination")
+            Prelude.<*> (x Data..:? "isConflict")
+            Prelude.<*> (x Data..:? "source")
+      )
+
+instance Prelude.Hashable MergeHunk where
+  hashWithSalt _salt MergeHunk' {..} =
+    _salt
+      `Prelude.hashWithSalt` base
+      `Prelude.hashWithSalt` destination
+      `Prelude.hashWithSalt` isConflict
+      `Prelude.hashWithSalt` source
+
+instance Prelude.NFData MergeHunk where
+  rnf MergeHunk' {..} =
+    Prelude.rnf base
+      `Prelude.seq` Prelude.rnf destination
+      `Prelude.seq` Prelude.rnf isConflict
+      `Prelude.seq` Prelude.rnf source
diff --git a/gen/Amazonka/CodeCommit/Types/MergeHunkDetail.hs b/gen/Amazonka/CodeCommit/Types/MergeHunkDetail.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/MergeHunkDetail.hs
@@ -0,0 +1,100 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.MergeHunkDetail
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.MergeHunkDetail where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about the details of a merge hunk that contains a conflict
+-- in a merge or pull request operation.
+--
+-- /See:/ 'newMergeHunkDetail' smart constructor.
+data MergeHunkDetail = MergeHunkDetail'
+  { -- | The end position of the hunk in the merge result.
+    endLine :: Prelude.Maybe Prelude.Int,
+    -- | The base-64 encoded content of the hunk merged region that might contain
+    -- a conflict.
+    hunkContent :: Prelude.Maybe Prelude.Text,
+    -- | The start position of the hunk in the merge result.
+    startLine :: Prelude.Maybe Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergeHunkDetail' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'endLine', 'mergeHunkDetail_endLine' - The end position of the hunk in the merge result.
+--
+-- 'hunkContent', 'mergeHunkDetail_hunkContent' - The base-64 encoded content of the hunk merged region that might contain
+-- a conflict.
+--
+-- 'startLine', 'mergeHunkDetail_startLine' - The start position of the hunk in the merge result.
+newMergeHunkDetail ::
+  MergeHunkDetail
+newMergeHunkDetail =
+  MergeHunkDetail'
+    { endLine = Prelude.Nothing,
+      hunkContent = Prelude.Nothing,
+      startLine = Prelude.Nothing
+    }
+
+-- | The end position of the hunk in the merge result.
+mergeHunkDetail_endLine :: Lens.Lens' MergeHunkDetail (Prelude.Maybe Prelude.Int)
+mergeHunkDetail_endLine = Lens.lens (\MergeHunkDetail' {endLine} -> endLine) (\s@MergeHunkDetail' {} a -> s {endLine = a} :: MergeHunkDetail)
+
+-- | The base-64 encoded content of the hunk merged region that might contain
+-- a conflict.
+mergeHunkDetail_hunkContent :: Lens.Lens' MergeHunkDetail (Prelude.Maybe Prelude.Text)
+mergeHunkDetail_hunkContent = Lens.lens (\MergeHunkDetail' {hunkContent} -> hunkContent) (\s@MergeHunkDetail' {} a -> s {hunkContent = a} :: MergeHunkDetail)
+
+-- | The start position of the hunk in the merge result.
+mergeHunkDetail_startLine :: Lens.Lens' MergeHunkDetail (Prelude.Maybe Prelude.Int)
+mergeHunkDetail_startLine = Lens.lens (\MergeHunkDetail' {startLine} -> startLine) (\s@MergeHunkDetail' {} a -> s {startLine = a} :: MergeHunkDetail)
+
+instance Data.FromJSON MergeHunkDetail where
+  parseJSON =
+    Data.withObject
+      "MergeHunkDetail"
+      ( \x ->
+          MergeHunkDetail'
+            Prelude.<$> (x Data..:? "endLine")
+            Prelude.<*> (x Data..:? "hunkContent")
+            Prelude.<*> (x Data..:? "startLine")
+      )
+
+instance Prelude.Hashable MergeHunkDetail where
+  hashWithSalt _salt MergeHunkDetail' {..} =
+    _salt
+      `Prelude.hashWithSalt` endLine
+      `Prelude.hashWithSalt` hunkContent
+      `Prelude.hashWithSalt` startLine
+
+instance Prelude.NFData MergeHunkDetail where
+  rnf MergeHunkDetail' {..} =
+    Prelude.rnf endLine
+      `Prelude.seq` Prelude.rnf hunkContent
+      `Prelude.seq` Prelude.rnf startLine
diff --git a/gen/Amazonka/CodeCommit/Types/MergeMetadata.hs b/gen/Amazonka/CodeCommit/Types/MergeMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/MergeMetadata.hs
@@ -0,0 +1,110 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.MergeMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.MergeMetadata where
+
+import Amazonka.CodeCommit.Types.MergeOptionTypeEnum
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a merge or potential merge between a source
+-- reference and a destination reference in a pull request.
+--
+-- /See:/ 'newMergeMetadata' smart constructor.
+data MergeMetadata = MergeMetadata'
+  { -- | A Boolean value indicating whether the merge has been made.
+    isMerged :: Prelude.Maybe Prelude.Bool,
+    -- | The commit ID for the merge commit, if any.
+    mergeCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The merge strategy used in the merge.
+    mergeOption :: Prelude.Maybe MergeOptionTypeEnum,
+    -- | The Amazon Resource Name (ARN) of the user who merged the branches.
+    mergedBy :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergeMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'isMerged', 'mergeMetadata_isMerged' - A Boolean value indicating whether the merge has been made.
+--
+-- 'mergeCommitId', 'mergeMetadata_mergeCommitId' - The commit ID for the merge commit, if any.
+--
+-- 'mergeOption', 'mergeMetadata_mergeOption' - The merge strategy used in the merge.
+--
+-- 'mergedBy', 'mergeMetadata_mergedBy' - The Amazon Resource Name (ARN) of the user who merged the branches.
+newMergeMetadata ::
+  MergeMetadata
+newMergeMetadata =
+  MergeMetadata'
+    { isMerged = Prelude.Nothing,
+      mergeCommitId = Prelude.Nothing,
+      mergeOption = Prelude.Nothing,
+      mergedBy = Prelude.Nothing
+    }
+
+-- | A Boolean value indicating whether the merge has been made.
+mergeMetadata_isMerged :: Lens.Lens' MergeMetadata (Prelude.Maybe Prelude.Bool)
+mergeMetadata_isMerged = Lens.lens (\MergeMetadata' {isMerged} -> isMerged) (\s@MergeMetadata' {} a -> s {isMerged = a} :: MergeMetadata)
+
+-- | The commit ID for the merge commit, if any.
+mergeMetadata_mergeCommitId :: Lens.Lens' MergeMetadata (Prelude.Maybe Prelude.Text)
+mergeMetadata_mergeCommitId = Lens.lens (\MergeMetadata' {mergeCommitId} -> mergeCommitId) (\s@MergeMetadata' {} a -> s {mergeCommitId = a} :: MergeMetadata)
+
+-- | The merge strategy used in the merge.
+mergeMetadata_mergeOption :: Lens.Lens' MergeMetadata (Prelude.Maybe MergeOptionTypeEnum)
+mergeMetadata_mergeOption = Lens.lens (\MergeMetadata' {mergeOption} -> mergeOption) (\s@MergeMetadata' {} a -> s {mergeOption = a} :: MergeMetadata)
+
+-- | The Amazon Resource Name (ARN) of the user who merged the branches.
+mergeMetadata_mergedBy :: Lens.Lens' MergeMetadata (Prelude.Maybe Prelude.Text)
+mergeMetadata_mergedBy = Lens.lens (\MergeMetadata' {mergedBy} -> mergedBy) (\s@MergeMetadata' {} a -> s {mergedBy = a} :: MergeMetadata)
+
+instance Data.FromJSON MergeMetadata where
+  parseJSON =
+    Data.withObject
+      "MergeMetadata"
+      ( \x ->
+          MergeMetadata'
+            Prelude.<$> (x Data..:? "isMerged")
+            Prelude.<*> (x Data..:? "mergeCommitId")
+            Prelude.<*> (x Data..:? "mergeOption")
+            Prelude.<*> (x Data..:? "mergedBy")
+      )
+
+instance Prelude.Hashable MergeMetadata where
+  hashWithSalt _salt MergeMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` isMerged
+      `Prelude.hashWithSalt` mergeCommitId
+      `Prelude.hashWithSalt` mergeOption
+      `Prelude.hashWithSalt` mergedBy
+
+instance Prelude.NFData MergeMetadata where
+  rnf MergeMetadata' {..} =
+    Prelude.rnf isMerged
+      `Prelude.seq` Prelude.rnf mergeCommitId
+      `Prelude.seq` Prelude.rnf mergeOption
+      `Prelude.seq` Prelude.rnf mergedBy
diff --git a/gen/Amazonka/CodeCommit/Types/MergeOperations.hs b/gen/Amazonka/CodeCommit/Types/MergeOperations.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/MergeOperations.hs
@@ -0,0 +1,88 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.MergeOperations
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.MergeOperations where
+
+import Amazonka.CodeCommit.Types.ChangeTypeEnum
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about the file operation conflicts in a merge operation.
+--
+-- /See:/ 'newMergeOperations' smart constructor.
+data MergeOperations = MergeOperations'
+  { -- | The operation on a file in the destination of a merge or pull request.
+    destination :: Prelude.Maybe ChangeTypeEnum,
+    -- | The operation (add, modify, or delete) on a file in the source of a
+    -- merge or pull request.
+    source :: Prelude.Maybe ChangeTypeEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'MergeOperations' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'destination', 'mergeOperations_destination' - The operation on a file in the destination of a merge or pull request.
+--
+-- 'source', 'mergeOperations_source' - The operation (add, modify, or delete) on a file in the source of a
+-- merge or pull request.
+newMergeOperations ::
+  MergeOperations
+newMergeOperations =
+  MergeOperations'
+    { destination = Prelude.Nothing,
+      source = Prelude.Nothing
+    }
+
+-- | The operation on a file in the destination of a merge or pull request.
+mergeOperations_destination :: Lens.Lens' MergeOperations (Prelude.Maybe ChangeTypeEnum)
+mergeOperations_destination = Lens.lens (\MergeOperations' {destination} -> destination) (\s@MergeOperations' {} a -> s {destination = a} :: MergeOperations)
+
+-- | The operation (add, modify, or delete) on a file in the source of a
+-- merge or pull request.
+mergeOperations_source :: Lens.Lens' MergeOperations (Prelude.Maybe ChangeTypeEnum)
+mergeOperations_source = Lens.lens (\MergeOperations' {source} -> source) (\s@MergeOperations' {} a -> s {source = a} :: MergeOperations)
+
+instance Data.FromJSON MergeOperations where
+  parseJSON =
+    Data.withObject
+      "MergeOperations"
+      ( \x ->
+          MergeOperations'
+            Prelude.<$> (x Data..:? "destination")
+            Prelude.<*> (x Data..:? "source")
+      )
+
+instance Prelude.Hashable MergeOperations where
+  hashWithSalt _salt MergeOperations' {..} =
+    _salt
+      `Prelude.hashWithSalt` destination
+      `Prelude.hashWithSalt` source
+
+instance Prelude.NFData MergeOperations where
+  rnf MergeOperations' {..} =
+    Prelude.rnf destination
+      `Prelude.seq` Prelude.rnf source
diff --git a/gen/Amazonka/CodeCommit/Types/MergeOptionTypeEnum.hs b/gen/Amazonka/CodeCommit/Types/MergeOptionTypeEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/MergeOptionTypeEnum.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.MergeOptionTypeEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.MergeOptionTypeEnum
+  ( MergeOptionTypeEnum
+      ( ..,
+        MergeOptionTypeEnum_FAST_FORWARD_MERGE,
+        MergeOptionTypeEnum_SQUASH_MERGE,
+        MergeOptionTypeEnum_THREE_WAY_MERGE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype MergeOptionTypeEnum = MergeOptionTypeEnum'
+  { fromMergeOptionTypeEnum ::
+      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 MergeOptionTypeEnum_FAST_FORWARD_MERGE :: MergeOptionTypeEnum
+pattern MergeOptionTypeEnum_FAST_FORWARD_MERGE = MergeOptionTypeEnum' "FAST_FORWARD_MERGE"
+
+pattern MergeOptionTypeEnum_SQUASH_MERGE :: MergeOptionTypeEnum
+pattern MergeOptionTypeEnum_SQUASH_MERGE = MergeOptionTypeEnum' "SQUASH_MERGE"
+
+pattern MergeOptionTypeEnum_THREE_WAY_MERGE :: MergeOptionTypeEnum
+pattern MergeOptionTypeEnum_THREE_WAY_MERGE = MergeOptionTypeEnum' "THREE_WAY_MERGE"
+
+{-# COMPLETE
+  MergeOptionTypeEnum_FAST_FORWARD_MERGE,
+  MergeOptionTypeEnum_SQUASH_MERGE,
+  MergeOptionTypeEnum_THREE_WAY_MERGE,
+  MergeOptionTypeEnum'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/ObjectTypeEnum.hs b/gen/Amazonka/CodeCommit/Types/ObjectTypeEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ObjectTypeEnum.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ObjectTypeEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ObjectTypeEnum
+  ( ObjectTypeEnum
+      ( ..,
+        ObjectTypeEnum_DIRECTORY,
+        ObjectTypeEnum_FILE,
+        ObjectTypeEnum_GIT_LINK,
+        ObjectTypeEnum_SYMBOLIC_LINK
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ObjectTypeEnum = ObjectTypeEnum'
+  { fromObjectTypeEnum ::
+      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 ObjectTypeEnum_DIRECTORY :: ObjectTypeEnum
+pattern ObjectTypeEnum_DIRECTORY = ObjectTypeEnum' "DIRECTORY"
+
+pattern ObjectTypeEnum_FILE :: ObjectTypeEnum
+pattern ObjectTypeEnum_FILE = ObjectTypeEnum' "FILE"
+
+pattern ObjectTypeEnum_GIT_LINK :: ObjectTypeEnum
+pattern ObjectTypeEnum_GIT_LINK = ObjectTypeEnum' "GIT_LINK"
+
+pattern ObjectTypeEnum_SYMBOLIC_LINK :: ObjectTypeEnum
+pattern ObjectTypeEnum_SYMBOLIC_LINK = ObjectTypeEnum' "SYMBOLIC_LINK"
+
+{-# COMPLETE
+  ObjectTypeEnum_DIRECTORY,
+  ObjectTypeEnum_FILE,
+  ObjectTypeEnum_GIT_LINK,
+  ObjectTypeEnum_SYMBOLIC_LINK,
+  ObjectTypeEnum'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/ObjectTypes.hs b/gen/Amazonka/CodeCommit/Types/ObjectTypes.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ObjectTypes.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ObjectTypes
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ObjectTypes where
+
+import Amazonka.CodeCommit.Types.ObjectTypeEnum
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about the type of an object in a merge operation.
+--
+-- /See:/ 'newObjectTypes' smart constructor.
+data ObjectTypes = ObjectTypes'
+  { -- | The type of the object in the base commit of the merge.
+    base :: Prelude.Maybe ObjectTypeEnum,
+    -- | The type of the object in the destination branch.
+    destination :: Prelude.Maybe ObjectTypeEnum,
+    -- | The type of the object in the source branch.
+    source :: Prelude.Maybe ObjectTypeEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ObjectTypes' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'base', 'objectTypes_base' - The type of the object in the base commit of the merge.
+--
+-- 'destination', 'objectTypes_destination' - The type of the object in the destination branch.
+--
+-- 'source', 'objectTypes_source' - The type of the object in the source branch.
+newObjectTypes ::
+  ObjectTypes
+newObjectTypes =
+  ObjectTypes'
+    { base = Prelude.Nothing,
+      destination = Prelude.Nothing,
+      source = Prelude.Nothing
+    }
+
+-- | The type of the object in the base commit of the merge.
+objectTypes_base :: Lens.Lens' ObjectTypes (Prelude.Maybe ObjectTypeEnum)
+objectTypes_base = Lens.lens (\ObjectTypes' {base} -> base) (\s@ObjectTypes' {} a -> s {base = a} :: ObjectTypes)
+
+-- | The type of the object in the destination branch.
+objectTypes_destination :: Lens.Lens' ObjectTypes (Prelude.Maybe ObjectTypeEnum)
+objectTypes_destination = Lens.lens (\ObjectTypes' {destination} -> destination) (\s@ObjectTypes' {} a -> s {destination = a} :: ObjectTypes)
+
+-- | The type of the object in the source branch.
+objectTypes_source :: Lens.Lens' ObjectTypes (Prelude.Maybe ObjectTypeEnum)
+objectTypes_source = Lens.lens (\ObjectTypes' {source} -> source) (\s@ObjectTypes' {} a -> s {source = a} :: ObjectTypes)
+
+instance Data.FromJSON ObjectTypes where
+  parseJSON =
+    Data.withObject
+      "ObjectTypes"
+      ( \x ->
+          ObjectTypes'
+            Prelude.<$> (x Data..:? "base")
+            Prelude.<*> (x Data..:? "destination")
+            Prelude.<*> (x Data..:? "source")
+      )
+
+instance Prelude.Hashable ObjectTypes where
+  hashWithSalt _salt ObjectTypes' {..} =
+    _salt
+      `Prelude.hashWithSalt` base
+      `Prelude.hashWithSalt` destination
+      `Prelude.hashWithSalt` source
+
+instance Prelude.NFData ObjectTypes where
+  rnf ObjectTypes' {..} =
+    Prelude.rnf base
+      `Prelude.seq` Prelude.rnf destination
+      `Prelude.seq` Prelude.rnf source
diff --git a/gen/Amazonka/CodeCommit/Types/OrderEnum.hs b/gen/Amazonka/CodeCommit/Types/OrderEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/OrderEnum.hs
@@ -0,0 +1,71 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.OrderEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.OrderEnum
+  ( OrderEnum
+      ( ..,
+        OrderEnum_Ascending,
+        OrderEnum_Descending
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype OrderEnum = OrderEnum'
+  { fromOrderEnum ::
+      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 OrderEnum_Ascending :: OrderEnum
+pattern OrderEnum_Ascending = OrderEnum' "ascending"
+
+pattern OrderEnum_Descending :: OrderEnum
+pattern OrderEnum_Descending = OrderEnum' "descending"
+
+{-# COMPLETE
+  OrderEnum_Ascending,
+  OrderEnum_Descending,
+  OrderEnum'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/OriginApprovalRuleTemplate.hs b/gen/Amazonka/CodeCommit/Types/OriginApprovalRuleTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/OriginApprovalRuleTemplate.hs
@@ -0,0 +1,86 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.OriginApprovalRuleTemplate
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.OriginApprovalRuleTemplate where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about the template that created the approval rule
+-- for a pull request.
+--
+-- /See:/ 'newOriginApprovalRuleTemplate' smart constructor.
+data OriginApprovalRuleTemplate = OriginApprovalRuleTemplate'
+  { -- | The ID of the template that created the approval rule.
+    approvalRuleTemplateId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the template that created the approval rule.
+    approvalRuleTemplateName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'OriginApprovalRuleTemplate' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleTemplateId', 'originApprovalRuleTemplate_approvalRuleTemplateId' - The ID of the template that created the approval rule.
+--
+-- 'approvalRuleTemplateName', 'originApprovalRuleTemplate_approvalRuleTemplateName' - The name of the template that created the approval rule.
+newOriginApprovalRuleTemplate ::
+  OriginApprovalRuleTemplate
+newOriginApprovalRuleTemplate =
+  OriginApprovalRuleTemplate'
+    { approvalRuleTemplateId =
+        Prelude.Nothing,
+      approvalRuleTemplateName = Prelude.Nothing
+    }
+
+-- | The ID of the template that created the approval rule.
+originApprovalRuleTemplate_approvalRuleTemplateId :: Lens.Lens' OriginApprovalRuleTemplate (Prelude.Maybe Prelude.Text)
+originApprovalRuleTemplate_approvalRuleTemplateId = Lens.lens (\OriginApprovalRuleTemplate' {approvalRuleTemplateId} -> approvalRuleTemplateId) (\s@OriginApprovalRuleTemplate' {} a -> s {approvalRuleTemplateId = a} :: OriginApprovalRuleTemplate)
+
+-- | The name of the template that created the approval rule.
+originApprovalRuleTemplate_approvalRuleTemplateName :: Lens.Lens' OriginApprovalRuleTemplate (Prelude.Maybe Prelude.Text)
+originApprovalRuleTemplate_approvalRuleTemplateName = Lens.lens (\OriginApprovalRuleTemplate' {approvalRuleTemplateName} -> approvalRuleTemplateName) (\s@OriginApprovalRuleTemplate' {} a -> s {approvalRuleTemplateName = a} :: OriginApprovalRuleTemplate)
+
+instance Data.FromJSON OriginApprovalRuleTemplate where
+  parseJSON =
+    Data.withObject
+      "OriginApprovalRuleTemplate"
+      ( \x ->
+          OriginApprovalRuleTemplate'
+            Prelude.<$> (x Data..:? "approvalRuleTemplateId")
+            Prelude.<*> (x Data..:? "approvalRuleTemplateName")
+      )
+
+instance Prelude.Hashable OriginApprovalRuleTemplate where
+  hashWithSalt _salt OriginApprovalRuleTemplate' {..} =
+    _salt
+      `Prelude.hashWithSalt` approvalRuleTemplateId
+      `Prelude.hashWithSalt` approvalRuleTemplateName
+
+instance Prelude.NFData OriginApprovalRuleTemplate where
+  rnf OriginApprovalRuleTemplate' {..} =
+    Prelude.rnf approvalRuleTemplateId
+      `Prelude.seq` Prelude.rnf approvalRuleTemplateName
diff --git a/gen/Amazonka/CodeCommit/Types/OverrideStatus.hs b/gen/Amazonka/CodeCommit/Types/OverrideStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/OverrideStatus.hs
@@ -0,0 +1,71 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.OverrideStatus
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.OverrideStatus
+  ( OverrideStatus
+      ( ..,
+        OverrideStatus_OVERRIDE,
+        OverrideStatus_REVOKE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype OverrideStatus = OverrideStatus'
+  { fromOverrideStatus ::
+      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 OverrideStatus_OVERRIDE :: OverrideStatus
+pattern OverrideStatus_OVERRIDE = OverrideStatus' "OVERRIDE"
+
+pattern OverrideStatus_REVOKE :: OverrideStatus
+pattern OverrideStatus_REVOKE = OverrideStatus' "REVOKE"
+
+{-# COMPLETE
+  OverrideStatus_OVERRIDE,
+  OverrideStatus_REVOKE,
+  OverrideStatus'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/PullRequest.hs b/gen/Amazonka/CodeCommit/Types/PullRequest.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/PullRequest.hs
@@ -0,0 +1,231 @@
+{-# 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.CodeCommit.Types.PullRequest
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.PullRequest where
+
+import Amazonka.CodeCommit.Types.ApprovalRule
+import Amazonka.CodeCommit.Types.PullRequestStatusEnum
+import Amazonka.CodeCommit.Types.PullRequestTarget
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a pull request.
+--
+-- /See:/ 'newPullRequest' smart constructor.
+data PullRequest = PullRequest'
+  { -- | The approval rules applied to the pull request.
+    approvalRules :: Prelude.Maybe [ApprovalRule],
+    -- | The Amazon Resource Name (ARN) of the user who created the pull request.
+    authorArn :: Prelude.Maybe Prelude.Text,
+    -- | A unique, client-generated idempotency token that, when provided in a
+    -- request, ensures the request cannot be repeated with a changed
+    -- parameter. If a request is received with the same parameters and a token
+    -- is included, the request returns information about the initial request
+    -- that used that token.
+    clientRequestToken :: Prelude.Maybe Prelude.Text,
+    -- | The date and time the pull request was originally created, in timestamp
+    -- format.
+    creationDate :: Prelude.Maybe Data.POSIX,
+    -- | The user-defined description of the pull request. This description can
+    -- be used to clarify what should be reviewed and other details of the
+    -- request.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The day and time of the last user or system activity on the pull
+    -- request, in timestamp format.
+    lastActivityDate :: Prelude.Maybe Data.POSIX,
+    -- | The system-generated ID of the pull request.
+    pullRequestId :: Prelude.Maybe Prelude.Text,
+    -- | The status of the pull request. Pull request status can only change from
+    -- @OPEN@ to @CLOSED@.
+    pullRequestStatus :: Prelude.Maybe PullRequestStatusEnum,
+    -- | The targets of the pull request, including the source branch and
+    -- destination branch for the pull request.
+    pullRequestTargets :: Prelude.Maybe [PullRequestTarget],
+    -- | The system-generated revision ID for the pull request.
+    revisionId :: Prelude.Maybe Prelude.Text,
+    -- | The user-defined title of the pull request. This title is displayed in
+    -- the list of pull requests to other repository users.
+    title :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PullRequest' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRules', 'pullRequest_approvalRules' - The approval rules applied to the pull request.
+--
+-- 'authorArn', 'pullRequest_authorArn' - The Amazon Resource Name (ARN) of the user who created the pull request.
+--
+-- 'clientRequestToken', 'pullRequest_clientRequestToken' - A unique, client-generated idempotency token that, when provided in a
+-- request, ensures the request cannot be repeated with a changed
+-- parameter. If a request is received with the same parameters and a token
+-- is included, the request returns information about the initial request
+-- that used that token.
+--
+-- 'creationDate', 'pullRequest_creationDate' - The date and time the pull request was originally created, in timestamp
+-- format.
+--
+-- 'description', 'pullRequest_description' - The user-defined description of the pull request. This description can
+-- be used to clarify what should be reviewed and other details of the
+-- request.
+--
+-- 'lastActivityDate', 'pullRequest_lastActivityDate' - The day and time of the last user or system activity on the pull
+-- request, in timestamp format.
+--
+-- 'pullRequestId', 'pullRequest_pullRequestId' - The system-generated ID of the pull request.
+--
+-- 'pullRequestStatus', 'pullRequest_pullRequestStatus' - The status of the pull request. Pull request status can only change from
+-- @OPEN@ to @CLOSED@.
+--
+-- 'pullRequestTargets', 'pullRequest_pullRequestTargets' - The targets of the pull request, including the source branch and
+-- destination branch for the pull request.
+--
+-- 'revisionId', 'pullRequest_revisionId' - The system-generated revision ID for the pull request.
+--
+-- 'title', 'pullRequest_title' - The user-defined title of the pull request. This title is displayed in
+-- the list of pull requests to other repository users.
+newPullRequest ::
+  PullRequest
+newPullRequest =
+  PullRequest'
+    { approvalRules = Prelude.Nothing,
+      authorArn = Prelude.Nothing,
+      clientRequestToken = Prelude.Nothing,
+      creationDate = Prelude.Nothing,
+      description = Prelude.Nothing,
+      lastActivityDate = Prelude.Nothing,
+      pullRequestId = Prelude.Nothing,
+      pullRequestStatus = Prelude.Nothing,
+      pullRequestTargets = Prelude.Nothing,
+      revisionId = Prelude.Nothing,
+      title = Prelude.Nothing
+    }
+
+-- | The approval rules applied to the pull request.
+pullRequest_approvalRules :: Lens.Lens' PullRequest (Prelude.Maybe [ApprovalRule])
+pullRequest_approvalRules = Lens.lens (\PullRequest' {approvalRules} -> approvalRules) (\s@PullRequest' {} a -> s {approvalRules = a} :: PullRequest) Prelude.. Lens.mapping Lens.coerced
+
+-- | The Amazon Resource Name (ARN) of the user who created the pull request.
+pullRequest_authorArn :: Lens.Lens' PullRequest (Prelude.Maybe Prelude.Text)
+pullRequest_authorArn = Lens.lens (\PullRequest' {authorArn} -> authorArn) (\s@PullRequest' {} a -> s {authorArn = a} :: PullRequest)
+
+-- | A unique, client-generated idempotency token that, when provided in a
+-- request, ensures the request cannot be repeated with a changed
+-- parameter. If a request is received with the same parameters and a token
+-- is included, the request returns information about the initial request
+-- that used that token.
+pullRequest_clientRequestToken :: Lens.Lens' PullRequest (Prelude.Maybe Prelude.Text)
+pullRequest_clientRequestToken = Lens.lens (\PullRequest' {clientRequestToken} -> clientRequestToken) (\s@PullRequest' {} a -> s {clientRequestToken = a} :: PullRequest)
+
+-- | The date and time the pull request was originally created, in timestamp
+-- format.
+pullRequest_creationDate :: Lens.Lens' PullRequest (Prelude.Maybe Prelude.UTCTime)
+pullRequest_creationDate = Lens.lens (\PullRequest' {creationDate} -> creationDate) (\s@PullRequest' {} a -> s {creationDate = a} :: PullRequest) Prelude.. Lens.mapping Data._Time
+
+-- | The user-defined description of the pull request. This description can
+-- be used to clarify what should be reviewed and other details of the
+-- request.
+pullRequest_description :: Lens.Lens' PullRequest (Prelude.Maybe Prelude.Text)
+pullRequest_description = Lens.lens (\PullRequest' {description} -> description) (\s@PullRequest' {} a -> s {description = a} :: PullRequest)
+
+-- | The day and time of the last user or system activity on the pull
+-- request, in timestamp format.
+pullRequest_lastActivityDate :: Lens.Lens' PullRequest (Prelude.Maybe Prelude.UTCTime)
+pullRequest_lastActivityDate = Lens.lens (\PullRequest' {lastActivityDate} -> lastActivityDate) (\s@PullRequest' {} a -> s {lastActivityDate = a} :: PullRequest) Prelude.. Lens.mapping Data._Time
+
+-- | The system-generated ID of the pull request.
+pullRequest_pullRequestId :: Lens.Lens' PullRequest (Prelude.Maybe Prelude.Text)
+pullRequest_pullRequestId = Lens.lens (\PullRequest' {pullRequestId} -> pullRequestId) (\s@PullRequest' {} a -> s {pullRequestId = a} :: PullRequest)
+
+-- | The status of the pull request. Pull request status can only change from
+-- @OPEN@ to @CLOSED@.
+pullRequest_pullRequestStatus :: Lens.Lens' PullRequest (Prelude.Maybe PullRequestStatusEnum)
+pullRequest_pullRequestStatus = Lens.lens (\PullRequest' {pullRequestStatus} -> pullRequestStatus) (\s@PullRequest' {} a -> s {pullRequestStatus = a} :: PullRequest)
+
+-- | The targets of the pull request, including the source branch and
+-- destination branch for the pull request.
+pullRequest_pullRequestTargets :: Lens.Lens' PullRequest (Prelude.Maybe [PullRequestTarget])
+pullRequest_pullRequestTargets = Lens.lens (\PullRequest' {pullRequestTargets} -> pullRequestTargets) (\s@PullRequest' {} a -> s {pullRequestTargets = a} :: PullRequest) Prelude.. Lens.mapping Lens.coerced
+
+-- | The system-generated revision ID for the pull request.
+pullRequest_revisionId :: Lens.Lens' PullRequest (Prelude.Maybe Prelude.Text)
+pullRequest_revisionId = Lens.lens (\PullRequest' {revisionId} -> revisionId) (\s@PullRequest' {} a -> s {revisionId = a} :: PullRequest)
+
+-- | The user-defined title of the pull request. This title is displayed in
+-- the list of pull requests to other repository users.
+pullRequest_title :: Lens.Lens' PullRequest (Prelude.Maybe Prelude.Text)
+pullRequest_title = Lens.lens (\PullRequest' {title} -> title) (\s@PullRequest' {} a -> s {title = a} :: PullRequest)
+
+instance Data.FromJSON PullRequest where
+  parseJSON =
+    Data.withObject
+      "PullRequest"
+      ( \x ->
+          PullRequest'
+            Prelude.<$> (x Data..:? "approvalRules" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "authorArn")
+            Prelude.<*> (x Data..:? "clientRequestToken")
+            Prelude.<*> (x Data..:? "creationDate")
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "lastActivityDate")
+            Prelude.<*> (x Data..:? "pullRequestId")
+            Prelude.<*> (x Data..:? "pullRequestStatus")
+            Prelude.<*> ( x
+                            Data..:? "pullRequestTargets"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "revisionId")
+            Prelude.<*> (x Data..:? "title")
+      )
+
+instance Prelude.Hashable PullRequest where
+  hashWithSalt _salt PullRequest' {..} =
+    _salt
+      `Prelude.hashWithSalt` approvalRules
+      `Prelude.hashWithSalt` authorArn
+      `Prelude.hashWithSalt` clientRequestToken
+      `Prelude.hashWithSalt` creationDate
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` lastActivityDate
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` pullRequestStatus
+      `Prelude.hashWithSalt` pullRequestTargets
+      `Prelude.hashWithSalt` revisionId
+      `Prelude.hashWithSalt` title
+
+instance Prelude.NFData PullRequest where
+  rnf PullRequest' {..} =
+    Prelude.rnf approvalRules
+      `Prelude.seq` Prelude.rnf authorArn
+      `Prelude.seq` Prelude.rnf clientRequestToken
+      `Prelude.seq` Prelude.rnf creationDate
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf lastActivityDate
+      `Prelude.seq` Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf pullRequestStatus
+      `Prelude.seq` Prelude.rnf pullRequestTargets
+      `Prelude.seq` Prelude.rnf revisionId
+      `Prelude.seq` Prelude.rnf title
diff --git a/gen/Amazonka/CodeCommit/Types/PullRequestCreatedEventMetadata.hs b/gen/Amazonka/CodeCommit/Types/PullRequestCreatedEventMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/PullRequestCreatedEventMetadata.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.PullRequestCreatedEventMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.PullRequestCreatedEventMetadata where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Metadata about the pull request that is used when comparing the pull
+-- request source with its destination.
+--
+-- /See:/ 'newPullRequestCreatedEventMetadata' smart constructor.
+data PullRequestCreatedEventMetadata = PullRequestCreatedEventMetadata'
+  { -- | The commit ID of the tip of the branch specified as the destination
+    -- branch when the pull request was created.
+    destinationCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The commit ID of the most recent commit that the source branch and the
+    -- destination branch have in common.
+    mergeBase :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where the pull request was created.
+    repositoryName :: Prelude.Maybe Prelude.Text,
+    -- | The commit ID on the source branch used when the pull request was
+    -- created.
+    sourceCommitId :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PullRequestCreatedEventMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'destinationCommitId', 'pullRequestCreatedEventMetadata_destinationCommitId' - The commit ID of the tip of the branch specified as the destination
+-- branch when the pull request was created.
+--
+-- 'mergeBase', 'pullRequestCreatedEventMetadata_mergeBase' - The commit ID of the most recent commit that the source branch and the
+-- destination branch have in common.
+--
+-- 'repositoryName', 'pullRequestCreatedEventMetadata_repositoryName' - The name of the repository where the pull request was created.
+--
+-- 'sourceCommitId', 'pullRequestCreatedEventMetadata_sourceCommitId' - The commit ID on the source branch used when the pull request was
+-- created.
+newPullRequestCreatedEventMetadata ::
+  PullRequestCreatedEventMetadata
+newPullRequestCreatedEventMetadata =
+  PullRequestCreatedEventMetadata'
+    { destinationCommitId =
+        Prelude.Nothing,
+      mergeBase = Prelude.Nothing,
+      repositoryName = Prelude.Nothing,
+      sourceCommitId = Prelude.Nothing
+    }
+
+-- | The commit ID of the tip of the branch specified as the destination
+-- branch when the pull request was created.
+pullRequestCreatedEventMetadata_destinationCommitId :: Lens.Lens' PullRequestCreatedEventMetadata (Prelude.Maybe Prelude.Text)
+pullRequestCreatedEventMetadata_destinationCommitId = Lens.lens (\PullRequestCreatedEventMetadata' {destinationCommitId} -> destinationCommitId) (\s@PullRequestCreatedEventMetadata' {} a -> s {destinationCommitId = a} :: PullRequestCreatedEventMetadata)
+
+-- | The commit ID of the most recent commit that the source branch and the
+-- destination branch have in common.
+pullRequestCreatedEventMetadata_mergeBase :: Lens.Lens' PullRequestCreatedEventMetadata (Prelude.Maybe Prelude.Text)
+pullRequestCreatedEventMetadata_mergeBase = Lens.lens (\PullRequestCreatedEventMetadata' {mergeBase} -> mergeBase) (\s@PullRequestCreatedEventMetadata' {} a -> s {mergeBase = a} :: PullRequestCreatedEventMetadata)
+
+-- | The name of the repository where the pull request was created.
+pullRequestCreatedEventMetadata_repositoryName :: Lens.Lens' PullRequestCreatedEventMetadata (Prelude.Maybe Prelude.Text)
+pullRequestCreatedEventMetadata_repositoryName = Lens.lens (\PullRequestCreatedEventMetadata' {repositoryName} -> repositoryName) (\s@PullRequestCreatedEventMetadata' {} a -> s {repositoryName = a} :: PullRequestCreatedEventMetadata)
+
+-- | The commit ID on the source branch used when the pull request was
+-- created.
+pullRequestCreatedEventMetadata_sourceCommitId :: Lens.Lens' PullRequestCreatedEventMetadata (Prelude.Maybe Prelude.Text)
+pullRequestCreatedEventMetadata_sourceCommitId = Lens.lens (\PullRequestCreatedEventMetadata' {sourceCommitId} -> sourceCommitId) (\s@PullRequestCreatedEventMetadata' {} a -> s {sourceCommitId = a} :: PullRequestCreatedEventMetadata)
+
+instance
+  Data.FromJSON
+    PullRequestCreatedEventMetadata
+  where
+  parseJSON =
+    Data.withObject
+      "PullRequestCreatedEventMetadata"
+      ( \x ->
+          PullRequestCreatedEventMetadata'
+            Prelude.<$> (x Data..:? "destinationCommitId")
+            Prelude.<*> (x Data..:? "mergeBase")
+            Prelude.<*> (x Data..:? "repositoryName")
+            Prelude.<*> (x Data..:? "sourceCommitId")
+      )
+
+instance
+  Prelude.Hashable
+    PullRequestCreatedEventMetadata
+  where
+  hashWithSalt
+    _salt
+    PullRequestCreatedEventMetadata' {..} =
+      _salt
+        `Prelude.hashWithSalt` destinationCommitId
+        `Prelude.hashWithSalt` mergeBase
+        `Prelude.hashWithSalt` repositoryName
+        `Prelude.hashWithSalt` sourceCommitId
+
+instance
+  Prelude.NFData
+    PullRequestCreatedEventMetadata
+  where
+  rnf PullRequestCreatedEventMetadata' {..} =
+    Prelude.rnf destinationCommitId
+      `Prelude.seq` Prelude.rnf mergeBase
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf sourceCommitId
diff --git a/gen/Amazonka/CodeCommit/Types/PullRequestEvent.hs b/gen/Amazonka/CodeCommit/Types/PullRequestEvent.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/PullRequestEvent.hs
@@ -0,0 +1,229 @@
+{-# 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.CodeCommit.Types.PullRequestEvent
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.PullRequestEvent where
+
+import Amazonka.CodeCommit.Types.ApprovalRuleEventMetadata
+import Amazonka.CodeCommit.Types.ApprovalRuleOverriddenEventMetadata
+import Amazonka.CodeCommit.Types.ApprovalStateChangedEventMetadata
+import Amazonka.CodeCommit.Types.PullRequestCreatedEventMetadata
+import Amazonka.CodeCommit.Types.PullRequestEventType
+import Amazonka.CodeCommit.Types.PullRequestMergedStateChangedEventMetadata
+import Amazonka.CodeCommit.Types.PullRequestSourceReferenceUpdatedEventMetadata
+import Amazonka.CodeCommit.Types.PullRequestStatusChangedEventMetadata
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a pull request event.
+--
+-- /See:/ 'newPullRequestEvent' smart constructor.
+data PullRequestEvent = PullRequestEvent'
+  { -- | The Amazon Resource Name (ARN) of the user whose actions resulted in the
+    -- event. Examples include updating the pull request with more commits or
+    -- changing the status of a pull request.
+    actorArn :: Prelude.Maybe Prelude.Text,
+    -- | Information about a pull request event.
+    approvalRuleEventMetadata :: Prelude.Maybe ApprovalRuleEventMetadata,
+    -- | Information about an approval rule override event for a pull request.
+    approvalRuleOverriddenEventMetadata :: Prelude.Maybe ApprovalRuleOverriddenEventMetadata,
+    -- | Information about an approval state change for a pull request.
+    approvalStateChangedEventMetadata :: Prelude.Maybe ApprovalStateChangedEventMetadata,
+    -- | The day and time of the pull request event, in timestamp format.
+    eventDate :: Prelude.Maybe Data.POSIX,
+    -- | Information about the source and destination branches for the pull
+    -- request.
+    pullRequestCreatedEventMetadata :: Prelude.Maybe PullRequestCreatedEventMetadata,
+    -- | The type of the pull request event (for example, a status change event
+    -- (PULL_REQUEST_STATUS_CHANGED) or update event
+    -- (PULL_REQUEST_SOURCE_REFERENCE_UPDATED)).
+    pullRequestEventType :: Prelude.Maybe PullRequestEventType,
+    -- | The system-generated ID of the pull request.
+    pullRequestId :: Prelude.Maybe Prelude.Text,
+    -- | Information about the change in mergability state for the pull request
+    -- event.
+    pullRequestMergedStateChangedEventMetadata :: Prelude.Maybe PullRequestMergedStateChangedEventMetadata,
+    -- | Information about the updated source branch for the pull request event.
+    pullRequestSourceReferenceUpdatedEventMetadata :: Prelude.Maybe PullRequestSourceReferenceUpdatedEventMetadata,
+    -- | Information about the change in status for the pull request event.
+    pullRequestStatusChangedEventMetadata :: Prelude.Maybe PullRequestStatusChangedEventMetadata
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PullRequestEvent' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'actorArn', 'pullRequestEvent_actorArn' - The Amazon Resource Name (ARN) of the user whose actions resulted in the
+-- event. Examples include updating the pull request with more commits or
+-- changing the status of a pull request.
+--
+-- 'approvalRuleEventMetadata', 'pullRequestEvent_approvalRuleEventMetadata' - Information about a pull request event.
+--
+-- 'approvalRuleOverriddenEventMetadata', 'pullRequestEvent_approvalRuleOverriddenEventMetadata' - Information about an approval rule override event for a pull request.
+--
+-- 'approvalStateChangedEventMetadata', 'pullRequestEvent_approvalStateChangedEventMetadata' - Information about an approval state change for a pull request.
+--
+-- 'eventDate', 'pullRequestEvent_eventDate' - The day and time of the pull request event, in timestamp format.
+--
+-- 'pullRequestCreatedEventMetadata', 'pullRequestEvent_pullRequestCreatedEventMetadata' - Information about the source and destination branches for the pull
+-- request.
+--
+-- 'pullRequestEventType', 'pullRequestEvent_pullRequestEventType' - The type of the pull request event (for example, a status change event
+-- (PULL_REQUEST_STATUS_CHANGED) or update event
+-- (PULL_REQUEST_SOURCE_REFERENCE_UPDATED)).
+--
+-- 'pullRequestId', 'pullRequestEvent_pullRequestId' - The system-generated ID of the pull request.
+--
+-- 'pullRequestMergedStateChangedEventMetadata', 'pullRequestEvent_pullRequestMergedStateChangedEventMetadata' - Information about the change in mergability state for the pull request
+-- event.
+--
+-- 'pullRequestSourceReferenceUpdatedEventMetadata', 'pullRequestEvent_pullRequestSourceReferenceUpdatedEventMetadata' - Information about the updated source branch for the pull request event.
+--
+-- 'pullRequestStatusChangedEventMetadata', 'pullRequestEvent_pullRequestStatusChangedEventMetadata' - Information about the change in status for the pull request event.
+newPullRequestEvent ::
+  PullRequestEvent
+newPullRequestEvent =
+  PullRequestEvent'
+    { actorArn = Prelude.Nothing,
+      approvalRuleEventMetadata = Prelude.Nothing,
+      approvalRuleOverriddenEventMetadata =
+        Prelude.Nothing,
+      approvalStateChangedEventMetadata = Prelude.Nothing,
+      eventDate = Prelude.Nothing,
+      pullRequestCreatedEventMetadata = Prelude.Nothing,
+      pullRequestEventType = Prelude.Nothing,
+      pullRequestId = Prelude.Nothing,
+      pullRequestMergedStateChangedEventMetadata =
+        Prelude.Nothing,
+      pullRequestSourceReferenceUpdatedEventMetadata =
+        Prelude.Nothing,
+      pullRequestStatusChangedEventMetadata =
+        Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) of the user whose actions resulted in the
+-- event. Examples include updating the pull request with more commits or
+-- changing the status of a pull request.
+pullRequestEvent_actorArn :: Lens.Lens' PullRequestEvent (Prelude.Maybe Prelude.Text)
+pullRequestEvent_actorArn = Lens.lens (\PullRequestEvent' {actorArn} -> actorArn) (\s@PullRequestEvent' {} a -> s {actorArn = a} :: PullRequestEvent)
+
+-- | Information about a pull request event.
+pullRequestEvent_approvalRuleEventMetadata :: Lens.Lens' PullRequestEvent (Prelude.Maybe ApprovalRuleEventMetadata)
+pullRequestEvent_approvalRuleEventMetadata = Lens.lens (\PullRequestEvent' {approvalRuleEventMetadata} -> approvalRuleEventMetadata) (\s@PullRequestEvent' {} a -> s {approvalRuleEventMetadata = a} :: PullRequestEvent)
+
+-- | Information about an approval rule override event for a pull request.
+pullRequestEvent_approvalRuleOverriddenEventMetadata :: Lens.Lens' PullRequestEvent (Prelude.Maybe ApprovalRuleOverriddenEventMetadata)
+pullRequestEvent_approvalRuleOverriddenEventMetadata = Lens.lens (\PullRequestEvent' {approvalRuleOverriddenEventMetadata} -> approvalRuleOverriddenEventMetadata) (\s@PullRequestEvent' {} a -> s {approvalRuleOverriddenEventMetadata = a} :: PullRequestEvent)
+
+-- | Information about an approval state change for a pull request.
+pullRequestEvent_approvalStateChangedEventMetadata :: Lens.Lens' PullRequestEvent (Prelude.Maybe ApprovalStateChangedEventMetadata)
+pullRequestEvent_approvalStateChangedEventMetadata = Lens.lens (\PullRequestEvent' {approvalStateChangedEventMetadata} -> approvalStateChangedEventMetadata) (\s@PullRequestEvent' {} a -> s {approvalStateChangedEventMetadata = a} :: PullRequestEvent)
+
+-- | The day and time of the pull request event, in timestamp format.
+pullRequestEvent_eventDate :: Lens.Lens' PullRequestEvent (Prelude.Maybe Prelude.UTCTime)
+pullRequestEvent_eventDate = Lens.lens (\PullRequestEvent' {eventDate} -> eventDate) (\s@PullRequestEvent' {} a -> s {eventDate = a} :: PullRequestEvent) Prelude.. Lens.mapping Data._Time
+
+-- | Information about the source and destination branches for the pull
+-- request.
+pullRequestEvent_pullRequestCreatedEventMetadata :: Lens.Lens' PullRequestEvent (Prelude.Maybe PullRequestCreatedEventMetadata)
+pullRequestEvent_pullRequestCreatedEventMetadata = Lens.lens (\PullRequestEvent' {pullRequestCreatedEventMetadata} -> pullRequestCreatedEventMetadata) (\s@PullRequestEvent' {} a -> s {pullRequestCreatedEventMetadata = a} :: PullRequestEvent)
+
+-- | The type of the pull request event (for example, a status change event
+-- (PULL_REQUEST_STATUS_CHANGED) or update event
+-- (PULL_REQUEST_SOURCE_REFERENCE_UPDATED)).
+pullRequestEvent_pullRequestEventType :: Lens.Lens' PullRequestEvent (Prelude.Maybe PullRequestEventType)
+pullRequestEvent_pullRequestEventType = Lens.lens (\PullRequestEvent' {pullRequestEventType} -> pullRequestEventType) (\s@PullRequestEvent' {} a -> s {pullRequestEventType = a} :: PullRequestEvent)
+
+-- | The system-generated ID of the pull request.
+pullRequestEvent_pullRequestId :: Lens.Lens' PullRequestEvent (Prelude.Maybe Prelude.Text)
+pullRequestEvent_pullRequestId = Lens.lens (\PullRequestEvent' {pullRequestId} -> pullRequestId) (\s@PullRequestEvent' {} a -> s {pullRequestId = a} :: PullRequestEvent)
+
+-- | Information about the change in mergability state for the pull request
+-- event.
+pullRequestEvent_pullRequestMergedStateChangedEventMetadata :: Lens.Lens' PullRequestEvent (Prelude.Maybe PullRequestMergedStateChangedEventMetadata)
+pullRequestEvent_pullRequestMergedStateChangedEventMetadata = Lens.lens (\PullRequestEvent' {pullRequestMergedStateChangedEventMetadata} -> pullRequestMergedStateChangedEventMetadata) (\s@PullRequestEvent' {} a -> s {pullRequestMergedStateChangedEventMetadata = a} :: PullRequestEvent)
+
+-- | Information about the updated source branch for the pull request event.
+pullRequestEvent_pullRequestSourceReferenceUpdatedEventMetadata :: Lens.Lens' PullRequestEvent (Prelude.Maybe PullRequestSourceReferenceUpdatedEventMetadata)
+pullRequestEvent_pullRequestSourceReferenceUpdatedEventMetadata = Lens.lens (\PullRequestEvent' {pullRequestSourceReferenceUpdatedEventMetadata} -> pullRequestSourceReferenceUpdatedEventMetadata) (\s@PullRequestEvent' {} a -> s {pullRequestSourceReferenceUpdatedEventMetadata = a} :: PullRequestEvent)
+
+-- | Information about the change in status for the pull request event.
+pullRequestEvent_pullRequestStatusChangedEventMetadata :: Lens.Lens' PullRequestEvent (Prelude.Maybe PullRequestStatusChangedEventMetadata)
+pullRequestEvent_pullRequestStatusChangedEventMetadata = Lens.lens (\PullRequestEvent' {pullRequestStatusChangedEventMetadata} -> pullRequestStatusChangedEventMetadata) (\s@PullRequestEvent' {} a -> s {pullRequestStatusChangedEventMetadata = a} :: PullRequestEvent)
+
+instance Data.FromJSON PullRequestEvent where
+  parseJSON =
+    Data.withObject
+      "PullRequestEvent"
+      ( \x ->
+          PullRequestEvent'
+            Prelude.<$> (x Data..:? "actorArn")
+            Prelude.<*> (x Data..:? "approvalRuleEventMetadata")
+            Prelude.<*> (x Data..:? "approvalRuleOverriddenEventMetadata")
+            Prelude.<*> (x Data..:? "approvalStateChangedEventMetadata")
+            Prelude.<*> (x Data..:? "eventDate")
+            Prelude.<*> (x Data..:? "pullRequestCreatedEventMetadata")
+            Prelude.<*> (x Data..:? "pullRequestEventType")
+            Prelude.<*> (x Data..:? "pullRequestId")
+            Prelude.<*> ( x
+                            Data..:? "pullRequestMergedStateChangedEventMetadata"
+                        )
+            Prelude.<*> ( x
+                            Data..:? "pullRequestSourceReferenceUpdatedEventMetadata"
+                        )
+            Prelude.<*> (x Data..:? "pullRequestStatusChangedEventMetadata")
+      )
+
+instance Prelude.Hashable PullRequestEvent where
+  hashWithSalt _salt PullRequestEvent' {..} =
+    _salt
+      `Prelude.hashWithSalt` actorArn
+      `Prelude.hashWithSalt` approvalRuleEventMetadata
+      `Prelude.hashWithSalt` approvalRuleOverriddenEventMetadata
+      `Prelude.hashWithSalt` approvalStateChangedEventMetadata
+      `Prelude.hashWithSalt` eventDate
+      `Prelude.hashWithSalt` pullRequestCreatedEventMetadata
+      `Prelude.hashWithSalt` pullRequestEventType
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` pullRequestMergedStateChangedEventMetadata
+      `Prelude.hashWithSalt` pullRequestSourceReferenceUpdatedEventMetadata
+      `Prelude.hashWithSalt` pullRequestStatusChangedEventMetadata
+
+instance Prelude.NFData PullRequestEvent where
+  rnf PullRequestEvent' {..} =
+    Prelude.rnf actorArn
+      `Prelude.seq` Prelude.rnf approvalRuleEventMetadata
+      `Prelude.seq` Prelude.rnf approvalRuleOverriddenEventMetadata
+      `Prelude.seq` Prelude.rnf approvalStateChangedEventMetadata
+      `Prelude.seq` Prelude.rnf eventDate
+      `Prelude.seq` Prelude.rnf pullRequestCreatedEventMetadata
+      `Prelude.seq` Prelude.rnf pullRequestEventType
+      `Prelude.seq` Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf
+        pullRequestMergedStateChangedEventMetadata
+      `Prelude.seq` Prelude.rnf
+        pullRequestSourceReferenceUpdatedEventMetadata
+      `Prelude.seq` Prelude.rnf
+        pullRequestStatusChangedEventMetadata
diff --git a/gen/Amazonka/CodeCommit/Types/PullRequestEventType.hs b/gen/Amazonka/CodeCommit/Types/PullRequestEventType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/PullRequestEventType.hs
@@ -0,0 +1,106 @@
+{-# 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.CodeCommit.Types.PullRequestEventType
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.PullRequestEventType
+  ( PullRequestEventType
+      ( ..,
+        PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_CREATED,
+        PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_DELETED,
+        PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_OVERRIDDEN,
+        PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_UPDATED,
+        PullRequestEventType_PULL_REQUEST_APPROVAL_STATE_CHANGED,
+        PullRequestEventType_PULL_REQUEST_CREATED,
+        PullRequestEventType_PULL_REQUEST_MERGE_STATE_CHANGED,
+        PullRequestEventType_PULL_REQUEST_SOURCE_REFERENCE_UPDATED,
+        PullRequestEventType_PULL_REQUEST_STATUS_CHANGED
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype PullRequestEventType = PullRequestEventType'
+  { fromPullRequestEventType ::
+      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 PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_CREATED :: PullRequestEventType
+pattern PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_CREATED = PullRequestEventType' "PULL_REQUEST_APPROVAL_RULE_CREATED"
+
+pattern PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_DELETED :: PullRequestEventType
+pattern PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_DELETED = PullRequestEventType' "PULL_REQUEST_APPROVAL_RULE_DELETED"
+
+pattern PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_OVERRIDDEN :: PullRequestEventType
+pattern PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_OVERRIDDEN = PullRequestEventType' "PULL_REQUEST_APPROVAL_RULE_OVERRIDDEN"
+
+pattern PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_UPDATED :: PullRequestEventType
+pattern PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_UPDATED = PullRequestEventType' "PULL_REQUEST_APPROVAL_RULE_UPDATED"
+
+pattern PullRequestEventType_PULL_REQUEST_APPROVAL_STATE_CHANGED :: PullRequestEventType
+pattern PullRequestEventType_PULL_REQUEST_APPROVAL_STATE_CHANGED = PullRequestEventType' "PULL_REQUEST_APPROVAL_STATE_CHANGED"
+
+pattern PullRequestEventType_PULL_REQUEST_CREATED :: PullRequestEventType
+pattern PullRequestEventType_PULL_REQUEST_CREATED = PullRequestEventType' "PULL_REQUEST_CREATED"
+
+pattern PullRequestEventType_PULL_REQUEST_MERGE_STATE_CHANGED :: PullRequestEventType
+pattern PullRequestEventType_PULL_REQUEST_MERGE_STATE_CHANGED = PullRequestEventType' "PULL_REQUEST_MERGE_STATE_CHANGED"
+
+pattern PullRequestEventType_PULL_REQUEST_SOURCE_REFERENCE_UPDATED :: PullRequestEventType
+pattern PullRequestEventType_PULL_REQUEST_SOURCE_REFERENCE_UPDATED = PullRequestEventType' "PULL_REQUEST_SOURCE_REFERENCE_UPDATED"
+
+pattern PullRequestEventType_PULL_REQUEST_STATUS_CHANGED :: PullRequestEventType
+pattern PullRequestEventType_PULL_REQUEST_STATUS_CHANGED = PullRequestEventType' "PULL_REQUEST_STATUS_CHANGED"
+
+{-# COMPLETE
+  PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_CREATED,
+  PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_DELETED,
+  PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_OVERRIDDEN,
+  PullRequestEventType_PULL_REQUEST_APPROVAL_RULE_UPDATED,
+  PullRequestEventType_PULL_REQUEST_APPROVAL_STATE_CHANGED,
+  PullRequestEventType_PULL_REQUEST_CREATED,
+  PullRequestEventType_PULL_REQUEST_MERGE_STATE_CHANGED,
+  PullRequestEventType_PULL_REQUEST_SOURCE_REFERENCE_UPDATED,
+  PullRequestEventType_PULL_REQUEST_STATUS_CHANGED,
+  PullRequestEventType'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/PullRequestMergedStateChangedEventMetadata.hs b/gen/Amazonka/CodeCommit/Types/PullRequestMergedStateChangedEventMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/PullRequestMergedStateChangedEventMetadata.hs
@@ -0,0 +1,111 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.PullRequestMergedStateChangedEventMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.PullRequestMergedStateChangedEventMetadata where
+
+import Amazonka.CodeCommit.Types.MergeMetadata
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about the change in the merge state for a pull
+-- request event.
+--
+-- /See:/ 'newPullRequestMergedStateChangedEventMetadata' smart constructor.
+data PullRequestMergedStateChangedEventMetadata = PullRequestMergedStateChangedEventMetadata'
+  { -- | The name of the branch that the pull request is merged into.
+    destinationReference :: Prelude.Maybe Prelude.Text,
+    -- | Information about the merge state change event.
+    mergeMetadata :: Prelude.Maybe MergeMetadata,
+    -- | The name of the repository where the pull request was created.
+    repositoryName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PullRequestMergedStateChangedEventMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'destinationReference', 'pullRequestMergedStateChangedEventMetadata_destinationReference' - The name of the branch that the pull request is merged into.
+--
+-- 'mergeMetadata', 'pullRequestMergedStateChangedEventMetadata_mergeMetadata' - Information about the merge state change event.
+--
+-- 'repositoryName', 'pullRequestMergedStateChangedEventMetadata_repositoryName' - The name of the repository where the pull request was created.
+newPullRequestMergedStateChangedEventMetadata ::
+  PullRequestMergedStateChangedEventMetadata
+newPullRequestMergedStateChangedEventMetadata =
+  PullRequestMergedStateChangedEventMetadata'
+    { destinationReference =
+        Prelude.Nothing,
+      mergeMetadata = Prelude.Nothing,
+      repositoryName =
+        Prelude.Nothing
+    }
+
+-- | The name of the branch that the pull request is merged into.
+pullRequestMergedStateChangedEventMetadata_destinationReference :: Lens.Lens' PullRequestMergedStateChangedEventMetadata (Prelude.Maybe Prelude.Text)
+pullRequestMergedStateChangedEventMetadata_destinationReference = Lens.lens (\PullRequestMergedStateChangedEventMetadata' {destinationReference} -> destinationReference) (\s@PullRequestMergedStateChangedEventMetadata' {} a -> s {destinationReference = a} :: PullRequestMergedStateChangedEventMetadata)
+
+-- | Information about the merge state change event.
+pullRequestMergedStateChangedEventMetadata_mergeMetadata :: Lens.Lens' PullRequestMergedStateChangedEventMetadata (Prelude.Maybe MergeMetadata)
+pullRequestMergedStateChangedEventMetadata_mergeMetadata = Lens.lens (\PullRequestMergedStateChangedEventMetadata' {mergeMetadata} -> mergeMetadata) (\s@PullRequestMergedStateChangedEventMetadata' {} a -> s {mergeMetadata = a} :: PullRequestMergedStateChangedEventMetadata)
+
+-- | The name of the repository where the pull request was created.
+pullRequestMergedStateChangedEventMetadata_repositoryName :: Lens.Lens' PullRequestMergedStateChangedEventMetadata (Prelude.Maybe Prelude.Text)
+pullRequestMergedStateChangedEventMetadata_repositoryName = Lens.lens (\PullRequestMergedStateChangedEventMetadata' {repositoryName} -> repositoryName) (\s@PullRequestMergedStateChangedEventMetadata' {} a -> s {repositoryName = a} :: PullRequestMergedStateChangedEventMetadata)
+
+instance
+  Data.FromJSON
+    PullRequestMergedStateChangedEventMetadata
+  where
+  parseJSON =
+    Data.withObject
+      "PullRequestMergedStateChangedEventMetadata"
+      ( \x ->
+          PullRequestMergedStateChangedEventMetadata'
+            Prelude.<$> (x Data..:? "destinationReference")
+            Prelude.<*> (x Data..:? "mergeMetadata")
+            Prelude.<*> (x Data..:? "repositoryName")
+      )
+
+instance
+  Prelude.Hashable
+    PullRequestMergedStateChangedEventMetadata
+  where
+  hashWithSalt
+    _salt
+    PullRequestMergedStateChangedEventMetadata' {..} =
+      _salt
+        `Prelude.hashWithSalt` destinationReference
+        `Prelude.hashWithSalt` mergeMetadata
+        `Prelude.hashWithSalt` repositoryName
+
+instance
+  Prelude.NFData
+    PullRequestMergedStateChangedEventMetadata
+  where
+  rnf PullRequestMergedStateChangedEventMetadata' {..} =
+    Prelude.rnf destinationReference
+      `Prelude.seq` Prelude.rnf mergeMetadata
+      `Prelude.seq` Prelude.rnf repositoryName
diff --git a/gen/Amazonka/CodeCommit/Types/PullRequestSourceReferenceUpdatedEventMetadata.hs b/gen/Amazonka/CodeCommit/Types/PullRequestSourceReferenceUpdatedEventMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/PullRequestSourceReferenceUpdatedEventMetadata.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.PullRequestSourceReferenceUpdatedEventMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.PullRequestSourceReferenceUpdatedEventMetadata where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about an update to the source branch of a pull request.
+--
+-- /See:/ 'newPullRequestSourceReferenceUpdatedEventMetadata' smart constructor.
+data PullRequestSourceReferenceUpdatedEventMetadata = PullRequestSourceReferenceUpdatedEventMetadata'
+  { -- | The full commit ID of the commit in the source branch that was the tip
+    -- of the branch at the time the pull request was updated.
+    afterCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The full commit ID of the commit in the destination branch that was the
+    -- tip of the branch at the time the pull request was updated.
+    beforeCommitId :: Prelude.Maybe Prelude.Text,
+    -- | The commit ID of the most recent commit that the source branch and the
+    -- destination branch have in common.
+    mergeBase :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository where the pull request was updated.
+    repositoryName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PullRequestSourceReferenceUpdatedEventMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'afterCommitId', 'pullRequestSourceReferenceUpdatedEventMetadata_afterCommitId' - The full commit ID of the commit in the source branch that was the tip
+-- of the branch at the time the pull request was updated.
+--
+-- 'beforeCommitId', 'pullRequestSourceReferenceUpdatedEventMetadata_beforeCommitId' - The full commit ID of the commit in the destination branch that was the
+-- tip of the branch at the time the pull request was updated.
+--
+-- 'mergeBase', 'pullRequestSourceReferenceUpdatedEventMetadata_mergeBase' - The commit ID of the most recent commit that the source branch and the
+-- destination branch have in common.
+--
+-- 'repositoryName', 'pullRequestSourceReferenceUpdatedEventMetadata_repositoryName' - The name of the repository where the pull request was updated.
+newPullRequestSourceReferenceUpdatedEventMetadata ::
+  PullRequestSourceReferenceUpdatedEventMetadata
+newPullRequestSourceReferenceUpdatedEventMetadata =
+  PullRequestSourceReferenceUpdatedEventMetadata'
+    { afterCommitId =
+        Prelude.Nothing,
+      beforeCommitId =
+        Prelude.Nothing,
+      mergeBase = Prelude.Nothing,
+      repositoryName =
+        Prelude.Nothing
+    }
+
+-- | The full commit ID of the commit in the source branch that was the tip
+-- of the branch at the time the pull request was updated.
+pullRequestSourceReferenceUpdatedEventMetadata_afterCommitId :: Lens.Lens' PullRequestSourceReferenceUpdatedEventMetadata (Prelude.Maybe Prelude.Text)
+pullRequestSourceReferenceUpdatedEventMetadata_afterCommitId = Lens.lens (\PullRequestSourceReferenceUpdatedEventMetadata' {afterCommitId} -> afterCommitId) (\s@PullRequestSourceReferenceUpdatedEventMetadata' {} a -> s {afterCommitId = a} :: PullRequestSourceReferenceUpdatedEventMetadata)
+
+-- | The full commit ID of the commit in the destination branch that was the
+-- tip of the branch at the time the pull request was updated.
+pullRequestSourceReferenceUpdatedEventMetadata_beforeCommitId :: Lens.Lens' PullRequestSourceReferenceUpdatedEventMetadata (Prelude.Maybe Prelude.Text)
+pullRequestSourceReferenceUpdatedEventMetadata_beforeCommitId = Lens.lens (\PullRequestSourceReferenceUpdatedEventMetadata' {beforeCommitId} -> beforeCommitId) (\s@PullRequestSourceReferenceUpdatedEventMetadata' {} a -> s {beforeCommitId = a} :: PullRequestSourceReferenceUpdatedEventMetadata)
+
+-- | The commit ID of the most recent commit that the source branch and the
+-- destination branch have in common.
+pullRequestSourceReferenceUpdatedEventMetadata_mergeBase :: Lens.Lens' PullRequestSourceReferenceUpdatedEventMetadata (Prelude.Maybe Prelude.Text)
+pullRequestSourceReferenceUpdatedEventMetadata_mergeBase = Lens.lens (\PullRequestSourceReferenceUpdatedEventMetadata' {mergeBase} -> mergeBase) (\s@PullRequestSourceReferenceUpdatedEventMetadata' {} a -> s {mergeBase = a} :: PullRequestSourceReferenceUpdatedEventMetadata)
+
+-- | The name of the repository where the pull request was updated.
+pullRequestSourceReferenceUpdatedEventMetadata_repositoryName :: Lens.Lens' PullRequestSourceReferenceUpdatedEventMetadata (Prelude.Maybe Prelude.Text)
+pullRequestSourceReferenceUpdatedEventMetadata_repositoryName = Lens.lens (\PullRequestSourceReferenceUpdatedEventMetadata' {repositoryName} -> repositoryName) (\s@PullRequestSourceReferenceUpdatedEventMetadata' {} a -> s {repositoryName = a} :: PullRequestSourceReferenceUpdatedEventMetadata)
+
+instance
+  Data.FromJSON
+    PullRequestSourceReferenceUpdatedEventMetadata
+  where
+  parseJSON =
+    Data.withObject
+      "PullRequestSourceReferenceUpdatedEventMetadata"
+      ( \x ->
+          PullRequestSourceReferenceUpdatedEventMetadata'
+            Prelude.<$> (x Data..:? "afterCommitId")
+            Prelude.<*> (x Data..:? "beforeCommitId")
+            Prelude.<*> (x Data..:? "mergeBase")
+            Prelude.<*> (x Data..:? "repositoryName")
+      )
+
+instance
+  Prelude.Hashable
+    PullRequestSourceReferenceUpdatedEventMetadata
+  where
+  hashWithSalt
+    _salt
+    PullRequestSourceReferenceUpdatedEventMetadata' {..} =
+      _salt
+        `Prelude.hashWithSalt` afterCommitId
+        `Prelude.hashWithSalt` beforeCommitId
+        `Prelude.hashWithSalt` mergeBase
+        `Prelude.hashWithSalt` repositoryName
+
+instance
+  Prelude.NFData
+    PullRequestSourceReferenceUpdatedEventMetadata
+  where
+  rnf
+    PullRequestSourceReferenceUpdatedEventMetadata' {..} =
+      Prelude.rnf afterCommitId
+        `Prelude.seq` Prelude.rnf beforeCommitId
+        `Prelude.seq` Prelude.rnf mergeBase
+        `Prelude.seq` Prelude.rnf repositoryName
diff --git a/gen/Amazonka/CodeCommit/Types/PullRequestStatusChangedEventMetadata.hs b/gen/Amazonka/CodeCommit/Types/PullRequestStatusChangedEventMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/PullRequestStatusChangedEventMetadata.hs
@@ -0,0 +1,84 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.PullRequestStatusChangedEventMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.PullRequestStatusChangedEventMetadata where
+
+import Amazonka.CodeCommit.Types.PullRequestStatusEnum
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about a change to the status of a pull request.
+--
+-- /See:/ 'newPullRequestStatusChangedEventMetadata' smart constructor.
+data PullRequestStatusChangedEventMetadata = PullRequestStatusChangedEventMetadata'
+  { -- | The changed status of the pull request.
+    pullRequestStatus :: Prelude.Maybe PullRequestStatusEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PullRequestStatusChangedEventMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequestStatus', 'pullRequestStatusChangedEventMetadata_pullRequestStatus' - The changed status of the pull request.
+newPullRequestStatusChangedEventMetadata ::
+  PullRequestStatusChangedEventMetadata
+newPullRequestStatusChangedEventMetadata =
+  PullRequestStatusChangedEventMetadata'
+    { pullRequestStatus =
+        Prelude.Nothing
+    }
+
+-- | The changed status of the pull request.
+pullRequestStatusChangedEventMetadata_pullRequestStatus :: Lens.Lens' PullRequestStatusChangedEventMetadata (Prelude.Maybe PullRequestStatusEnum)
+pullRequestStatusChangedEventMetadata_pullRequestStatus = Lens.lens (\PullRequestStatusChangedEventMetadata' {pullRequestStatus} -> pullRequestStatus) (\s@PullRequestStatusChangedEventMetadata' {} a -> s {pullRequestStatus = a} :: PullRequestStatusChangedEventMetadata)
+
+instance
+  Data.FromJSON
+    PullRequestStatusChangedEventMetadata
+  where
+  parseJSON =
+    Data.withObject
+      "PullRequestStatusChangedEventMetadata"
+      ( \x ->
+          PullRequestStatusChangedEventMetadata'
+            Prelude.<$> (x Data..:? "pullRequestStatus")
+      )
+
+instance
+  Prelude.Hashable
+    PullRequestStatusChangedEventMetadata
+  where
+  hashWithSalt
+    _salt
+    PullRequestStatusChangedEventMetadata' {..} =
+      _salt `Prelude.hashWithSalt` pullRequestStatus
+
+instance
+  Prelude.NFData
+    PullRequestStatusChangedEventMetadata
+  where
+  rnf PullRequestStatusChangedEventMetadata' {..} =
+    Prelude.rnf pullRequestStatus
diff --git a/gen/Amazonka/CodeCommit/Types/PullRequestStatusEnum.hs b/gen/Amazonka/CodeCommit/Types/PullRequestStatusEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/PullRequestStatusEnum.hs
@@ -0,0 +1,71 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.PullRequestStatusEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.PullRequestStatusEnum
+  ( PullRequestStatusEnum
+      ( ..,
+        PullRequestStatusEnum_CLOSED,
+        PullRequestStatusEnum_OPEN
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype PullRequestStatusEnum = PullRequestStatusEnum'
+  { fromPullRequestStatusEnum ::
+      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 PullRequestStatusEnum_CLOSED :: PullRequestStatusEnum
+pattern PullRequestStatusEnum_CLOSED = PullRequestStatusEnum' "CLOSED"
+
+pattern PullRequestStatusEnum_OPEN :: PullRequestStatusEnum
+pattern PullRequestStatusEnum_OPEN = PullRequestStatusEnum' "OPEN"
+
+{-# COMPLETE
+  PullRequestStatusEnum_CLOSED,
+  PullRequestStatusEnum_OPEN,
+  PullRequestStatusEnum'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/PullRequestTarget.hs b/gen/Amazonka/CodeCommit/Types/PullRequestTarget.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/PullRequestTarget.hs
@@ -0,0 +1,173 @@
+{-# 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.CodeCommit.Types.PullRequestTarget
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.PullRequestTarget where
+
+import Amazonka.CodeCommit.Types.MergeMetadata
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a pull request target.
+--
+-- /See:/ 'newPullRequestTarget' smart constructor.
+data PullRequestTarget = PullRequestTarget'
+  { -- | The full commit ID that is the tip of the destination branch. This is
+    -- the commit where the pull request was or will be merged.
+    destinationCommit :: Prelude.Maybe Prelude.Text,
+    -- | The branch of the repository where the pull request changes are merged.
+    -- Also known as the destination branch.
+    destinationReference :: Prelude.Maybe Prelude.Text,
+    -- | The commit ID of the most recent commit that the source branch and the
+    -- destination branch have in common.
+    mergeBase :: Prelude.Maybe Prelude.Text,
+    -- | Returns metadata about the state of the merge, including whether the
+    -- merge has been made.
+    mergeMetadata :: Prelude.Maybe MergeMetadata,
+    -- | The name of the repository that contains the pull request source and
+    -- destination branches.
+    repositoryName :: Prelude.Maybe Prelude.Text,
+    -- | The full commit ID of the tip of the source branch used to create the
+    -- pull request. If the pull request branch is updated by a push while the
+    -- pull request is open, the commit ID changes to reflect the new tip of
+    -- the branch.
+    sourceCommit :: Prelude.Maybe Prelude.Text,
+    -- | The branch of the repository that contains the changes for the pull
+    -- request. Also known as the source branch.
+    sourceReference :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PullRequestTarget' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'destinationCommit', 'pullRequestTarget_destinationCommit' - The full commit ID that is the tip of the destination branch. This is
+-- the commit where the pull request was or will be merged.
+--
+-- 'destinationReference', 'pullRequestTarget_destinationReference' - The branch of the repository where the pull request changes are merged.
+-- Also known as the destination branch.
+--
+-- 'mergeBase', 'pullRequestTarget_mergeBase' - The commit ID of the most recent commit that the source branch and the
+-- destination branch have in common.
+--
+-- 'mergeMetadata', 'pullRequestTarget_mergeMetadata' - Returns metadata about the state of the merge, including whether the
+-- merge has been made.
+--
+-- 'repositoryName', 'pullRequestTarget_repositoryName' - The name of the repository that contains the pull request source and
+-- destination branches.
+--
+-- 'sourceCommit', 'pullRequestTarget_sourceCommit' - The full commit ID of the tip of the source branch used to create the
+-- pull request. If the pull request branch is updated by a push while the
+-- pull request is open, the commit ID changes to reflect the new tip of
+-- the branch.
+--
+-- 'sourceReference', 'pullRequestTarget_sourceReference' - The branch of the repository that contains the changes for the pull
+-- request. Also known as the source branch.
+newPullRequestTarget ::
+  PullRequestTarget
+newPullRequestTarget =
+  PullRequestTarget'
+    { destinationCommit =
+        Prelude.Nothing,
+      destinationReference = Prelude.Nothing,
+      mergeBase = Prelude.Nothing,
+      mergeMetadata = Prelude.Nothing,
+      repositoryName = Prelude.Nothing,
+      sourceCommit = Prelude.Nothing,
+      sourceReference = Prelude.Nothing
+    }
+
+-- | The full commit ID that is the tip of the destination branch. This is
+-- the commit where the pull request was or will be merged.
+pullRequestTarget_destinationCommit :: Lens.Lens' PullRequestTarget (Prelude.Maybe Prelude.Text)
+pullRequestTarget_destinationCommit = Lens.lens (\PullRequestTarget' {destinationCommit} -> destinationCommit) (\s@PullRequestTarget' {} a -> s {destinationCommit = a} :: PullRequestTarget)
+
+-- | The branch of the repository where the pull request changes are merged.
+-- Also known as the destination branch.
+pullRequestTarget_destinationReference :: Lens.Lens' PullRequestTarget (Prelude.Maybe Prelude.Text)
+pullRequestTarget_destinationReference = Lens.lens (\PullRequestTarget' {destinationReference} -> destinationReference) (\s@PullRequestTarget' {} a -> s {destinationReference = a} :: PullRequestTarget)
+
+-- | The commit ID of the most recent commit that the source branch and the
+-- destination branch have in common.
+pullRequestTarget_mergeBase :: Lens.Lens' PullRequestTarget (Prelude.Maybe Prelude.Text)
+pullRequestTarget_mergeBase = Lens.lens (\PullRequestTarget' {mergeBase} -> mergeBase) (\s@PullRequestTarget' {} a -> s {mergeBase = a} :: PullRequestTarget)
+
+-- | Returns metadata about the state of the merge, including whether the
+-- merge has been made.
+pullRequestTarget_mergeMetadata :: Lens.Lens' PullRequestTarget (Prelude.Maybe MergeMetadata)
+pullRequestTarget_mergeMetadata = Lens.lens (\PullRequestTarget' {mergeMetadata} -> mergeMetadata) (\s@PullRequestTarget' {} a -> s {mergeMetadata = a} :: PullRequestTarget)
+
+-- | The name of the repository that contains the pull request source and
+-- destination branches.
+pullRequestTarget_repositoryName :: Lens.Lens' PullRequestTarget (Prelude.Maybe Prelude.Text)
+pullRequestTarget_repositoryName = Lens.lens (\PullRequestTarget' {repositoryName} -> repositoryName) (\s@PullRequestTarget' {} a -> s {repositoryName = a} :: PullRequestTarget)
+
+-- | The full commit ID of the tip of the source branch used to create the
+-- pull request. If the pull request branch is updated by a push while the
+-- pull request is open, the commit ID changes to reflect the new tip of
+-- the branch.
+pullRequestTarget_sourceCommit :: Lens.Lens' PullRequestTarget (Prelude.Maybe Prelude.Text)
+pullRequestTarget_sourceCommit = Lens.lens (\PullRequestTarget' {sourceCommit} -> sourceCommit) (\s@PullRequestTarget' {} a -> s {sourceCommit = a} :: PullRequestTarget)
+
+-- | The branch of the repository that contains the changes for the pull
+-- request. Also known as the source branch.
+pullRequestTarget_sourceReference :: Lens.Lens' PullRequestTarget (Prelude.Maybe Prelude.Text)
+pullRequestTarget_sourceReference = Lens.lens (\PullRequestTarget' {sourceReference} -> sourceReference) (\s@PullRequestTarget' {} a -> s {sourceReference = a} :: PullRequestTarget)
+
+instance Data.FromJSON PullRequestTarget where
+  parseJSON =
+    Data.withObject
+      "PullRequestTarget"
+      ( \x ->
+          PullRequestTarget'
+            Prelude.<$> (x Data..:? "destinationCommit")
+            Prelude.<*> (x Data..:? "destinationReference")
+            Prelude.<*> (x Data..:? "mergeBase")
+            Prelude.<*> (x Data..:? "mergeMetadata")
+            Prelude.<*> (x Data..:? "repositoryName")
+            Prelude.<*> (x Data..:? "sourceCommit")
+            Prelude.<*> (x Data..:? "sourceReference")
+      )
+
+instance Prelude.Hashable PullRequestTarget where
+  hashWithSalt _salt PullRequestTarget' {..} =
+    _salt
+      `Prelude.hashWithSalt` destinationCommit
+      `Prelude.hashWithSalt` destinationReference
+      `Prelude.hashWithSalt` mergeBase
+      `Prelude.hashWithSalt` mergeMetadata
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` sourceCommit
+      `Prelude.hashWithSalt` sourceReference
+
+instance Prelude.NFData PullRequestTarget where
+  rnf PullRequestTarget' {..} =
+    Prelude.rnf destinationCommit
+      `Prelude.seq` Prelude.rnf destinationReference
+      `Prelude.seq` Prelude.rnf mergeBase
+      `Prelude.seq` Prelude.rnf mergeMetadata
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf sourceCommit
+      `Prelude.seq` Prelude.rnf sourceReference
diff --git a/gen/Amazonka/CodeCommit/Types/PutFileEntry.hs b/gen/Amazonka/CodeCommit/Types/PutFileEntry.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/PutFileEntry.hs
@@ -0,0 +1,131 @@
+{-# 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.CodeCommit.Types.PutFileEntry
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.PutFileEntry where
+
+import Amazonka.CodeCommit.Types.FileModeTypeEnum
+import Amazonka.CodeCommit.Types.SourceFileSpecifier
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about a file added or updated as part of a commit.
+--
+-- /See:/ 'newPutFileEntry' smart constructor.
+data PutFileEntry = PutFileEntry'
+  { -- | The content of the file, if a source file is not specified.
+    fileContent :: Prelude.Maybe Data.Base64,
+    -- | The extrapolated file mode permissions for the file. Valid values
+    -- include EXECUTABLE and NORMAL.
+    fileMode :: Prelude.Maybe FileModeTypeEnum,
+    -- | The name and full path of the file that contains the changes you want to
+    -- make as part of the commit, if you are not providing the file content
+    -- directly.
+    sourceFile :: Prelude.Maybe SourceFileSpecifier,
+    -- | The full path to the file in the repository, including the name of the
+    -- file.
+    filePath :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PutFileEntry' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'fileContent', 'putFileEntry_fileContent' - The content of the file, if a source file is not specified.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+--
+-- 'fileMode', 'putFileEntry_fileMode' - The extrapolated file mode permissions for the file. Valid values
+-- include EXECUTABLE and NORMAL.
+--
+-- 'sourceFile', 'putFileEntry_sourceFile' - The name and full path of the file that contains the changes you want to
+-- make as part of the commit, if you are not providing the file content
+-- directly.
+--
+-- 'filePath', 'putFileEntry_filePath' - The full path to the file in the repository, including the name of the
+-- file.
+newPutFileEntry ::
+  -- | 'filePath'
+  Prelude.Text ->
+  PutFileEntry
+newPutFileEntry pFilePath_ =
+  PutFileEntry'
+    { fileContent = Prelude.Nothing,
+      fileMode = Prelude.Nothing,
+      sourceFile = Prelude.Nothing,
+      filePath = pFilePath_
+    }
+
+-- | The content of the file, if a source file is not specified.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+putFileEntry_fileContent :: Lens.Lens' PutFileEntry (Prelude.Maybe Prelude.ByteString)
+putFileEntry_fileContent = Lens.lens (\PutFileEntry' {fileContent} -> fileContent) (\s@PutFileEntry' {} a -> s {fileContent = a} :: PutFileEntry) Prelude.. Lens.mapping Data._Base64
+
+-- | The extrapolated file mode permissions for the file. Valid values
+-- include EXECUTABLE and NORMAL.
+putFileEntry_fileMode :: Lens.Lens' PutFileEntry (Prelude.Maybe FileModeTypeEnum)
+putFileEntry_fileMode = Lens.lens (\PutFileEntry' {fileMode} -> fileMode) (\s@PutFileEntry' {} a -> s {fileMode = a} :: PutFileEntry)
+
+-- | The name and full path of the file that contains the changes you want to
+-- make as part of the commit, if you are not providing the file content
+-- directly.
+putFileEntry_sourceFile :: Lens.Lens' PutFileEntry (Prelude.Maybe SourceFileSpecifier)
+putFileEntry_sourceFile = Lens.lens (\PutFileEntry' {sourceFile} -> sourceFile) (\s@PutFileEntry' {} a -> s {sourceFile = a} :: PutFileEntry)
+
+-- | The full path to the file in the repository, including the name of the
+-- file.
+putFileEntry_filePath :: Lens.Lens' PutFileEntry Prelude.Text
+putFileEntry_filePath = Lens.lens (\PutFileEntry' {filePath} -> filePath) (\s@PutFileEntry' {} a -> s {filePath = a} :: PutFileEntry)
+
+instance Prelude.Hashable PutFileEntry where
+  hashWithSalt _salt PutFileEntry' {..} =
+    _salt
+      `Prelude.hashWithSalt` fileContent
+      `Prelude.hashWithSalt` fileMode
+      `Prelude.hashWithSalt` sourceFile
+      `Prelude.hashWithSalt` filePath
+
+instance Prelude.NFData PutFileEntry where
+  rnf PutFileEntry' {..} =
+    Prelude.rnf fileContent
+      `Prelude.seq` Prelude.rnf fileMode
+      `Prelude.seq` Prelude.rnf sourceFile
+      `Prelude.seq` Prelude.rnf filePath
+
+instance Data.ToJSON PutFileEntry where
+  toJSON PutFileEntry' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("fileContent" Data..=) Prelude.<$> fileContent,
+            ("fileMode" Data..=) Prelude.<$> fileMode,
+            ("sourceFile" Data..=) Prelude.<$> sourceFile,
+            Prelude.Just ("filePath" Data..= filePath)
+          ]
+      )
diff --git a/gen/Amazonka/CodeCommit/Types/ReactionForComment.hs b/gen/Amazonka/CodeCommit/Types/ReactionForComment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ReactionForComment.hs
@@ -0,0 +1,109 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ReactionForComment
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ReactionForComment where
+
+import Amazonka.CodeCommit.Types.ReactionValueFormats
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about the reaction values provided by users on a comment.
+--
+-- /See:/ 'newReactionForComment' smart constructor.
+data ReactionForComment = ReactionForComment'
+  { -- | The reaction for a specified comment.
+    reaction :: Prelude.Maybe ReactionValueFormats,
+    -- | The Amazon Resource Names (ARNs) of users who have provided reactions to
+    -- the comment.
+    reactionUsers :: Prelude.Maybe [Prelude.Text],
+    -- | A numerical count of users who reacted with the specified emoji whose
+    -- identities have been subsequently deleted from IAM. While these IAM
+    -- users or roles no longer exist, the reactions might still appear in
+    -- total reaction counts.
+    reactionsFromDeletedUsersCount :: Prelude.Maybe Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ReactionForComment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'reaction', 'reactionForComment_reaction' - The reaction for a specified comment.
+--
+-- 'reactionUsers', 'reactionForComment_reactionUsers' - The Amazon Resource Names (ARNs) of users who have provided reactions to
+-- the comment.
+--
+-- 'reactionsFromDeletedUsersCount', 'reactionForComment_reactionsFromDeletedUsersCount' - A numerical count of users who reacted with the specified emoji whose
+-- identities have been subsequently deleted from IAM. While these IAM
+-- users or roles no longer exist, the reactions might still appear in
+-- total reaction counts.
+newReactionForComment ::
+  ReactionForComment
+newReactionForComment =
+  ReactionForComment'
+    { reaction = Prelude.Nothing,
+      reactionUsers = Prelude.Nothing,
+      reactionsFromDeletedUsersCount = Prelude.Nothing
+    }
+
+-- | The reaction for a specified comment.
+reactionForComment_reaction :: Lens.Lens' ReactionForComment (Prelude.Maybe ReactionValueFormats)
+reactionForComment_reaction = Lens.lens (\ReactionForComment' {reaction} -> reaction) (\s@ReactionForComment' {} a -> s {reaction = a} :: ReactionForComment)
+
+-- | The Amazon Resource Names (ARNs) of users who have provided reactions to
+-- the comment.
+reactionForComment_reactionUsers :: Lens.Lens' ReactionForComment (Prelude.Maybe [Prelude.Text])
+reactionForComment_reactionUsers = Lens.lens (\ReactionForComment' {reactionUsers} -> reactionUsers) (\s@ReactionForComment' {} a -> s {reactionUsers = a} :: ReactionForComment) Prelude.. Lens.mapping Lens.coerced
+
+-- | A numerical count of users who reacted with the specified emoji whose
+-- identities have been subsequently deleted from IAM. While these IAM
+-- users or roles no longer exist, the reactions might still appear in
+-- total reaction counts.
+reactionForComment_reactionsFromDeletedUsersCount :: Lens.Lens' ReactionForComment (Prelude.Maybe Prelude.Int)
+reactionForComment_reactionsFromDeletedUsersCount = Lens.lens (\ReactionForComment' {reactionsFromDeletedUsersCount} -> reactionsFromDeletedUsersCount) (\s@ReactionForComment' {} a -> s {reactionsFromDeletedUsersCount = a} :: ReactionForComment)
+
+instance Data.FromJSON ReactionForComment where
+  parseJSON =
+    Data.withObject
+      "ReactionForComment"
+      ( \x ->
+          ReactionForComment'
+            Prelude.<$> (x Data..:? "reaction")
+            Prelude.<*> (x Data..:? "reactionUsers" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "reactionsFromDeletedUsersCount")
+      )
+
+instance Prelude.Hashable ReactionForComment where
+  hashWithSalt _salt ReactionForComment' {..} =
+    _salt
+      `Prelude.hashWithSalt` reaction
+      `Prelude.hashWithSalt` reactionUsers
+      `Prelude.hashWithSalt` reactionsFromDeletedUsersCount
+
+instance Prelude.NFData ReactionForComment where
+  rnf ReactionForComment' {..} =
+    Prelude.rnf reaction
+      `Prelude.seq` Prelude.rnf reactionUsers
+      `Prelude.seq` Prelude.rnf reactionsFromDeletedUsersCount
diff --git a/gen/Amazonka/CodeCommit/Types/ReactionValueFormats.hs b/gen/Amazonka/CodeCommit/Types/ReactionValueFormats.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ReactionValueFormats.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.CodeCommit.Types.ReactionValueFormats
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ReactionValueFormats where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about the values for reactions to a comment. AWS CodeCommit
+-- supports a limited set of reactions.
+--
+-- /See:/ 'newReactionValueFormats' smart constructor.
+data ReactionValueFormats = ReactionValueFormats'
+  { -- | The Emoji Version 1.0 graphic of the reaction. These graphics are
+    -- interpreted slightly differently on different operating systems.
+    emoji :: Prelude.Maybe Prelude.Text,
+    -- | The emoji short code for the reaction. Short codes are interpreted
+    -- slightly differently on different operating systems.
+    shortCode :: Prelude.Maybe Prelude.Text,
+    -- | The Unicode codepoint for the reaction.
+    unicode :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ReactionValueFormats' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'emoji', 'reactionValueFormats_emoji' - The Emoji Version 1.0 graphic of the reaction. These graphics are
+-- interpreted slightly differently on different operating systems.
+--
+-- 'shortCode', 'reactionValueFormats_shortCode' - The emoji short code for the reaction. Short codes are interpreted
+-- slightly differently on different operating systems.
+--
+-- 'unicode', 'reactionValueFormats_unicode' - The Unicode codepoint for the reaction.
+newReactionValueFormats ::
+  ReactionValueFormats
+newReactionValueFormats =
+  ReactionValueFormats'
+    { emoji = Prelude.Nothing,
+      shortCode = Prelude.Nothing,
+      unicode = Prelude.Nothing
+    }
+
+-- | The Emoji Version 1.0 graphic of the reaction. These graphics are
+-- interpreted slightly differently on different operating systems.
+reactionValueFormats_emoji :: Lens.Lens' ReactionValueFormats (Prelude.Maybe Prelude.Text)
+reactionValueFormats_emoji = Lens.lens (\ReactionValueFormats' {emoji} -> emoji) (\s@ReactionValueFormats' {} a -> s {emoji = a} :: ReactionValueFormats)
+
+-- | The emoji short code for the reaction. Short codes are interpreted
+-- slightly differently on different operating systems.
+reactionValueFormats_shortCode :: Lens.Lens' ReactionValueFormats (Prelude.Maybe Prelude.Text)
+reactionValueFormats_shortCode = Lens.lens (\ReactionValueFormats' {shortCode} -> shortCode) (\s@ReactionValueFormats' {} a -> s {shortCode = a} :: ReactionValueFormats)
+
+-- | The Unicode codepoint for the reaction.
+reactionValueFormats_unicode :: Lens.Lens' ReactionValueFormats (Prelude.Maybe Prelude.Text)
+reactionValueFormats_unicode = Lens.lens (\ReactionValueFormats' {unicode} -> unicode) (\s@ReactionValueFormats' {} a -> s {unicode = a} :: ReactionValueFormats)
+
+instance Data.FromJSON ReactionValueFormats where
+  parseJSON =
+    Data.withObject
+      "ReactionValueFormats"
+      ( \x ->
+          ReactionValueFormats'
+            Prelude.<$> (x Data..:? "emoji")
+            Prelude.<*> (x Data..:? "shortCode")
+            Prelude.<*> (x Data..:? "unicode")
+      )
+
+instance Prelude.Hashable ReactionValueFormats where
+  hashWithSalt _salt ReactionValueFormats' {..} =
+    _salt
+      `Prelude.hashWithSalt` emoji
+      `Prelude.hashWithSalt` shortCode
+      `Prelude.hashWithSalt` unicode
+
+instance Prelude.NFData ReactionValueFormats where
+  rnf ReactionValueFormats' {..} =
+    Prelude.rnf emoji
+      `Prelude.seq` Prelude.rnf shortCode
+      `Prelude.seq` Prelude.rnf unicode
diff --git a/gen/Amazonka/CodeCommit/Types/RelativeFileVersionEnum.hs b/gen/Amazonka/CodeCommit/Types/RelativeFileVersionEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/RelativeFileVersionEnum.hs
@@ -0,0 +1,71 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.RelativeFileVersionEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.RelativeFileVersionEnum
+  ( RelativeFileVersionEnum
+      ( ..,
+        RelativeFileVersionEnum_AFTER,
+        RelativeFileVersionEnum_BEFORE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype RelativeFileVersionEnum = RelativeFileVersionEnum'
+  { fromRelativeFileVersionEnum ::
+      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 RelativeFileVersionEnum_AFTER :: RelativeFileVersionEnum
+pattern RelativeFileVersionEnum_AFTER = RelativeFileVersionEnum' "AFTER"
+
+pattern RelativeFileVersionEnum_BEFORE :: RelativeFileVersionEnum
+pattern RelativeFileVersionEnum_BEFORE = RelativeFileVersionEnum' "BEFORE"
+
+{-# COMPLETE
+  RelativeFileVersionEnum_AFTER,
+  RelativeFileVersionEnum_BEFORE,
+  RelativeFileVersionEnum'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/ReplaceContentEntry.hs b/gen/Amazonka/CodeCommit/Types/ReplaceContentEntry.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ReplaceContentEntry.hs
@@ -0,0 +1,129 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ReplaceContentEntry
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ReplaceContentEntry where
+
+import Amazonka.CodeCommit.Types.FileModeTypeEnum
+import Amazonka.CodeCommit.Types.ReplacementTypeEnum
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about a replacement content entry in the conflict of a merge
+-- or pull request operation.
+--
+-- /See:/ 'newReplaceContentEntry' smart constructor.
+data ReplaceContentEntry = ReplaceContentEntry'
+  { -- | The base-64 encoded content to use when the replacement type is
+    -- USE_NEW_CONTENT.
+    content :: Prelude.Maybe Data.Base64,
+    -- | The file mode to apply during conflict resoltion.
+    fileMode :: Prelude.Maybe FileModeTypeEnum,
+    -- | The path of the conflicting file.
+    filePath :: Prelude.Text,
+    -- | The replacement type to use when determining how to resolve the
+    -- conflict.
+    replacementType :: ReplacementTypeEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ReplaceContentEntry' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'content', 'replaceContentEntry_content' - The base-64 encoded content to use when the replacement type is
+-- USE_NEW_CONTENT.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+--
+-- 'fileMode', 'replaceContentEntry_fileMode' - The file mode to apply during conflict resoltion.
+--
+-- 'filePath', 'replaceContentEntry_filePath' - The path of the conflicting file.
+--
+-- 'replacementType', 'replaceContentEntry_replacementType' - The replacement type to use when determining how to resolve the
+-- conflict.
+newReplaceContentEntry ::
+  -- | 'filePath'
+  Prelude.Text ->
+  -- | 'replacementType'
+  ReplacementTypeEnum ->
+  ReplaceContentEntry
+newReplaceContentEntry pFilePath_ pReplacementType_ =
+  ReplaceContentEntry'
+    { content = Prelude.Nothing,
+      fileMode = Prelude.Nothing,
+      filePath = pFilePath_,
+      replacementType = pReplacementType_
+    }
+
+-- | The base-64 encoded content to use when the replacement type is
+-- USE_NEW_CONTENT.--
+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
+-- -- The underlying isomorphism will encode to Base64 representation during
+-- -- serialisation, and decode from Base64 representation during deserialisation.
+-- -- This 'Lens' accepts and returns only raw unencoded data.
+replaceContentEntry_content :: Lens.Lens' ReplaceContentEntry (Prelude.Maybe Prelude.ByteString)
+replaceContentEntry_content = Lens.lens (\ReplaceContentEntry' {content} -> content) (\s@ReplaceContentEntry' {} a -> s {content = a} :: ReplaceContentEntry) Prelude.. Lens.mapping Data._Base64
+
+-- | The file mode to apply during conflict resoltion.
+replaceContentEntry_fileMode :: Lens.Lens' ReplaceContentEntry (Prelude.Maybe FileModeTypeEnum)
+replaceContentEntry_fileMode = Lens.lens (\ReplaceContentEntry' {fileMode} -> fileMode) (\s@ReplaceContentEntry' {} a -> s {fileMode = a} :: ReplaceContentEntry)
+
+-- | The path of the conflicting file.
+replaceContentEntry_filePath :: Lens.Lens' ReplaceContentEntry Prelude.Text
+replaceContentEntry_filePath = Lens.lens (\ReplaceContentEntry' {filePath} -> filePath) (\s@ReplaceContentEntry' {} a -> s {filePath = a} :: ReplaceContentEntry)
+
+-- | The replacement type to use when determining how to resolve the
+-- conflict.
+replaceContentEntry_replacementType :: Lens.Lens' ReplaceContentEntry ReplacementTypeEnum
+replaceContentEntry_replacementType = Lens.lens (\ReplaceContentEntry' {replacementType} -> replacementType) (\s@ReplaceContentEntry' {} a -> s {replacementType = a} :: ReplaceContentEntry)
+
+instance Prelude.Hashable ReplaceContentEntry where
+  hashWithSalt _salt ReplaceContentEntry' {..} =
+    _salt
+      `Prelude.hashWithSalt` content
+      `Prelude.hashWithSalt` fileMode
+      `Prelude.hashWithSalt` filePath
+      `Prelude.hashWithSalt` replacementType
+
+instance Prelude.NFData ReplaceContentEntry where
+  rnf ReplaceContentEntry' {..} =
+    Prelude.rnf content
+      `Prelude.seq` Prelude.rnf fileMode
+      `Prelude.seq` Prelude.rnf filePath
+      `Prelude.seq` Prelude.rnf replacementType
+
+instance Data.ToJSON ReplaceContentEntry where
+  toJSON ReplaceContentEntry' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("content" Data..=) Prelude.<$> content,
+            ("fileMode" Data..=) Prelude.<$> fileMode,
+            Prelude.Just ("filePath" Data..= filePath),
+            Prelude.Just
+              ("replacementType" Data..= replacementType)
+          ]
+      )
diff --git a/gen/Amazonka/CodeCommit/Types/ReplacementTypeEnum.hs b/gen/Amazonka/CodeCommit/Types/ReplacementTypeEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/ReplacementTypeEnum.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.ReplacementTypeEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.ReplacementTypeEnum
+  ( ReplacementTypeEnum
+      ( ..,
+        ReplacementTypeEnum_KEEP_BASE,
+        ReplacementTypeEnum_KEEP_DESTINATION,
+        ReplacementTypeEnum_KEEP_SOURCE,
+        ReplacementTypeEnum_USE_NEW_CONTENT
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ReplacementTypeEnum = ReplacementTypeEnum'
+  { fromReplacementTypeEnum ::
+      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 ReplacementTypeEnum_KEEP_BASE :: ReplacementTypeEnum
+pattern ReplacementTypeEnum_KEEP_BASE = ReplacementTypeEnum' "KEEP_BASE"
+
+pattern ReplacementTypeEnum_KEEP_DESTINATION :: ReplacementTypeEnum
+pattern ReplacementTypeEnum_KEEP_DESTINATION = ReplacementTypeEnum' "KEEP_DESTINATION"
+
+pattern ReplacementTypeEnum_KEEP_SOURCE :: ReplacementTypeEnum
+pattern ReplacementTypeEnum_KEEP_SOURCE = ReplacementTypeEnum' "KEEP_SOURCE"
+
+pattern ReplacementTypeEnum_USE_NEW_CONTENT :: ReplacementTypeEnum
+pattern ReplacementTypeEnum_USE_NEW_CONTENT = ReplacementTypeEnum' "USE_NEW_CONTENT"
+
+{-# COMPLETE
+  ReplacementTypeEnum_KEEP_BASE,
+  ReplacementTypeEnum_KEEP_DESTINATION,
+  ReplacementTypeEnum_KEEP_SOURCE,
+  ReplacementTypeEnum_USE_NEW_CONTENT,
+  ReplacementTypeEnum'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/RepositoryMetadata.hs b/gen/Amazonka/CodeCommit/Types/RepositoryMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/RepositoryMetadata.hs
@@ -0,0 +1,180 @@
+{-# 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.CodeCommit.Types.RepositoryMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.RepositoryMetadata where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about a repository.
+--
+-- /See:/ 'newRepositoryMetadata' smart constructor.
+data RepositoryMetadata = RepositoryMetadata'
+  { -- | The Amazon Resource Name (ARN) of the repository.
+    arn :: Prelude.Maybe Prelude.Text,
+    -- | The ID of the AWS account associated with the repository.
+    accountId :: Prelude.Maybe Prelude.Text,
+    -- | The URL to use for cloning the repository over HTTPS.
+    cloneUrlHttp :: Prelude.Maybe Prelude.Text,
+    -- | The URL to use for cloning the repository over SSH.
+    cloneUrlSsh :: Prelude.Maybe Prelude.Text,
+    -- | The date and time the repository was created, in timestamp format.
+    creationDate :: Prelude.Maybe Data.POSIX,
+    -- | The repository\'s default branch name.
+    defaultBranch :: Prelude.Maybe Prelude.Text,
+    -- | The date and time the repository was last modified, in timestamp format.
+    lastModifiedDate :: Prelude.Maybe Data.POSIX,
+    -- | A comment or description about the repository.
+    repositoryDescription :: Prelude.Maybe Prelude.Text,
+    -- | The ID of the repository.
+    repositoryId :: Prelude.Maybe Prelude.Text,
+    -- | The repository\'s name.
+    repositoryName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RepositoryMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'arn', 'repositoryMetadata_arn' - The Amazon Resource Name (ARN) of the repository.
+--
+-- 'accountId', 'repositoryMetadata_accountId' - The ID of the AWS account associated with the repository.
+--
+-- 'cloneUrlHttp', 'repositoryMetadata_cloneUrlHttp' - The URL to use for cloning the repository over HTTPS.
+--
+-- 'cloneUrlSsh', 'repositoryMetadata_cloneUrlSsh' - The URL to use for cloning the repository over SSH.
+--
+-- 'creationDate', 'repositoryMetadata_creationDate' - The date and time the repository was created, in timestamp format.
+--
+-- 'defaultBranch', 'repositoryMetadata_defaultBranch' - The repository\'s default branch name.
+--
+-- 'lastModifiedDate', 'repositoryMetadata_lastModifiedDate' - The date and time the repository was last modified, in timestamp format.
+--
+-- 'repositoryDescription', 'repositoryMetadata_repositoryDescription' - A comment or description about the repository.
+--
+-- 'repositoryId', 'repositoryMetadata_repositoryId' - The ID of the repository.
+--
+-- 'repositoryName', 'repositoryMetadata_repositoryName' - The repository\'s name.
+newRepositoryMetadata ::
+  RepositoryMetadata
+newRepositoryMetadata =
+  RepositoryMetadata'
+    { arn = Prelude.Nothing,
+      accountId = Prelude.Nothing,
+      cloneUrlHttp = Prelude.Nothing,
+      cloneUrlSsh = Prelude.Nothing,
+      creationDate = Prelude.Nothing,
+      defaultBranch = Prelude.Nothing,
+      lastModifiedDate = Prelude.Nothing,
+      repositoryDescription = Prelude.Nothing,
+      repositoryId = Prelude.Nothing,
+      repositoryName = Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) of the repository.
+repositoryMetadata_arn :: Lens.Lens' RepositoryMetadata (Prelude.Maybe Prelude.Text)
+repositoryMetadata_arn = Lens.lens (\RepositoryMetadata' {arn} -> arn) (\s@RepositoryMetadata' {} a -> s {arn = a} :: RepositoryMetadata)
+
+-- | The ID of the AWS account associated with the repository.
+repositoryMetadata_accountId :: Lens.Lens' RepositoryMetadata (Prelude.Maybe Prelude.Text)
+repositoryMetadata_accountId = Lens.lens (\RepositoryMetadata' {accountId} -> accountId) (\s@RepositoryMetadata' {} a -> s {accountId = a} :: RepositoryMetadata)
+
+-- | The URL to use for cloning the repository over HTTPS.
+repositoryMetadata_cloneUrlHttp :: Lens.Lens' RepositoryMetadata (Prelude.Maybe Prelude.Text)
+repositoryMetadata_cloneUrlHttp = Lens.lens (\RepositoryMetadata' {cloneUrlHttp} -> cloneUrlHttp) (\s@RepositoryMetadata' {} a -> s {cloneUrlHttp = a} :: RepositoryMetadata)
+
+-- | The URL to use for cloning the repository over SSH.
+repositoryMetadata_cloneUrlSsh :: Lens.Lens' RepositoryMetadata (Prelude.Maybe Prelude.Text)
+repositoryMetadata_cloneUrlSsh = Lens.lens (\RepositoryMetadata' {cloneUrlSsh} -> cloneUrlSsh) (\s@RepositoryMetadata' {} a -> s {cloneUrlSsh = a} :: RepositoryMetadata)
+
+-- | The date and time the repository was created, in timestamp format.
+repositoryMetadata_creationDate :: Lens.Lens' RepositoryMetadata (Prelude.Maybe Prelude.UTCTime)
+repositoryMetadata_creationDate = Lens.lens (\RepositoryMetadata' {creationDate} -> creationDate) (\s@RepositoryMetadata' {} a -> s {creationDate = a} :: RepositoryMetadata) Prelude.. Lens.mapping Data._Time
+
+-- | The repository\'s default branch name.
+repositoryMetadata_defaultBranch :: Lens.Lens' RepositoryMetadata (Prelude.Maybe Prelude.Text)
+repositoryMetadata_defaultBranch = Lens.lens (\RepositoryMetadata' {defaultBranch} -> defaultBranch) (\s@RepositoryMetadata' {} a -> s {defaultBranch = a} :: RepositoryMetadata)
+
+-- | The date and time the repository was last modified, in timestamp format.
+repositoryMetadata_lastModifiedDate :: Lens.Lens' RepositoryMetadata (Prelude.Maybe Prelude.UTCTime)
+repositoryMetadata_lastModifiedDate = Lens.lens (\RepositoryMetadata' {lastModifiedDate} -> lastModifiedDate) (\s@RepositoryMetadata' {} a -> s {lastModifiedDate = a} :: RepositoryMetadata) Prelude.. Lens.mapping Data._Time
+
+-- | A comment or description about the repository.
+repositoryMetadata_repositoryDescription :: Lens.Lens' RepositoryMetadata (Prelude.Maybe Prelude.Text)
+repositoryMetadata_repositoryDescription = Lens.lens (\RepositoryMetadata' {repositoryDescription} -> repositoryDescription) (\s@RepositoryMetadata' {} a -> s {repositoryDescription = a} :: RepositoryMetadata)
+
+-- | The ID of the repository.
+repositoryMetadata_repositoryId :: Lens.Lens' RepositoryMetadata (Prelude.Maybe Prelude.Text)
+repositoryMetadata_repositoryId = Lens.lens (\RepositoryMetadata' {repositoryId} -> repositoryId) (\s@RepositoryMetadata' {} a -> s {repositoryId = a} :: RepositoryMetadata)
+
+-- | The repository\'s name.
+repositoryMetadata_repositoryName :: Lens.Lens' RepositoryMetadata (Prelude.Maybe Prelude.Text)
+repositoryMetadata_repositoryName = Lens.lens (\RepositoryMetadata' {repositoryName} -> repositoryName) (\s@RepositoryMetadata' {} a -> s {repositoryName = a} :: RepositoryMetadata)
+
+instance Data.FromJSON RepositoryMetadata where
+  parseJSON =
+    Data.withObject
+      "RepositoryMetadata"
+      ( \x ->
+          RepositoryMetadata'
+            Prelude.<$> (x Data..:? "Arn")
+            Prelude.<*> (x Data..:? "accountId")
+            Prelude.<*> (x Data..:? "cloneUrlHttp")
+            Prelude.<*> (x Data..:? "cloneUrlSsh")
+            Prelude.<*> (x Data..:? "creationDate")
+            Prelude.<*> (x Data..:? "defaultBranch")
+            Prelude.<*> (x Data..:? "lastModifiedDate")
+            Prelude.<*> (x Data..:? "repositoryDescription")
+            Prelude.<*> (x Data..:? "repositoryId")
+            Prelude.<*> (x Data..:? "repositoryName")
+      )
+
+instance Prelude.Hashable RepositoryMetadata where
+  hashWithSalt _salt RepositoryMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` arn
+      `Prelude.hashWithSalt` accountId
+      `Prelude.hashWithSalt` cloneUrlHttp
+      `Prelude.hashWithSalt` cloneUrlSsh
+      `Prelude.hashWithSalt` creationDate
+      `Prelude.hashWithSalt` defaultBranch
+      `Prelude.hashWithSalt` lastModifiedDate
+      `Prelude.hashWithSalt` repositoryDescription
+      `Prelude.hashWithSalt` repositoryId
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData RepositoryMetadata where
+  rnf RepositoryMetadata' {..} =
+    Prelude.rnf arn
+      `Prelude.seq` Prelude.rnf accountId
+      `Prelude.seq` Prelude.rnf cloneUrlHttp
+      `Prelude.seq` Prelude.rnf cloneUrlSsh
+      `Prelude.seq` Prelude.rnf creationDate
+      `Prelude.seq` Prelude.rnf defaultBranch
+      `Prelude.seq` Prelude.rnf lastModifiedDate
+      `Prelude.seq` Prelude.rnf repositoryDescription
+      `Prelude.seq` Prelude.rnf repositoryId
+      `Prelude.seq` Prelude.rnf repositoryName
diff --git a/gen/Amazonka/CodeCommit/Types/RepositoryNameIdPair.hs b/gen/Amazonka/CodeCommit/Types/RepositoryNameIdPair.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/RepositoryNameIdPair.hs
@@ -0,0 +1,85 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.RepositoryNameIdPair
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.RepositoryNameIdPair where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about a repository name and ID.
+--
+-- /See:/ 'newRepositoryNameIdPair' smart constructor.
+data RepositoryNameIdPair = RepositoryNameIdPair'
+  { -- | The ID associated with the repository.
+    repositoryId :: Prelude.Maybe Prelude.Text,
+    -- | The name associated with the repository.
+    repositoryName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RepositoryNameIdPair' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryId', 'repositoryNameIdPair_repositoryId' - The ID associated with the repository.
+--
+-- 'repositoryName', 'repositoryNameIdPair_repositoryName' - The name associated with the repository.
+newRepositoryNameIdPair ::
+  RepositoryNameIdPair
+newRepositoryNameIdPair =
+  RepositoryNameIdPair'
+    { repositoryId =
+        Prelude.Nothing,
+      repositoryName = Prelude.Nothing
+    }
+
+-- | The ID associated with the repository.
+repositoryNameIdPair_repositoryId :: Lens.Lens' RepositoryNameIdPair (Prelude.Maybe Prelude.Text)
+repositoryNameIdPair_repositoryId = Lens.lens (\RepositoryNameIdPair' {repositoryId} -> repositoryId) (\s@RepositoryNameIdPair' {} a -> s {repositoryId = a} :: RepositoryNameIdPair)
+
+-- | The name associated with the repository.
+repositoryNameIdPair_repositoryName :: Lens.Lens' RepositoryNameIdPair (Prelude.Maybe Prelude.Text)
+repositoryNameIdPair_repositoryName = Lens.lens (\RepositoryNameIdPair' {repositoryName} -> repositoryName) (\s@RepositoryNameIdPair' {} a -> s {repositoryName = a} :: RepositoryNameIdPair)
+
+instance Data.FromJSON RepositoryNameIdPair where
+  parseJSON =
+    Data.withObject
+      "RepositoryNameIdPair"
+      ( \x ->
+          RepositoryNameIdPair'
+            Prelude.<$> (x Data..:? "repositoryId")
+            Prelude.<*> (x Data..:? "repositoryName")
+      )
+
+instance Prelude.Hashable RepositoryNameIdPair where
+  hashWithSalt _salt RepositoryNameIdPair' {..} =
+    _salt
+      `Prelude.hashWithSalt` repositoryId
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData RepositoryNameIdPair where
+  rnf RepositoryNameIdPair' {..} =
+    Prelude.rnf repositoryId
+      `Prelude.seq` Prelude.rnf repositoryName
diff --git a/gen/Amazonka/CodeCommit/Types/RepositoryTrigger.hs b/gen/Amazonka/CodeCommit/Types/RepositoryTrigger.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/RepositoryTrigger.hs
@@ -0,0 +1,165 @@
+{-# 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.CodeCommit.Types.RepositoryTrigger
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.RepositoryTrigger where
+
+import Amazonka.CodeCommit.Types.RepositoryTriggerEventEnum
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about a trigger for a repository.
+--
+-- /See:/ 'newRepositoryTrigger' smart constructor.
+data RepositoryTrigger = RepositoryTrigger'
+  { -- | The branches to be included in the trigger configuration. If you specify
+    -- an empty array, the trigger applies to all branches.
+    --
+    -- Although no content is required in the array, you must include the array
+    -- itself.
+    branches :: Prelude.Maybe [Prelude.Text],
+    -- | Any custom data associated with the trigger to be included in the
+    -- information sent to the target of the trigger.
+    customData :: Prelude.Maybe Prelude.Text,
+    -- | The name of the trigger.
+    name :: Prelude.Text,
+    -- | The ARN of the resource that is the target for a trigger (for example,
+    -- the ARN of a topic in Amazon SNS).
+    destinationArn :: Prelude.Text,
+    -- | The repository events that cause the trigger to run actions in another
+    -- service, such as sending a notification through Amazon SNS.
+    --
+    -- The valid value \"all\" cannot be used with any other values.
+    events :: [RepositoryTriggerEventEnum]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RepositoryTrigger' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'branches', 'repositoryTrigger_branches' - The branches to be included in the trigger configuration. If you specify
+-- an empty array, the trigger applies to all branches.
+--
+-- Although no content is required in the array, you must include the array
+-- itself.
+--
+-- 'customData', 'repositoryTrigger_customData' - Any custom data associated with the trigger to be included in the
+-- information sent to the target of the trigger.
+--
+-- 'name', 'repositoryTrigger_name' - The name of the trigger.
+--
+-- 'destinationArn', 'repositoryTrigger_destinationArn' - The ARN of the resource that is the target for a trigger (for example,
+-- the ARN of a topic in Amazon SNS).
+--
+-- 'events', 'repositoryTrigger_events' - The repository events that cause the trigger to run actions in another
+-- service, such as sending a notification through Amazon SNS.
+--
+-- The valid value \"all\" cannot be used with any other values.
+newRepositoryTrigger ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'destinationArn'
+  Prelude.Text ->
+  RepositoryTrigger
+newRepositoryTrigger pName_ pDestinationArn_ =
+  RepositoryTrigger'
+    { branches = Prelude.Nothing,
+      customData = Prelude.Nothing,
+      name = pName_,
+      destinationArn = pDestinationArn_,
+      events = Prelude.mempty
+    }
+
+-- | The branches to be included in the trigger configuration. If you specify
+-- an empty array, the trigger applies to all branches.
+--
+-- Although no content is required in the array, you must include the array
+-- itself.
+repositoryTrigger_branches :: Lens.Lens' RepositoryTrigger (Prelude.Maybe [Prelude.Text])
+repositoryTrigger_branches = Lens.lens (\RepositoryTrigger' {branches} -> branches) (\s@RepositoryTrigger' {} a -> s {branches = a} :: RepositoryTrigger) Prelude.. Lens.mapping Lens.coerced
+
+-- | Any custom data associated with the trigger to be included in the
+-- information sent to the target of the trigger.
+repositoryTrigger_customData :: Lens.Lens' RepositoryTrigger (Prelude.Maybe Prelude.Text)
+repositoryTrigger_customData = Lens.lens (\RepositoryTrigger' {customData} -> customData) (\s@RepositoryTrigger' {} a -> s {customData = a} :: RepositoryTrigger)
+
+-- | The name of the trigger.
+repositoryTrigger_name :: Lens.Lens' RepositoryTrigger Prelude.Text
+repositoryTrigger_name = Lens.lens (\RepositoryTrigger' {name} -> name) (\s@RepositoryTrigger' {} a -> s {name = a} :: RepositoryTrigger)
+
+-- | The ARN of the resource that is the target for a trigger (for example,
+-- the ARN of a topic in Amazon SNS).
+repositoryTrigger_destinationArn :: Lens.Lens' RepositoryTrigger Prelude.Text
+repositoryTrigger_destinationArn = Lens.lens (\RepositoryTrigger' {destinationArn} -> destinationArn) (\s@RepositoryTrigger' {} a -> s {destinationArn = a} :: RepositoryTrigger)
+
+-- | The repository events that cause the trigger to run actions in another
+-- service, such as sending a notification through Amazon SNS.
+--
+-- The valid value \"all\" cannot be used with any other values.
+repositoryTrigger_events :: Lens.Lens' RepositoryTrigger [RepositoryTriggerEventEnum]
+repositoryTrigger_events = Lens.lens (\RepositoryTrigger' {events} -> events) (\s@RepositoryTrigger' {} a -> s {events = a} :: RepositoryTrigger) Prelude.. Lens.coerced
+
+instance Data.FromJSON RepositoryTrigger where
+  parseJSON =
+    Data.withObject
+      "RepositoryTrigger"
+      ( \x ->
+          RepositoryTrigger'
+            Prelude.<$> (x Data..:? "branches" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "customData")
+            Prelude.<*> (x Data..: "name")
+            Prelude.<*> (x Data..: "destinationArn")
+            Prelude.<*> (x Data..:? "events" Data..!= Prelude.mempty)
+      )
+
+instance Prelude.Hashable RepositoryTrigger where
+  hashWithSalt _salt RepositoryTrigger' {..} =
+    _salt
+      `Prelude.hashWithSalt` branches
+      `Prelude.hashWithSalt` customData
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` destinationArn
+      `Prelude.hashWithSalt` events
+
+instance Prelude.NFData RepositoryTrigger where
+  rnf RepositoryTrigger' {..} =
+    Prelude.rnf branches
+      `Prelude.seq` Prelude.rnf customData
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf destinationArn
+      `Prelude.seq` Prelude.rnf events
+
+instance Data.ToJSON RepositoryTrigger where
+  toJSON RepositoryTrigger' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("branches" Data..=) Prelude.<$> branches,
+            ("customData" Data..=) Prelude.<$> customData,
+            Prelude.Just ("name" Data..= name),
+            Prelude.Just
+              ("destinationArn" Data..= destinationArn),
+            Prelude.Just ("events" Data..= events)
+          ]
+      )
diff --git a/gen/Amazonka/CodeCommit/Types/RepositoryTriggerEventEnum.hs b/gen/Amazonka/CodeCommit/Types/RepositoryTriggerEventEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/RepositoryTriggerEventEnum.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.RepositoryTriggerEventEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.RepositoryTriggerEventEnum
+  ( RepositoryTriggerEventEnum
+      ( ..,
+        RepositoryTriggerEventEnum_All,
+        RepositoryTriggerEventEnum_CreateReference,
+        RepositoryTriggerEventEnum_DeleteReference,
+        RepositoryTriggerEventEnum_UpdateReference
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype RepositoryTriggerEventEnum = RepositoryTriggerEventEnum'
+  { fromRepositoryTriggerEventEnum ::
+      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 RepositoryTriggerEventEnum_All :: RepositoryTriggerEventEnum
+pattern RepositoryTriggerEventEnum_All = RepositoryTriggerEventEnum' "all"
+
+pattern RepositoryTriggerEventEnum_CreateReference :: RepositoryTriggerEventEnum
+pattern RepositoryTriggerEventEnum_CreateReference = RepositoryTriggerEventEnum' "createReference"
+
+pattern RepositoryTriggerEventEnum_DeleteReference :: RepositoryTriggerEventEnum
+pattern RepositoryTriggerEventEnum_DeleteReference = RepositoryTriggerEventEnum' "deleteReference"
+
+pattern RepositoryTriggerEventEnum_UpdateReference :: RepositoryTriggerEventEnum
+pattern RepositoryTriggerEventEnum_UpdateReference = RepositoryTriggerEventEnum' "updateReference"
+
+{-# COMPLETE
+  RepositoryTriggerEventEnum_All,
+  RepositoryTriggerEventEnum_CreateReference,
+  RepositoryTriggerEventEnum_DeleteReference,
+  RepositoryTriggerEventEnum_UpdateReference,
+  RepositoryTriggerEventEnum'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/RepositoryTriggerExecutionFailure.hs b/gen/Amazonka/CodeCommit/Types/RepositoryTriggerExecutionFailure.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/RepositoryTriggerExecutionFailure.hs
@@ -0,0 +1,96 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.RepositoryTriggerExecutionFailure
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.RepositoryTriggerExecutionFailure 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 trigger failed to run.
+--
+-- /See:/ 'newRepositoryTriggerExecutionFailure' smart constructor.
+data RepositoryTriggerExecutionFailure = RepositoryTriggerExecutionFailure'
+  { -- | Message information about the trigger that did not run.
+    failureMessage :: Prelude.Maybe Prelude.Text,
+    -- | The name of the trigger that did not run.
+    trigger :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RepositoryTriggerExecutionFailure' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'failureMessage', 'repositoryTriggerExecutionFailure_failureMessage' - Message information about the trigger that did not run.
+--
+-- 'trigger', 'repositoryTriggerExecutionFailure_trigger' - The name of the trigger that did not run.
+newRepositoryTriggerExecutionFailure ::
+  RepositoryTriggerExecutionFailure
+newRepositoryTriggerExecutionFailure =
+  RepositoryTriggerExecutionFailure'
+    { failureMessage =
+        Prelude.Nothing,
+      trigger = Prelude.Nothing
+    }
+
+-- | Message information about the trigger that did not run.
+repositoryTriggerExecutionFailure_failureMessage :: Lens.Lens' RepositoryTriggerExecutionFailure (Prelude.Maybe Prelude.Text)
+repositoryTriggerExecutionFailure_failureMessage = Lens.lens (\RepositoryTriggerExecutionFailure' {failureMessage} -> failureMessage) (\s@RepositoryTriggerExecutionFailure' {} a -> s {failureMessage = a} :: RepositoryTriggerExecutionFailure)
+
+-- | The name of the trigger that did not run.
+repositoryTriggerExecutionFailure_trigger :: Lens.Lens' RepositoryTriggerExecutionFailure (Prelude.Maybe Prelude.Text)
+repositoryTriggerExecutionFailure_trigger = Lens.lens (\RepositoryTriggerExecutionFailure' {trigger} -> trigger) (\s@RepositoryTriggerExecutionFailure' {} a -> s {trigger = a} :: RepositoryTriggerExecutionFailure)
+
+instance
+  Data.FromJSON
+    RepositoryTriggerExecutionFailure
+  where
+  parseJSON =
+    Data.withObject
+      "RepositoryTriggerExecutionFailure"
+      ( \x ->
+          RepositoryTriggerExecutionFailure'
+            Prelude.<$> (x Data..:? "failureMessage")
+            Prelude.<*> (x Data..:? "trigger")
+      )
+
+instance
+  Prelude.Hashable
+    RepositoryTriggerExecutionFailure
+  where
+  hashWithSalt
+    _salt
+    RepositoryTriggerExecutionFailure' {..} =
+      _salt
+        `Prelude.hashWithSalt` failureMessage
+        `Prelude.hashWithSalt` trigger
+
+instance
+  Prelude.NFData
+    RepositoryTriggerExecutionFailure
+  where
+  rnf RepositoryTriggerExecutionFailure' {..} =
+    Prelude.rnf failureMessage
+      `Prelude.seq` Prelude.rnf trigger
diff --git a/gen/Amazonka/CodeCommit/Types/SetFileModeEntry.hs b/gen/Amazonka/CodeCommit/Types/SetFileModeEntry.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/SetFileModeEntry.hs
@@ -0,0 +1,88 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.SetFileModeEntry
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.SetFileModeEntry where
+
+import Amazonka.CodeCommit.Types.FileModeTypeEnum
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about the file mode changes.
+--
+-- /See:/ 'newSetFileModeEntry' smart constructor.
+data SetFileModeEntry = SetFileModeEntry'
+  { -- | The full path to the file, including the name of the file.
+    filePath :: Prelude.Text,
+    -- | The file mode for the file.
+    fileMode :: FileModeTypeEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'SetFileModeEntry' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'filePath', 'setFileModeEntry_filePath' - The full path to the file, including the name of the file.
+--
+-- 'fileMode', 'setFileModeEntry_fileMode' - The file mode for the file.
+newSetFileModeEntry ::
+  -- | 'filePath'
+  Prelude.Text ->
+  -- | 'fileMode'
+  FileModeTypeEnum ->
+  SetFileModeEntry
+newSetFileModeEntry pFilePath_ pFileMode_ =
+  SetFileModeEntry'
+    { filePath = pFilePath_,
+      fileMode = pFileMode_
+    }
+
+-- | The full path to the file, including the name of the file.
+setFileModeEntry_filePath :: Lens.Lens' SetFileModeEntry Prelude.Text
+setFileModeEntry_filePath = Lens.lens (\SetFileModeEntry' {filePath} -> filePath) (\s@SetFileModeEntry' {} a -> s {filePath = a} :: SetFileModeEntry)
+
+-- | The file mode for the file.
+setFileModeEntry_fileMode :: Lens.Lens' SetFileModeEntry FileModeTypeEnum
+setFileModeEntry_fileMode = Lens.lens (\SetFileModeEntry' {fileMode} -> fileMode) (\s@SetFileModeEntry' {} a -> s {fileMode = a} :: SetFileModeEntry)
+
+instance Prelude.Hashable SetFileModeEntry where
+  hashWithSalt _salt SetFileModeEntry' {..} =
+    _salt
+      `Prelude.hashWithSalt` filePath
+      `Prelude.hashWithSalt` fileMode
+
+instance Prelude.NFData SetFileModeEntry where
+  rnf SetFileModeEntry' {..} =
+    Prelude.rnf filePath
+      `Prelude.seq` Prelude.rnf fileMode
+
+instance Data.ToJSON SetFileModeEntry where
+  toJSON SetFileModeEntry' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("filePath" Data..= filePath),
+            Prelude.Just ("fileMode" Data..= fileMode)
+          ]
+      )
diff --git a/gen/Amazonka/CodeCommit/Types/SortByEnum.hs b/gen/Amazonka/CodeCommit/Types/SortByEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/SortByEnum.hs
@@ -0,0 +1,71 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.SortByEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.SortByEnum
+  ( SortByEnum
+      ( ..,
+        SortByEnum_LastModifiedDate,
+        SortByEnum_RepositoryName
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype SortByEnum = SortByEnum'
+  { fromSortByEnum ::
+      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 SortByEnum_LastModifiedDate :: SortByEnum
+pattern SortByEnum_LastModifiedDate = SortByEnum' "lastModifiedDate"
+
+pattern SortByEnum_RepositoryName :: SortByEnum
+pattern SortByEnum_RepositoryName = SortByEnum' "repositoryName"
+
+{-# COMPLETE
+  SortByEnum_LastModifiedDate,
+  SortByEnum_RepositoryName,
+  SortByEnum'
+  #-}
diff --git a/gen/Amazonka/CodeCommit/Types/SourceFileSpecifier.hs b/gen/Amazonka/CodeCommit/Types/SourceFileSpecifier.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/SourceFileSpecifier.hs
@@ -0,0 +1,86 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.SourceFileSpecifier
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.SourceFileSpecifier where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about a source file that is part of changes made in a
+-- commit.
+--
+-- /See:/ 'newSourceFileSpecifier' smart constructor.
+data SourceFileSpecifier = SourceFileSpecifier'
+  { -- | Whether to remove the source file from the parent commit.
+    isMove :: Prelude.Maybe Prelude.Bool,
+    -- | The full path to the file, including the name of the file.
+    filePath :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'SourceFileSpecifier' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'isMove', 'sourceFileSpecifier_isMove' - Whether to remove the source file from the parent commit.
+--
+-- 'filePath', 'sourceFileSpecifier_filePath' - The full path to the file, including the name of the file.
+newSourceFileSpecifier ::
+  -- | 'filePath'
+  Prelude.Text ->
+  SourceFileSpecifier
+newSourceFileSpecifier pFilePath_ =
+  SourceFileSpecifier'
+    { isMove = Prelude.Nothing,
+      filePath = pFilePath_
+    }
+
+-- | Whether to remove the source file from the parent commit.
+sourceFileSpecifier_isMove :: Lens.Lens' SourceFileSpecifier (Prelude.Maybe Prelude.Bool)
+sourceFileSpecifier_isMove = Lens.lens (\SourceFileSpecifier' {isMove} -> isMove) (\s@SourceFileSpecifier' {} a -> s {isMove = a} :: SourceFileSpecifier)
+
+-- | The full path to the file, including the name of the file.
+sourceFileSpecifier_filePath :: Lens.Lens' SourceFileSpecifier Prelude.Text
+sourceFileSpecifier_filePath = Lens.lens (\SourceFileSpecifier' {filePath} -> filePath) (\s@SourceFileSpecifier' {} a -> s {filePath = a} :: SourceFileSpecifier)
+
+instance Prelude.Hashable SourceFileSpecifier where
+  hashWithSalt _salt SourceFileSpecifier' {..} =
+    _salt
+      `Prelude.hashWithSalt` isMove
+      `Prelude.hashWithSalt` filePath
+
+instance Prelude.NFData SourceFileSpecifier where
+  rnf SourceFileSpecifier' {..} =
+    Prelude.rnf isMove
+      `Prelude.seq` Prelude.rnf filePath
+
+instance Data.ToJSON SourceFileSpecifier where
+  toJSON SourceFileSpecifier' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("isMove" Data..=) Prelude.<$> isMove,
+            Prelude.Just ("filePath" Data..= filePath)
+          ]
+      )
diff --git a/gen/Amazonka/CodeCommit/Types/SubModule.hs b/gen/Amazonka/CodeCommit/Types/SubModule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/SubModule.hs
@@ -0,0 +1,102 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.SubModule
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.SubModule where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a submodule reference in a repository folder.
+--
+-- /See:/ 'newSubModule' smart constructor.
+data SubModule = SubModule'
+  { -- | The fully qualified path to the folder that contains the reference to
+    -- the submodule.
+    absolutePath :: Prelude.Maybe Prelude.Text,
+    -- | The commit ID that contains the reference to the submodule.
+    commitId :: Prelude.Maybe Prelude.Text,
+    -- | The relative path of the submodule from the folder where the query
+    -- originated.
+    relativePath :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'SubModule' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'absolutePath', 'subModule_absolutePath' - The fully qualified path to the folder that contains the reference to
+-- the submodule.
+--
+-- 'commitId', 'subModule_commitId' - The commit ID that contains the reference to the submodule.
+--
+-- 'relativePath', 'subModule_relativePath' - The relative path of the submodule from the folder where the query
+-- originated.
+newSubModule ::
+  SubModule
+newSubModule =
+  SubModule'
+    { absolutePath = Prelude.Nothing,
+      commitId = Prelude.Nothing,
+      relativePath = Prelude.Nothing
+    }
+
+-- | The fully qualified path to the folder that contains the reference to
+-- the submodule.
+subModule_absolutePath :: Lens.Lens' SubModule (Prelude.Maybe Prelude.Text)
+subModule_absolutePath = Lens.lens (\SubModule' {absolutePath} -> absolutePath) (\s@SubModule' {} a -> s {absolutePath = a} :: SubModule)
+
+-- | The commit ID that contains the reference to the submodule.
+subModule_commitId :: Lens.Lens' SubModule (Prelude.Maybe Prelude.Text)
+subModule_commitId = Lens.lens (\SubModule' {commitId} -> commitId) (\s@SubModule' {} a -> s {commitId = a} :: SubModule)
+
+-- | The relative path of the submodule from the folder where the query
+-- originated.
+subModule_relativePath :: Lens.Lens' SubModule (Prelude.Maybe Prelude.Text)
+subModule_relativePath = Lens.lens (\SubModule' {relativePath} -> relativePath) (\s@SubModule' {} a -> s {relativePath = a} :: SubModule)
+
+instance Data.FromJSON SubModule where
+  parseJSON =
+    Data.withObject
+      "SubModule"
+      ( \x ->
+          SubModule'
+            Prelude.<$> (x Data..:? "absolutePath")
+            Prelude.<*> (x Data..:? "commitId")
+            Prelude.<*> (x Data..:? "relativePath")
+      )
+
+instance Prelude.Hashable SubModule where
+  hashWithSalt _salt SubModule' {..} =
+    _salt
+      `Prelude.hashWithSalt` absolutePath
+      `Prelude.hashWithSalt` commitId
+      `Prelude.hashWithSalt` relativePath
+
+instance Prelude.NFData SubModule where
+  rnf SubModule' {..} =
+    Prelude.rnf absolutePath
+      `Prelude.seq` Prelude.rnf commitId
+      `Prelude.seq` Prelude.rnf relativePath
diff --git a/gen/Amazonka/CodeCommit/Types/SymbolicLink.hs b/gen/Amazonka/CodeCommit/Types/SymbolicLink.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/SymbolicLink.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.SymbolicLink
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.SymbolicLink where
+
+import Amazonka.CodeCommit.Types.FileModeTypeEnum
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a symbolic link in a repository folder.
+--
+-- /See:/ 'newSymbolicLink' smart constructor.
+data SymbolicLink = SymbolicLink'
+  { -- | The fully qualified path to the folder that contains the symbolic link.
+    absolutePath :: Prelude.Maybe Prelude.Text,
+    -- | The blob ID that contains the information about the symbolic link.
+    blobId :: Prelude.Maybe Prelude.Text,
+    -- | The file mode permissions of the blob that cotains information about the
+    -- symbolic link.
+    fileMode :: Prelude.Maybe FileModeTypeEnum,
+    -- | The relative path of the symbolic link from the folder where the query
+    -- originated.
+    relativePath :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'SymbolicLink' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'absolutePath', 'symbolicLink_absolutePath' - The fully qualified path to the folder that contains the symbolic link.
+--
+-- 'blobId', 'symbolicLink_blobId' - The blob ID that contains the information about the symbolic link.
+--
+-- 'fileMode', 'symbolicLink_fileMode' - The file mode permissions of the blob that cotains information about the
+-- symbolic link.
+--
+-- 'relativePath', 'symbolicLink_relativePath' - The relative path of the symbolic link from the folder where the query
+-- originated.
+newSymbolicLink ::
+  SymbolicLink
+newSymbolicLink =
+  SymbolicLink'
+    { absolutePath = Prelude.Nothing,
+      blobId = Prelude.Nothing,
+      fileMode = Prelude.Nothing,
+      relativePath = Prelude.Nothing
+    }
+
+-- | The fully qualified path to the folder that contains the symbolic link.
+symbolicLink_absolutePath :: Lens.Lens' SymbolicLink (Prelude.Maybe Prelude.Text)
+symbolicLink_absolutePath = Lens.lens (\SymbolicLink' {absolutePath} -> absolutePath) (\s@SymbolicLink' {} a -> s {absolutePath = a} :: SymbolicLink)
+
+-- | The blob ID that contains the information about the symbolic link.
+symbolicLink_blobId :: Lens.Lens' SymbolicLink (Prelude.Maybe Prelude.Text)
+symbolicLink_blobId = Lens.lens (\SymbolicLink' {blobId} -> blobId) (\s@SymbolicLink' {} a -> s {blobId = a} :: SymbolicLink)
+
+-- | The file mode permissions of the blob that cotains information about the
+-- symbolic link.
+symbolicLink_fileMode :: Lens.Lens' SymbolicLink (Prelude.Maybe FileModeTypeEnum)
+symbolicLink_fileMode = Lens.lens (\SymbolicLink' {fileMode} -> fileMode) (\s@SymbolicLink' {} a -> s {fileMode = a} :: SymbolicLink)
+
+-- | The relative path of the symbolic link from the folder where the query
+-- originated.
+symbolicLink_relativePath :: Lens.Lens' SymbolicLink (Prelude.Maybe Prelude.Text)
+symbolicLink_relativePath = Lens.lens (\SymbolicLink' {relativePath} -> relativePath) (\s@SymbolicLink' {} a -> s {relativePath = a} :: SymbolicLink)
+
+instance Data.FromJSON SymbolicLink where
+  parseJSON =
+    Data.withObject
+      "SymbolicLink"
+      ( \x ->
+          SymbolicLink'
+            Prelude.<$> (x Data..:? "absolutePath")
+            Prelude.<*> (x Data..:? "blobId")
+            Prelude.<*> (x Data..:? "fileMode")
+            Prelude.<*> (x Data..:? "relativePath")
+      )
+
+instance Prelude.Hashable SymbolicLink where
+  hashWithSalt _salt SymbolicLink' {..} =
+    _salt
+      `Prelude.hashWithSalt` absolutePath
+      `Prelude.hashWithSalt` blobId
+      `Prelude.hashWithSalt` fileMode
+      `Prelude.hashWithSalt` relativePath
+
+instance Prelude.NFData SymbolicLink where
+  rnf SymbolicLink' {..} =
+    Prelude.rnf absolutePath
+      `Prelude.seq` Prelude.rnf blobId
+      `Prelude.seq` Prelude.rnf fileMode
+      `Prelude.seq` Prelude.rnf relativePath
diff --git a/gen/Amazonka/CodeCommit/Types/Target.hs b/gen/Amazonka/CodeCommit/Types/Target.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/Target.hs
@@ -0,0 +1,108 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.Target
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.Target where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about a target for a pull request.
+--
+-- /See:/ 'newTarget' smart constructor.
+data Target = Target'
+  { -- | The branch of the repository where the pull request changes are merged.
+    -- Also known as the destination branch.
+    destinationReference :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository that contains the pull request.
+    repositoryName :: Prelude.Text,
+    -- | The branch of the repository that contains the changes for the pull
+    -- request. Also known as the source branch.
+    sourceReference :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Target' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'destinationReference', 'target_destinationReference' - The branch of the repository where the pull request changes are merged.
+-- Also known as the destination branch.
+--
+-- 'repositoryName', 'target_repositoryName' - The name of the repository that contains the pull request.
+--
+-- 'sourceReference', 'target_sourceReference' - The branch of the repository that contains the changes for the pull
+-- request. Also known as the source branch.
+newTarget ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'sourceReference'
+  Prelude.Text ->
+  Target
+newTarget pRepositoryName_ pSourceReference_ =
+  Target'
+    { destinationReference = Prelude.Nothing,
+      repositoryName = pRepositoryName_,
+      sourceReference = pSourceReference_
+    }
+
+-- | The branch of the repository where the pull request changes are merged.
+-- Also known as the destination branch.
+target_destinationReference :: Lens.Lens' Target (Prelude.Maybe Prelude.Text)
+target_destinationReference = Lens.lens (\Target' {destinationReference} -> destinationReference) (\s@Target' {} a -> s {destinationReference = a} :: Target)
+
+-- | The name of the repository that contains the pull request.
+target_repositoryName :: Lens.Lens' Target Prelude.Text
+target_repositoryName = Lens.lens (\Target' {repositoryName} -> repositoryName) (\s@Target' {} a -> s {repositoryName = a} :: Target)
+
+-- | The branch of the repository that contains the changes for the pull
+-- request. Also known as the source branch.
+target_sourceReference :: Lens.Lens' Target Prelude.Text
+target_sourceReference = Lens.lens (\Target' {sourceReference} -> sourceReference) (\s@Target' {} a -> s {sourceReference = a} :: Target)
+
+instance Prelude.Hashable Target where
+  hashWithSalt _salt Target' {..} =
+    _salt
+      `Prelude.hashWithSalt` destinationReference
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` sourceReference
+
+instance Prelude.NFData Target where
+  rnf Target' {..} =
+    Prelude.rnf destinationReference
+      `Prelude.seq` Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf sourceReference
+
+instance Data.ToJSON Target where
+  toJSON Target' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("destinationReference" Data..=)
+              Prelude.<$> destinationReference,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ("sourceReference" Data..= sourceReference)
+          ]
+      )
diff --git a/gen/Amazonka/CodeCommit/Types/UserInfo.hs b/gen/Amazonka/CodeCommit/Types/UserInfo.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/Types/UserInfo.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.Types.UserInfo
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.CodeCommit.Types.UserInfo where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Information about the user who made a specified commit.
+--
+-- /See:/ 'newUserInfo' smart constructor.
+data UserInfo = UserInfo'
+  { -- | The date when the specified commit was commited, in timestamp format
+    -- with GMT offset.
+    date :: Prelude.Maybe Prelude.Text,
+    -- | The email address associated with the user who made the commit, if any.
+    email :: Prelude.Maybe Prelude.Text,
+    -- | The name of the user who made the specified commit.
+    name :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UserInfo' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'date', 'userInfo_date' - The date when the specified commit was commited, in timestamp format
+-- with GMT offset.
+--
+-- 'email', 'userInfo_email' - The email address associated with the user who made the commit, if any.
+--
+-- 'name', 'userInfo_name' - The name of the user who made the specified commit.
+newUserInfo ::
+  UserInfo
+newUserInfo =
+  UserInfo'
+    { date = Prelude.Nothing,
+      email = Prelude.Nothing,
+      name = Prelude.Nothing
+    }
+
+-- | The date when the specified commit was commited, in timestamp format
+-- with GMT offset.
+userInfo_date :: Lens.Lens' UserInfo (Prelude.Maybe Prelude.Text)
+userInfo_date = Lens.lens (\UserInfo' {date} -> date) (\s@UserInfo' {} a -> s {date = a} :: UserInfo)
+
+-- | The email address associated with the user who made the commit, if any.
+userInfo_email :: Lens.Lens' UserInfo (Prelude.Maybe Prelude.Text)
+userInfo_email = Lens.lens (\UserInfo' {email} -> email) (\s@UserInfo' {} a -> s {email = a} :: UserInfo)
+
+-- | The name of the user who made the specified commit.
+userInfo_name :: Lens.Lens' UserInfo (Prelude.Maybe Prelude.Text)
+userInfo_name = Lens.lens (\UserInfo' {name} -> name) (\s@UserInfo' {} a -> s {name = a} :: UserInfo)
+
+instance Data.FromJSON UserInfo where
+  parseJSON =
+    Data.withObject
+      "UserInfo"
+      ( \x ->
+          UserInfo'
+            Prelude.<$> (x Data..:? "date")
+            Prelude.<*> (x Data..:? "email")
+            Prelude.<*> (x Data..:? "name")
+      )
+
+instance Prelude.Hashable UserInfo where
+  hashWithSalt _salt UserInfo' {..} =
+    _salt
+      `Prelude.hashWithSalt` date
+      `Prelude.hashWithSalt` email
+      `Prelude.hashWithSalt` name
+
+instance Prelude.NFData UserInfo where
+  rnf UserInfo' {..} =
+    Prelude.rnf date
+      `Prelude.seq` Prelude.rnf email
+      `Prelude.seq` Prelude.rnf name
diff --git a/gen/Amazonka/CodeCommit/UntagResource.hs b/gen/Amazonka/CodeCommit/UntagResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UntagResource.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.UntagResource
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes tags for a resource in AWS CodeCommit. For a list of valid
+-- resources in AWS CodeCommit, see
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats CodeCommit Resources and Operations>
+-- in the /AWS CodeCommit User Guide/.
+module Amazonka.CodeCommit.UntagResource
+  ( -- * Creating a Request
+    UntagResource (..),
+    newUntagResource,
+
+    -- * Request Lenses
+    untagResource_resourceArn,
+    untagResource_tagKeys,
+
+    -- * Destructuring the Response
+    UntagResourceResponse (..),
+    newUntagResourceResponse,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newUntagResource' smart constructor.
+data UntagResource = UntagResource'
+  { -- | The Amazon Resource Name (ARN) of the resource to which you want to
+    -- remove tags.
+    resourceArn :: Prelude.Text,
+    -- | The tag key for each tag that you want to remove from the resource.
+    tagKeys :: [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UntagResource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource to which you want to
+-- remove tags.
+--
+-- 'tagKeys', 'untagResource_tagKeys' - The tag key for each tag that you want to remove from the resource.
+newUntagResource ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  UntagResource
+newUntagResource pResourceArn_ =
+  UntagResource'
+    { resourceArn = pResourceArn_,
+      tagKeys = Prelude.mempty
+    }
+
+-- | The Amazon Resource Name (ARN) of the resource to which you want to
+-- remove tags.
+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text
+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)
+
+-- | The tag key for each tag that you want to remove from the resource.
+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]
+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced
+
+instance Core.AWSRequest UntagResource where
+  type
+    AWSResponse UntagResource =
+      UntagResourceResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveNull UntagResourceResponse'
+
+instance Prelude.Hashable UntagResource where
+  hashWithSalt _salt UntagResource' {..} =
+    _salt
+      `Prelude.hashWithSalt` resourceArn
+      `Prelude.hashWithSalt` tagKeys
+
+instance Prelude.NFData UntagResource where
+  rnf UntagResource' {..} =
+    Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf tagKeys
+
+instance Data.ToHeaders UntagResource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UntagResource" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UntagResource where
+  toJSON UntagResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("resourceArn" Data..= resourceArn),
+            Prelude.Just ("tagKeys" Data..= tagKeys)
+          ]
+      )
+
+instance Data.ToPath UntagResource where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UntagResource where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUntagResourceResponse' smart constructor.
+data UntagResourceResponse = UntagResourceResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newUntagResourceResponse ::
+  UntagResourceResponse
+newUntagResourceResponse = UntagResourceResponse'
+
+instance Prelude.NFData UntagResourceResponse where
+  rnf _ = ()
diff --git a/gen/Amazonka/CodeCommit/UpdateApprovalRuleTemplateContent.hs b/gen/Amazonka/CodeCommit/UpdateApprovalRuleTemplateContent.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UpdateApprovalRuleTemplateContent.hs
@@ -0,0 +1,251 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.UpdateApprovalRuleTemplateContent
+-- 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 content of an approval rule template. You can change the
+-- number of required approvals, the membership of the approval rule, and
+-- whether an approval pool is defined.
+module Amazonka.CodeCommit.UpdateApprovalRuleTemplateContent
+  ( -- * Creating a Request
+    UpdateApprovalRuleTemplateContent (..),
+    newUpdateApprovalRuleTemplateContent,
+
+    -- * Request Lenses
+    updateApprovalRuleTemplateContent_existingRuleContentSha256,
+    updateApprovalRuleTemplateContent_approvalRuleTemplateName,
+    updateApprovalRuleTemplateContent_newRuleContent,
+
+    -- * Destructuring the Response
+    UpdateApprovalRuleTemplateContentResponse (..),
+    newUpdateApprovalRuleTemplateContentResponse,
+
+    -- * Response Lenses
+    updateApprovalRuleTemplateContentResponse_httpStatus,
+    updateApprovalRuleTemplateContentResponse_approvalRuleTemplate,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newUpdateApprovalRuleTemplateContent' smart constructor.
+data UpdateApprovalRuleTemplateContent = UpdateApprovalRuleTemplateContent'
+  { -- | The SHA-256 hash signature for the content of the approval rule. You can
+    -- retrieve this information by using GetPullRequest.
+    existingRuleContentSha256 :: Prelude.Maybe Prelude.Text,
+    -- | The name of the approval rule template where you want to update the
+    -- content of the rule.
+    approvalRuleTemplateName :: Prelude.Text,
+    -- | The content that replaces the existing content of the rule. Content
+    -- statements must be complete. You cannot provide only the changes.
+    newRuleContent' :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateApprovalRuleTemplateContent' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'existingRuleContentSha256', 'updateApprovalRuleTemplateContent_existingRuleContentSha256' - The SHA-256 hash signature for the content of the approval rule. You can
+-- retrieve this information by using GetPullRequest.
+--
+-- 'approvalRuleTemplateName', 'updateApprovalRuleTemplateContent_approvalRuleTemplateName' - The name of the approval rule template where you want to update the
+-- content of the rule.
+--
+-- 'newRuleContent'', 'updateApprovalRuleTemplateContent_newRuleContent' - The content that replaces the existing content of the rule. Content
+-- statements must be complete. You cannot provide only the changes.
+newUpdateApprovalRuleTemplateContent ::
+  -- | 'approvalRuleTemplateName'
+  Prelude.Text ->
+  -- | 'newRuleContent''
+  Prelude.Text ->
+  UpdateApprovalRuleTemplateContent
+newUpdateApprovalRuleTemplateContent
+  pApprovalRuleTemplateName_
+  pNewRuleContent_ =
+    UpdateApprovalRuleTemplateContent'
+      { existingRuleContentSha256 =
+          Prelude.Nothing,
+        approvalRuleTemplateName =
+          pApprovalRuleTemplateName_,
+        newRuleContent' = pNewRuleContent_
+      }
+
+-- | The SHA-256 hash signature for the content of the approval rule. You can
+-- retrieve this information by using GetPullRequest.
+updateApprovalRuleTemplateContent_existingRuleContentSha256 :: Lens.Lens' UpdateApprovalRuleTemplateContent (Prelude.Maybe Prelude.Text)
+updateApprovalRuleTemplateContent_existingRuleContentSha256 = Lens.lens (\UpdateApprovalRuleTemplateContent' {existingRuleContentSha256} -> existingRuleContentSha256) (\s@UpdateApprovalRuleTemplateContent' {} a -> s {existingRuleContentSha256 = a} :: UpdateApprovalRuleTemplateContent)
+
+-- | The name of the approval rule template where you want to update the
+-- content of the rule.
+updateApprovalRuleTemplateContent_approvalRuleTemplateName :: Lens.Lens' UpdateApprovalRuleTemplateContent Prelude.Text
+updateApprovalRuleTemplateContent_approvalRuleTemplateName = Lens.lens (\UpdateApprovalRuleTemplateContent' {approvalRuleTemplateName} -> approvalRuleTemplateName) (\s@UpdateApprovalRuleTemplateContent' {} a -> s {approvalRuleTemplateName = a} :: UpdateApprovalRuleTemplateContent)
+
+-- | The content that replaces the existing content of the rule. Content
+-- statements must be complete. You cannot provide only the changes.
+updateApprovalRuleTemplateContent_newRuleContent :: Lens.Lens' UpdateApprovalRuleTemplateContent Prelude.Text
+updateApprovalRuleTemplateContent_newRuleContent = Lens.lens (\UpdateApprovalRuleTemplateContent' {newRuleContent'} -> newRuleContent') (\s@UpdateApprovalRuleTemplateContent' {} a -> s {newRuleContent' = a} :: UpdateApprovalRuleTemplateContent)
+
+instance
+  Core.AWSRequest
+    UpdateApprovalRuleTemplateContent
+  where
+  type
+    AWSResponse UpdateApprovalRuleTemplateContent =
+      UpdateApprovalRuleTemplateContentResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateApprovalRuleTemplateContentResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "approvalRuleTemplate")
+      )
+
+instance
+  Prelude.Hashable
+    UpdateApprovalRuleTemplateContent
+  where
+  hashWithSalt
+    _salt
+    UpdateApprovalRuleTemplateContent' {..} =
+      _salt
+        `Prelude.hashWithSalt` existingRuleContentSha256
+        `Prelude.hashWithSalt` approvalRuleTemplateName
+        `Prelude.hashWithSalt` newRuleContent'
+
+instance
+  Prelude.NFData
+    UpdateApprovalRuleTemplateContent
+  where
+  rnf UpdateApprovalRuleTemplateContent' {..} =
+    Prelude.rnf existingRuleContentSha256
+      `Prelude.seq` Prelude.rnf approvalRuleTemplateName
+      `Prelude.seq` Prelude.rnf newRuleContent'
+
+instance
+  Data.ToHeaders
+    UpdateApprovalRuleTemplateContent
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UpdateApprovalRuleTemplateContent" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    UpdateApprovalRuleTemplateContent
+  where
+  toJSON UpdateApprovalRuleTemplateContent' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("existingRuleContentSha256" Data..=)
+              Prelude.<$> existingRuleContentSha256,
+            Prelude.Just
+              ( "approvalRuleTemplateName"
+                  Data..= approvalRuleTemplateName
+              ),
+            Prelude.Just
+              ("newRuleContent" Data..= newRuleContent')
+          ]
+      )
+
+instance
+  Data.ToPath
+    UpdateApprovalRuleTemplateContent
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    UpdateApprovalRuleTemplateContent
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateApprovalRuleTemplateContentResponse' smart constructor.
+data UpdateApprovalRuleTemplateContentResponse = UpdateApprovalRuleTemplateContentResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    approvalRuleTemplate :: ApprovalRuleTemplate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateApprovalRuleTemplateContentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'updateApprovalRuleTemplateContentResponse_httpStatus' - The response's http status code.
+--
+-- 'approvalRuleTemplate', 'updateApprovalRuleTemplateContentResponse_approvalRuleTemplate' - Undocumented member.
+newUpdateApprovalRuleTemplateContentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'approvalRuleTemplate'
+  ApprovalRuleTemplate ->
+  UpdateApprovalRuleTemplateContentResponse
+newUpdateApprovalRuleTemplateContentResponse
+  pHttpStatus_
+  pApprovalRuleTemplate_ =
+    UpdateApprovalRuleTemplateContentResponse'
+      { httpStatus =
+          pHttpStatus_,
+        approvalRuleTemplate =
+          pApprovalRuleTemplate_
+      }
+
+-- | The response's http status code.
+updateApprovalRuleTemplateContentResponse_httpStatus :: Lens.Lens' UpdateApprovalRuleTemplateContentResponse Prelude.Int
+updateApprovalRuleTemplateContentResponse_httpStatus = Lens.lens (\UpdateApprovalRuleTemplateContentResponse' {httpStatus} -> httpStatus) (\s@UpdateApprovalRuleTemplateContentResponse' {} a -> s {httpStatus = a} :: UpdateApprovalRuleTemplateContentResponse)
+
+-- | Undocumented member.
+updateApprovalRuleTemplateContentResponse_approvalRuleTemplate :: Lens.Lens' UpdateApprovalRuleTemplateContentResponse ApprovalRuleTemplate
+updateApprovalRuleTemplateContentResponse_approvalRuleTemplate = Lens.lens (\UpdateApprovalRuleTemplateContentResponse' {approvalRuleTemplate} -> approvalRuleTemplate) (\s@UpdateApprovalRuleTemplateContentResponse' {} a -> s {approvalRuleTemplate = a} :: UpdateApprovalRuleTemplateContentResponse)
+
+instance
+  Prelude.NFData
+    UpdateApprovalRuleTemplateContentResponse
+  where
+  rnf UpdateApprovalRuleTemplateContentResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf approvalRuleTemplate
diff --git a/gen/Amazonka/CodeCommit/UpdateApprovalRuleTemplateDescription.hs b/gen/Amazonka/CodeCommit/UpdateApprovalRuleTemplateDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UpdateApprovalRuleTemplateDescription.hs
@@ -0,0 +1,231 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.UpdateApprovalRuleTemplateDescription
+-- 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 description for a specified approval rule template.
+module Amazonka.CodeCommit.UpdateApprovalRuleTemplateDescription
+  ( -- * Creating a Request
+    UpdateApprovalRuleTemplateDescription (..),
+    newUpdateApprovalRuleTemplateDescription,
+
+    -- * Request Lenses
+    updateApprovalRuleTemplateDescription_approvalRuleTemplateName,
+    updateApprovalRuleTemplateDescription_approvalRuleTemplateDescription,
+
+    -- * Destructuring the Response
+    UpdateApprovalRuleTemplateDescriptionResponse (..),
+    newUpdateApprovalRuleTemplateDescriptionResponse,
+
+    -- * Response Lenses
+    updateApprovalRuleTemplateDescriptionResponse_httpStatus,
+    updateApprovalRuleTemplateDescriptionResponse_approvalRuleTemplate,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newUpdateApprovalRuleTemplateDescription' smart constructor.
+data UpdateApprovalRuleTemplateDescription = UpdateApprovalRuleTemplateDescription'
+  { -- | The name of the template for which you want to update the description.
+    approvalRuleTemplateName :: Prelude.Text,
+    -- | The updated description of the approval rule template.
+    approvalRuleTemplateDescription :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateApprovalRuleTemplateDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'approvalRuleTemplateName', 'updateApprovalRuleTemplateDescription_approvalRuleTemplateName' - The name of the template for which you want to update the description.
+--
+-- 'approvalRuleTemplateDescription', 'updateApprovalRuleTemplateDescription_approvalRuleTemplateDescription' - The updated description of the approval rule template.
+newUpdateApprovalRuleTemplateDescription ::
+  -- | 'approvalRuleTemplateName'
+  Prelude.Text ->
+  -- | 'approvalRuleTemplateDescription'
+  Prelude.Text ->
+  UpdateApprovalRuleTemplateDescription
+newUpdateApprovalRuleTemplateDescription
+  pApprovalRuleTemplateName_
+  pApprovalRuleTemplateDescription_ =
+    UpdateApprovalRuleTemplateDescription'
+      { approvalRuleTemplateName =
+          pApprovalRuleTemplateName_,
+        approvalRuleTemplateDescription =
+          pApprovalRuleTemplateDescription_
+      }
+
+-- | The name of the template for which you want to update the description.
+updateApprovalRuleTemplateDescription_approvalRuleTemplateName :: Lens.Lens' UpdateApprovalRuleTemplateDescription Prelude.Text
+updateApprovalRuleTemplateDescription_approvalRuleTemplateName = Lens.lens (\UpdateApprovalRuleTemplateDescription' {approvalRuleTemplateName} -> approvalRuleTemplateName) (\s@UpdateApprovalRuleTemplateDescription' {} a -> s {approvalRuleTemplateName = a} :: UpdateApprovalRuleTemplateDescription)
+
+-- | The updated description of the approval rule template.
+updateApprovalRuleTemplateDescription_approvalRuleTemplateDescription :: Lens.Lens' UpdateApprovalRuleTemplateDescription Prelude.Text
+updateApprovalRuleTemplateDescription_approvalRuleTemplateDescription = Lens.lens (\UpdateApprovalRuleTemplateDescription' {approvalRuleTemplateDescription} -> approvalRuleTemplateDescription) (\s@UpdateApprovalRuleTemplateDescription' {} a -> s {approvalRuleTemplateDescription = a} :: UpdateApprovalRuleTemplateDescription)
+
+instance
+  Core.AWSRequest
+    UpdateApprovalRuleTemplateDescription
+  where
+  type
+    AWSResponse
+      UpdateApprovalRuleTemplateDescription =
+      UpdateApprovalRuleTemplateDescriptionResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateApprovalRuleTemplateDescriptionResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "approvalRuleTemplate")
+      )
+
+instance
+  Prelude.Hashable
+    UpdateApprovalRuleTemplateDescription
+  where
+  hashWithSalt
+    _salt
+    UpdateApprovalRuleTemplateDescription' {..} =
+      _salt
+        `Prelude.hashWithSalt` approvalRuleTemplateName
+        `Prelude.hashWithSalt` approvalRuleTemplateDescription
+
+instance
+  Prelude.NFData
+    UpdateApprovalRuleTemplateDescription
+  where
+  rnf UpdateApprovalRuleTemplateDescription' {..} =
+    Prelude.rnf approvalRuleTemplateName
+      `Prelude.seq` Prelude.rnf approvalRuleTemplateDescription
+
+instance
+  Data.ToHeaders
+    UpdateApprovalRuleTemplateDescription
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UpdateApprovalRuleTemplateDescription" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    UpdateApprovalRuleTemplateDescription
+  where
+  toJSON UpdateApprovalRuleTemplateDescription' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "approvalRuleTemplateName"
+                  Data..= approvalRuleTemplateName
+              ),
+            Prelude.Just
+              ( "approvalRuleTemplateDescription"
+                  Data..= approvalRuleTemplateDescription
+              )
+          ]
+      )
+
+instance
+  Data.ToPath
+    UpdateApprovalRuleTemplateDescription
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    UpdateApprovalRuleTemplateDescription
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateApprovalRuleTemplateDescriptionResponse' smart constructor.
+data UpdateApprovalRuleTemplateDescriptionResponse = UpdateApprovalRuleTemplateDescriptionResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The structure and content of the updated approval rule template.
+    approvalRuleTemplate :: ApprovalRuleTemplate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateApprovalRuleTemplateDescriptionResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'updateApprovalRuleTemplateDescriptionResponse_httpStatus' - The response's http status code.
+--
+-- 'approvalRuleTemplate', 'updateApprovalRuleTemplateDescriptionResponse_approvalRuleTemplate' - The structure and content of the updated approval rule template.
+newUpdateApprovalRuleTemplateDescriptionResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'approvalRuleTemplate'
+  ApprovalRuleTemplate ->
+  UpdateApprovalRuleTemplateDescriptionResponse
+newUpdateApprovalRuleTemplateDescriptionResponse
+  pHttpStatus_
+  pApprovalRuleTemplate_ =
+    UpdateApprovalRuleTemplateDescriptionResponse'
+      { httpStatus =
+          pHttpStatus_,
+        approvalRuleTemplate =
+          pApprovalRuleTemplate_
+      }
+
+-- | The response's http status code.
+updateApprovalRuleTemplateDescriptionResponse_httpStatus :: Lens.Lens' UpdateApprovalRuleTemplateDescriptionResponse Prelude.Int
+updateApprovalRuleTemplateDescriptionResponse_httpStatus = Lens.lens (\UpdateApprovalRuleTemplateDescriptionResponse' {httpStatus} -> httpStatus) (\s@UpdateApprovalRuleTemplateDescriptionResponse' {} a -> s {httpStatus = a} :: UpdateApprovalRuleTemplateDescriptionResponse)
+
+-- | The structure and content of the updated approval rule template.
+updateApprovalRuleTemplateDescriptionResponse_approvalRuleTemplate :: Lens.Lens' UpdateApprovalRuleTemplateDescriptionResponse ApprovalRuleTemplate
+updateApprovalRuleTemplateDescriptionResponse_approvalRuleTemplate = Lens.lens (\UpdateApprovalRuleTemplateDescriptionResponse' {approvalRuleTemplate} -> approvalRuleTemplate) (\s@UpdateApprovalRuleTemplateDescriptionResponse' {} a -> s {approvalRuleTemplate = a} :: UpdateApprovalRuleTemplateDescriptionResponse)
+
+instance
+  Prelude.NFData
+    UpdateApprovalRuleTemplateDescriptionResponse
+  where
+  rnf
+    UpdateApprovalRuleTemplateDescriptionResponse' {..} =
+      Prelude.rnf httpStatus
+        `Prelude.seq` Prelude.rnf approvalRuleTemplate
diff --git a/gen/Amazonka/CodeCommit/UpdateApprovalRuleTemplateName.hs b/gen/Amazonka/CodeCommit/UpdateApprovalRuleTemplateName.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UpdateApprovalRuleTemplateName.hs
@@ -0,0 +1,220 @@
+{-# 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.CodeCommit.UpdateApprovalRuleTemplateName
+-- 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 name of a specified approval rule template.
+module Amazonka.CodeCommit.UpdateApprovalRuleTemplateName
+  ( -- * Creating a Request
+    UpdateApprovalRuleTemplateName (..),
+    newUpdateApprovalRuleTemplateName,
+
+    -- * Request Lenses
+    updateApprovalRuleTemplateName_oldApprovalRuleTemplateName,
+    updateApprovalRuleTemplateName_newApprovalRuleTemplateName,
+
+    -- * Destructuring the Response
+    UpdateApprovalRuleTemplateNameResponse (..),
+    newUpdateApprovalRuleTemplateNameResponse,
+
+    -- * Response Lenses
+    updateApprovalRuleTemplateNameResponse_httpStatus,
+    updateApprovalRuleTemplateNameResponse_approvalRuleTemplate,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newUpdateApprovalRuleTemplateName' smart constructor.
+data UpdateApprovalRuleTemplateName = UpdateApprovalRuleTemplateName'
+  { -- | The current name of the approval rule template.
+    oldApprovalRuleTemplateName :: Prelude.Text,
+    -- | The new name you want to apply to the approval rule template.
+    newApprovalRuleTemplateName' :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateApprovalRuleTemplateName' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'oldApprovalRuleTemplateName', 'updateApprovalRuleTemplateName_oldApprovalRuleTemplateName' - The current name of the approval rule template.
+--
+-- 'newApprovalRuleTemplateName'', 'updateApprovalRuleTemplateName_newApprovalRuleTemplateName' - The new name you want to apply to the approval rule template.
+newUpdateApprovalRuleTemplateName ::
+  -- | 'oldApprovalRuleTemplateName'
+  Prelude.Text ->
+  -- | 'newApprovalRuleTemplateName''
+  Prelude.Text ->
+  UpdateApprovalRuleTemplateName
+newUpdateApprovalRuleTemplateName
+  pOldApprovalRuleTemplateName_
+  pNewApprovalRuleTemplateName_ =
+    UpdateApprovalRuleTemplateName'
+      { oldApprovalRuleTemplateName =
+          pOldApprovalRuleTemplateName_,
+        newApprovalRuleTemplateName' =
+          pNewApprovalRuleTemplateName_
+      }
+
+-- | The current name of the approval rule template.
+updateApprovalRuleTemplateName_oldApprovalRuleTemplateName :: Lens.Lens' UpdateApprovalRuleTemplateName Prelude.Text
+updateApprovalRuleTemplateName_oldApprovalRuleTemplateName = Lens.lens (\UpdateApprovalRuleTemplateName' {oldApprovalRuleTemplateName} -> oldApprovalRuleTemplateName) (\s@UpdateApprovalRuleTemplateName' {} a -> s {oldApprovalRuleTemplateName = a} :: UpdateApprovalRuleTemplateName)
+
+-- | The new name you want to apply to the approval rule template.
+updateApprovalRuleTemplateName_newApprovalRuleTemplateName :: Lens.Lens' UpdateApprovalRuleTemplateName Prelude.Text
+updateApprovalRuleTemplateName_newApprovalRuleTemplateName = Lens.lens (\UpdateApprovalRuleTemplateName' {newApprovalRuleTemplateName'} -> newApprovalRuleTemplateName') (\s@UpdateApprovalRuleTemplateName' {} a -> s {newApprovalRuleTemplateName' = a} :: UpdateApprovalRuleTemplateName)
+
+instance
+  Core.AWSRequest
+    UpdateApprovalRuleTemplateName
+  where
+  type
+    AWSResponse UpdateApprovalRuleTemplateName =
+      UpdateApprovalRuleTemplateNameResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateApprovalRuleTemplateNameResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "approvalRuleTemplate")
+      )
+
+instance
+  Prelude.Hashable
+    UpdateApprovalRuleTemplateName
+  where
+  hashWithSalt
+    _salt
+    UpdateApprovalRuleTemplateName' {..} =
+      _salt
+        `Prelude.hashWithSalt` oldApprovalRuleTemplateName
+        `Prelude.hashWithSalt` newApprovalRuleTemplateName'
+
+instance
+  Prelude.NFData
+    UpdateApprovalRuleTemplateName
+  where
+  rnf UpdateApprovalRuleTemplateName' {..} =
+    Prelude.rnf oldApprovalRuleTemplateName
+      `Prelude.seq` Prelude.rnf newApprovalRuleTemplateName'
+
+instance
+  Data.ToHeaders
+    UpdateApprovalRuleTemplateName
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UpdateApprovalRuleTemplateName" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateApprovalRuleTemplateName where
+  toJSON UpdateApprovalRuleTemplateName' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "oldApprovalRuleTemplateName"
+                  Data..= oldApprovalRuleTemplateName
+              ),
+            Prelude.Just
+              ( "newApprovalRuleTemplateName"
+                  Data..= newApprovalRuleTemplateName'
+              )
+          ]
+      )
+
+instance Data.ToPath UpdateApprovalRuleTemplateName where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UpdateApprovalRuleTemplateName where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateApprovalRuleTemplateNameResponse' smart constructor.
+data UpdateApprovalRuleTemplateNameResponse = UpdateApprovalRuleTemplateNameResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | The structure and content of the updated approval rule template.
+    approvalRuleTemplate :: ApprovalRuleTemplate
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateApprovalRuleTemplateNameResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'updateApprovalRuleTemplateNameResponse_httpStatus' - The response's http status code.
+--
+-- 'approvalRuleTemplate', 'updateApprovalRuleTemplateNameResponse_approvalRuleTemplate' - The structure and content of the updated approval rule template.
+newUpdateApprovalRuleTemplateNameResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'approvalRuleTemplate'
+  ApprovalRuleTemplate ->
+  UpdateApprovalRuleTemplateNameResponse
+newUpdateApprovalRuleTemplateNameResponse
+  pHttpStatus_
+  pApprovalRuleTemplate_ =
+    UpdateApprovalRuleTemplateNameResponse'
+      { httpStatus =
+          pHttpStatus_,
+        approvalRuleTemplate =
+          pApprovalRuleTemplate_
+      }
+
+-- | The response's http status code.
+updateApprovalRuleTemplateNameResponse_httpStatus :: Lens.Lens' UpdateApprovalRuleTemplateNameResponse Prelude.Int
+updateApprovalRuleTemplateNameResponse_httpStatus = Lens.lens (\UpdateApprovalRuleTemplateNameResponse' {httpStatus} -> httpStatus) (\s@UpdateApprovalRuleTemplateNameResponse' {} a -> s {httpStatus = a} :: UpdateApprovalRuleTemplateNameResponse)
+
+-- | The structure and content of the updated approval rule template.
+updateApprovalRuleTemplateNameResponse_approvalRuleTemplate :: Lens.Lens' UpdateApprovalRuleTemplateNameResponse ApprovalRuleTemplate
+updateApprovalRuleTemplateNameResponse_approvalRuleTemplate = Lens.lens (\UpdateApprovalRuleTemplateNameResponse' {approvalRuleTemplate} -> approvalRuleTemplate) (\s@UpdateApprovalRuleTemplateNameResponse' {} a -> s {approvalRuleTemplate = a} :: UpdateApprovalRuleTemplateNameResponse)
+
+instance
+  Prelude.NFData
+    UpdateApprovalRuleTemplateNameResponse
+  where
+  rnf UpdateApprovalRuleTemplateNameResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf approvalRuleTemplate
diff --git a/gen/Amazonka/CodeCommit/UpdateComment.hs b/gen/Amazonka/CodeCommit/UpdateComment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UpdateComment.hs
@@ -0,0 +1,190 @@
+{-# 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.CodeCommit.UpdateComment
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Replaces the contents of a comment.
+module Amazonka.CodeCommit.UpdateComment
+  ( -- * Creating a Request
+    UpdateComment (..),
+    newUpdateComment,
+
+    -- * Request Lenses
+    updateComment_commentId,
+    updateComment_content,
+
+    -- * Destructuring the Response
+    UpdateCommentResponse (..),
+    newUpdateCommentResponse,
+
+    -- * Response Lenses
+    updateCommentResponse_comment,
+    updateCommentResponse_httpStatus,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newUpdateComment' smart constructor.
+data UpdateComment = UpdateComment'
+  { -- | The system-generated ID of the comment you want to update. To get this
+    -- ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest.
+    commentId :: Prelude.Text,
+    -- | The updated content to replace the existing content of the comment.
+    content :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateComment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commentId', 'updateComment_commentId' - The system-generated ID of the comment you want to update. To get this
+-- ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest.
+--
+-- 'content', 'updateComment_content' - The updated content to replace the existing content of the comment.
+newUpdateComment ::
+  -- | 'commentId'
+  Prelude.Text ->
+  -- | 'content'
+  Prelude.Text ->
+  UpdateComment
+newUpdateComment pCommentId_ pContent_ =
+  UpdateComment'
+    { commentId = pCommentId_,
+      content = pContent_
+    }
+
+-- | The system-generated ID of the comment you want to update. To get this
+-- ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest.
+updateComment_commentId :: Lens.Lens' UpdateComment Prelude.Text
+updateComment_commentId = Lens.lens (\UpdateComment' {commentId} -> commentId) (\s@UpdateComment' {} a -> s {commentId = a} :: UpdateComment)
+
+-- | The updated content to replace the existing content of the comment.
+updateComment_content :: Lens.Lens' UpdateComment Prelude.Text
+updateComment_content = Lens.lens (\UpdateComment' {content} -> content) (\s@UpdateComment' {} a -> s {content = a} :: UpdateComment)
+
+instance Core.AWSRequest UpdateComment where
+  type
+    AWSResponse UpdateComment =
+      UpdateCommentResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateCommentResponse'
+            Prelude.<$> (x Data..?> "comment")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateComment where
+  hashWithSalt _salt UpdateComment' {..} =
+    _salt
+      `Prelude.hashWithSalt` commentId
+      `Prelude.hashWithSalt` content
+
+instance Prelude.NFData UpdateComment where
+  rnf UpdateComment' {..} =
+    Prelude.rnf commentId
+      `Prelude.seq` Prelude.rnf content
+
+instance Data.ToHeaders UpdateComment where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UpdateComment" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateComment where
+  toJSON UpdateComment' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("commentId" Data..= commentId),
+            Prelude.Just ("content" Data..= content)
+          ]
+      )
+
+instance Data.ToPath UpdateComment where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UpdateComment where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateCommentResponse' smart constructor.
+data UpdateCommentResponse = UpdateCommentResponse'
+  { -- | Information about the updated comment.
+    comment :: Prelude.Maybe Comment,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateCommentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'comment', 'updateCommentResponse_comment' - Information about the updated comment.
+--
+-- 'httpStatus', 'updateCommentResponse_httpStatus' - The response's http status code.
+newUpdateCommentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateCommentResponse
+newUpdateCommentResponse pHttpStatus_ =
+  UpdateCommentResponse'
+    { comment = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Information about the updated comment.
+updateCommentResponse_comment :: Lens.Lens' UpdateCommentResponse (Prelude.Maybe Comment)
+updateCommentResponse_comment = Lens.lens (\UpdateCommentResponse' {comment} -> comment) (\s@UpdateCommentResponse' {} a -> s {comment = a} :: UpdateCommentResponse)
+
+-- | The response's http status code.
+updateCommentResponse_httpStatus :: Lens.Lens' UpdateCommentResponse Prelude.Int
+updateCommentResponse_httpStatus = Lens.lens (\UpdateCommentResponse' {httpStatus} -> httpStatus) (\s@UpdateCommentResponse' {} a -> s {httpStatus = a} :: UpdateCommentResponse)
+
+instance Prelude.NFData UpdateCommentResponse where
+  rnf UpdateCommentResponse' {..} =
+    Prelude.rnf comment
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/CodeCommit/UpdateDefaultBranch.hs b/gen/Amazonka/CodeCommit/UpdateDefaultBranch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UpdateDefaultBranch.hs
@@ -0,0 +1,164 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.UpdateDefaultBranch
+-- 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 or changes the default branch name for the specified repository.
+--
+-- If you use this operation to change the default branch name to the
+-- current default branch name, a success message is returned even though
+-- the default branch did not change.
+module Amazonka.CodeCommit.UpdateDefaultBranch
+  ( -- * Creating a Request
+    UpdateDefaultBranch (..),
+    newUpdateDefaultBranch,
+
+    -- * Request Lenses
+    updateDefaultBranch_repositoryName,
+    updateDefaultBranch_defaultBranchName,
+
+    -- * Destructuring the Response
+    UpdateDefaultBranchResponse (..),
+    newUpdateDefaultBranchResponse,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of an update default branch operation.
+--
+-- /See:/ 'newUpdateDefaultBranch' smart constructor.
+data UpdateDefaultBranch = UpdateDefaultBranch'
+  { -- | The name of the repository to set or change the default branch for.
+    repositoryName :: Prelude.Text,
+    -- | The name of the branch to set as the default.
+    defaultBranchName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateDefaultBranch' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryName', 'updateDefaultBranch_repositoryName' - The name of the repository to set or change the default branch for.
+--
+-- 'defaultBranchName', 'updateDefaultBranch_defaultBranchName' - The name of the branch to set as the default.
+newUpdateDefaultBranch ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  -- | 'defaultBranchName'
+  Prelude.Text ->
+  UpdateDefaultBranch
+newUpdateDefaultBranch
+  pRepositoryName_
+  pDefaultBranchName_ =
+    UpdateDefaultBranch'
+      { repositoryName =
+          pRepositoryName_,
+        defaultBranchName = pDefaultBranchName_
+      }
+
+-- | The name of the repository to set or change the default branch for.
+updateDefaultBranch_repositoryName :: Lens.Lens' UpdateDefaultBranch Prelude.Text
+updateDefaultBranch_repositoryName = Lens.lens (\UpdateDefaultBranch' {repositoryName} -> repositoryName) (\s@UpdateDefaultBranch' {} a -> s {repositoryName = a} :: UpdateDefaultBranch)
+
+-- | The name of the branch to set as the default.
+updateDefaultBranch_defaultBranchName :: Lens.Lens' UpdateDefaultBranch Prelude.Text
+updateDefaultBranch_defaultBranchName = Lens.lens (\UpdateDefaultBranch' {defaultBranchName} -> defaultBranchName) (\s@UpdateDefaultBranch' {} a -> s {defaultBranchName = a} :: UpdateDefaultBranch)
+
+instance Core.AWSRequest UpdateDefaultBranch where
+  type
+    AWSResponse UpdateDefaultBranch =
+      UpdateDefaultBranchResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveNull UpdateDefaultBranchResponse'
+
+instance Prelude.Hashable UpdateDefaultBranch where
+  hashWithSalt _salt UpdateDefaultBranch' {..} =
+    _salt
+      `Prelude.hashWithSalt` repositoryName
+      `Prelude.hashWithSalt` defaultBranchName
+
+instance Prelude.NFData UpdateDefaultBranch where
+  rnf UpdateDefaultBranch' {..} =
+    Prelude.rnf repositoryName
+      `Prelude.seq` Prelude.rnf defaultBranchName
+
+instance Data.ToHeaders UpdateDefaultBranch where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UpdateDefaultBranch" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateDefaultBranch where
+  toJSON UpdateDefaultBranch' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("repositoryName" Data..= repositoryName),
+            Prelude.Just
+              ("defaultBranchName" Data..= defaultBranchName)
+          ]
+      )
+
+instance Data.ToPath UpdateDefaultBranch where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UpdateDefaultBranch where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateDefaultBranchResponse' smart constructor.
+data UpdateDefaultBranchResponse = UpdateDefaultBranchResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateDefaultBranchResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newUpdateDefaultBranchResponse ::
+  UpdateDefaultBranchResponse
+newUpdateDefaultBranchResponse =
+  UpdateDefaultBranchResponse'
+
+instance Prelude.NFData UpdateDefaultBranchResponse where
+  rnf _ = ()
diff --git a/gen/Amazonka/CodeCommit/UpdatePullRequestApprovalRuleContent.hs b/gen/Amazonka/CodeCommit/UpdatePullRequestApprovalRuleContent.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UpdatePullRequestApprovalRuleContent.hs
@@ -0,0 +1,348 @@
+{-# 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.CodeCommit.UpdatePullRequestApprovalRuleContent
+-- 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 structure of an approval rule created specifically for a
+-- pull request. For example, you can change the number of required
+-- approvers and the approval pool for approvers.
+module Amazonka.CodeCommit.UpdatePullRequestApprovalRuleContent
+  ( -- * Creating a Request
+    UpdatePullRequestApprovalRuleContent (..),
+    newUpdatePullRequestApprovalRuleContent,
+
+    -- * Request Lenses
+    updatePullRequestApprovalRuleContent_existingRuleContentSha256,
+    updatePullRequestApprovalRuleContent_pullRequestId,
+    updatePullRequestApprovalRuleContent_approvalRuleName,
+    updatePullRequestApprovalRuleContent_newRuleContent,
+
+    -- * Destructuring the Response
+    UpdatePullRequestApprovalRuleContentResponse (..),
+    newUpdatePullRequestApprovalRuleContentResponse,
+
+    -- * Response Lenses
+    updatePullRequestApprovalRuleContentResponse_httpStatus,
+    updatePullRequestApprovalRuleContentResponse_approvalRule,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newUpdatePullRequestApprovalRuleContent' smart constructor.
+data UpdatePullRequestApprovalRuleContent = UpdatePullRequestApprovalRuleContent'
+  { -- | The SHA-256 hash signature for the content of the approval rule. You can
+    -- retrieve this information by using GetPullRequest.
+    existingRuleContentSha256 :: Prelude.Maybe Prelude.Text,
+    -- | The system-generated ID of the pull request.
+    pullRequestId :: Prelude.Text,
+    -- | The name of the approval rule you want to update.
+    approvalRuleName :: Prelude.Text,
+    -- | The updated content for the approval rule.
+    --
+    -- When you update the content of the approval rule, you can specify
+    -- approvers in an approval pool in one of two ways:
+    --
+    -- -   __CodeCommitApprovers__: This option only requires an AWS account
+    --     and a resource. It can be used for both IAM users and federated
+    --     access users whose name matches the provided resource name. This is
+    --     a very powerful option that offers a great deal of flexibility. For
+    --     example, if you specify the AWS account /123456789012/ and
+    --     /Mary_Major/, all of the following are counted as approvals coming
+    --     from that user:
+    --
+    --     -   An IAM user in the account
+    --         (arn:aws:iam::/123456789012/:user\//Mary_Major/)
+    --
+    --     -   A federated user identified in IAM as Mary_Major
+    --         (arn:aws:sts::/123456789012/:federated-user\//Mary_Major/)
+    --
+    --     This option does not recognize an active session of someone assuming
+    --     the role of CodeCommitReview with a role session name of
+    --     /Mary_Major/
+    --     (arn:aws:sts::/123456789012/:assumed-role\/CodeCommitReview\//Mary_Major/)
+    --     unless you include a wildcard (*Mary_Major).
+    --
+    -- -   __Fully qualified ARN__: This option allows you to specify the fully
+    --     qualified Amazon Resource Name (ARN) of the IAM user or role.
+    --
+    -- For more information about IAM ARNs, wildcards, and formats, see
+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
+    -- in the /IAM User Guide/.
+    newRuleContent' :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdatePullRequestApprovalRuleContent' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'existingRuleContentSha256', 'updatePullRequestApprovalRuleContent_existingRuleContentSha256' - The SHA-256 hash signature for the content of the approval rule. You can
+-- retrieve this information by using GetPullRequest.
+--
+-- 'pullRequestId', 'updatePullRequestApprovalRuleContent_pullRequestId' - The system-generated ID of the pull request.
+--
+-- 'approvalRuleName', 'updatePullRequestApprovalRuleContent_approvalRuleName' - The name of the approval rule you want to update.
+--
+-- 'newRuleContent'', 'updatePullRequestApprovalRuleContent_newRuleContent' - The updated content for the approval rule.
+--
+-- When you update the content of the approval rule, you can specify
+-- approvers in an approval pool in one of two ways:
+--
+-- -   __CodeCommitApprovers__: This option only requires an AWS account
+--     and a resource. It can be used for both IAM users and federated
+--     access users whose name matches the provided resource name. This is
+--     a very powerful option that offers a great deal of flexibility. For
+--     example, if you specify the AWS account /123456789012/ and
+--     /Mary_Major/, all of the following are counted as approvals coming
+--     from that user:
+--
+--     -   An IAM user in the account
+--         (arn:aws:iam::/123456789012/:user\//Mary_Major/)
+--
+--     -   A federated user identified in IAM as Mary_Major
+--         (arn:aws:sts::/123456789012/:federated-user\//Mary_Major/)
+--
+--     This option does not recognize an active session of someone assuming
+--     the role of CodeCommitReview with a role session name of
+--     /Mary_Major/
+--     (arn:aws:sts::/123456789012/:assumed-role\/CodeCommitReview\//Mary_Major/)
+--     unless you include a wildcard (*Mary_Major).
+--
+-- -   __Fully qualified ARN__: This option allows you to specify the fully
+--     qualified Amazon Resource Name (ARN) of the IAM user or role.
+--
+-- For more information about IAM ARNs, wildcards, and formats, see
+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
+-- in the /IAM User Guide/.
+newUpdatePullRequestApprovalRuleContent ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'approvalRuleName'
+  Prelude.Text ->
+  -- | 'newRuleContent''
+  Prelude.Text ->
+  UpdatePullRequestApprovalRuleContent
+newUpdatePullRequestApprovalRuleContent
+  pPullRequestId_
+  pApprovalRuleName_
+  pNewRuleContent_ =
+    UpdatePullRequestApprovalRuleContent'
+      { existingRuleContentSha256 =
+          Prelude.Nothing,
+        pullRequestId = pPullRequestId_,
+        approvalRuleName = pApprovalRuleName_,
+        newRuleContent' = pNewRuleContent_
+      }
+
+-- | The SHA-256 hash signature for the content of the approval rule. You can
+-- retrieve this information by using GetPullRequest.
+updatePullRequestApprovalRuleContent_existingRuleContentSha256 :: Lens.Lens' UpdatePullRequestApprovalRuleContent (Prelude.Maybe Prelude.Text)
+updatePullRequestApprovalRuleContent_existingRuleContentSha256 = Lens.lens (\UpdatePullRequestApprovalRuleContent' {existingRuleContentSha256} -> existingRuleContentSha256) (\s@UpdatePullRequestApprovalRuleContent' {} a -> s {existingRuleContentSha256 = a} :: UpdatePullRequestApprovalRuleContent)
+
+-- | The system-generated ID of the pull request.
+updatePullRequestApprovalRuleContent_pullRequestId :: Lens.Lens' UpdatePullRequestApprovalRuleContent Prelude.Text
+updatePullRequestApprovalRuleContent_pullRequestId = Lens.lens (\UpdatePullRequestApprovalRuleContent' {pullRequestId} -> pullRequestId) (\s@UpdatePullRequestApprovalRuleContent' {} a -> s {pullRequestId = a} :: UpdatePullRequestApprovalRuleContent)
+
+-- | The name of the approval rule you want to update.
+updatePullRequestApprovalRuleContent_approvalRuleName :: Lens.Lens' UpdatePullRequestApprovalRuleContent Prelude.Text
+updatePullRequestApprovalRuleContent_approvalRuleName = Lens.lens (\UpdatePullRequestApprovalRuleContent' {approvalRuleName} -> approvalRuleName) (\s@UpdatePullRequestApprovalRuleContent' {} a -> s {approvalRuleName = a} :: UpdatePullRequestApprovalRuleContent)
+
+-- | The updated content for the approval rule.
+--
+-- When you update the content of the approval rule, you can specify
+-- approvers in an approval pool in one of two ways:
+--
+-- -   __CodeCommitApprovers__: This option only requires an AWS account
+--     and a resource. It can be used for both IAM users and federated
+--     access users whose name matches the provided resource name. This is
+--     a very powerful option that offers a great deal of flexibility. For
+--     example, if you specify the AWS account /123456789012/ and
+--     /Mary_Major/, all of the following are counted as approvals coming
+--     from that user:
+--
+--     -   An IAM user in the account
+--         (arn:aws:iam::/123456789012/:user\//Mary_Major/)
+--
+--     -   A federated user identified in IAM as Mary_Major
+--         (arn:aws:sts::/123456789012/:federated-user\//Mary_Major/)
+--
+--     This option does not recognize an active session of someone assuming
+--     the role of CodeCommitReview with a role session name of
+--     /Mary_Major/
+--     (arn:aws:sts::/123456789012/:assumed-role\/CodeCommitReview\//Mary_Major/)
+--     unless you include a wildcard (*Mary_Major).
+--
+-- -   __Fully qualified ARN__: This option allows you to specify the fully
+--     qualified Amazon Resource Name (ARN) of the IAM user or role.
+--
+-- For more information about IAM ARNs, wildcards, and formats, see
+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html IAM Identifiers>
+-- in the /IAM User Guide/.
+updatePullRequestApprovalRuleContent_newRuleContent :: Lens.Lens' UpdatePullRequestApprovalRuleContent Prelude.Text
+updatePullRequestApprovalRuleContent_newRuleContent = Lens.lens (\UpdatePullRequestApprovalRuleContent' {newRuleContent'} -> newRuleContent') (\s@UpdatePullRequestApprovalRuleContent' {} a -> s {newRuleContent' = a} :: UpdatePullRequestApprovalRuleContent)
+
+instance
+  Core.AWSRequest
+    UpdatePullRequestApprovalRuleContent
+  where
+  type
+    AWSResponse UpdatePullRequestApprovalRuleContent =
+      UpdatePullRequestApprovalRuleContentResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdatePullRequestApprovalRuleContentResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "approvalRule")
+      )
+
+instance
+  Prelude.Hashable
+    UpdatePullRequestApprovalRuleContent
+  where
+  hashWithSalt
+    _salt
+    UpdatePullRequestApprovalRuleContent' {..} =
+      _salt
+        `Prelude.hashWithSalt` existingRuleContentSha256
+        `Prelude.hashWithSalt` pullRequestId
+        `Prelude.hashWithSalt` approvalRuleName
+        `Prelude.hashWithSalt` newRuleContent'
+
+instance
+  Prelude.NFData
+    UpdatePullRequestApprovalRuleContent
+  where
+  rnf UpdatePullRequestApprovalRuleContent' {..} =
+    Prelude.rnf existingRuleContentSha256
+      `Prelude.seq` Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf approvalRuleName
+      `Prelude.seq` Prelude.rnf newRuleContent'
+
+instance
+  Data.ToHeaders
+    UpdatePullRequestApprovalRuleContent
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UpdatePullRequestApprovalRuleContent" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    UpdatePullRequestApprovalRuleContent
+  where
+  toJSON UpdatePullRequestApprovalRuleContent' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("existingRuleContentSha256" Data..=)
+              Prelude.<$> existingRuleContentSha256,
+            Prelude.Just ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just
+              ("approvalRuleName" Data..= approvalRuleName),
+            Prelude.Just
+              ("newRuleContent" Data..= newRuleContent')
+          ]
+      )
+
+instance
+  Data.ToPath
+    UpdatePullRequestApprovalRuleContent
+  where
+  toPath = Prelude.const "/"
+
+instance
+  Data.ToQuery
+    UpdatePullRequestApprovalRuleContent
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdatePullRequestApprovalRuleContentResponse' smart constructor.
+data UpdatePullRequestApprovalRuleContentResponse = UpdatePullRequestApprovalRuleContentResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | Information about the updated approval rule.
+    approvalRule :: ApprovalRule
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdatePullRequestApprovalRuleContentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'updatePullRequestApprovalRuleContentResponse_httpStatus' - The response's http status code.
+--
+-- 'approvalRule', 'updatePullRequestApprovalRuleContentResponse_approvalRule' - Information about the updated approval rule.
+newUpdatePullRequestApprovalRuleContentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'approvalRule'
+  ApprovalRule ->
+  UpdatePullRequestApprovalRuleContentResponse
+newUpdatePullRequestApprovalRuleContentResponse
+  pHttpStatus_
+  pApprovalRule_ =
+    UpdatePullRequestApprovalRuleContentResponse'
+      { httpStatus =
+          pHttpStatus_,
+        approvalRule = pApprovalRule_
+      }
+
+-- | The response's http status code.
+updatePullRequestApprovalRuleContentResponse_httpStatus :: Lens.Lens' UpdatePullRequestApprovalRuleContentResponse Prelude.Int
+updatePullRequestApprovalRuleContentResponse_httpStatus = Lens.lens (\UpdatePullRequestApprovalRuleContentResponse' {httpStatus} -> httpStatus) (\s@UpdatePullRequestApprovalRuleContentResponse' {} a -> s {httpStatus = a} :: UpdatePullRequestApprovalRuleContentResponse)
+
+-- | Information about the updated approval rule.
+updatePullRequestApprovalRuleContentResponse_approvalRule :: Lens.Lens' UpdatePullRequestApprovalRuleContentResponse ApprovalRule
+updatePullRequestApprovalRuleContentResponse_approvalRule = Lens.lens (\UpdatePullRequestApprovalRuleContentResponse' {approvalRule} -> approvalRule) (\s@UpdatePullRequestApprovalRuleContentResponse' {} a -> s {approvalRule = a} :: UpdatePullRequestApprovalRuleContentResponse)
+
+instance
+  Prelude.NFData
+    UpdatePullRequestApprovalRuleContentResponse
+  where
+  rnf UpdatePullRequestApprovalRuleContentResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf approvalRule
diff --git a/gen/Amazonka/CodeCommit/UpdatePullRequestApprovalState.hs b/gen/Amazonka/CodeCommit/UpdatePullRequestApprovalState.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UpdatePullRequestApprovalState.hs
@@ -0,0 +1,193 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.UpdatePullRequestApprovalState
+-- 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 state of a user\'s approval on a pull request. The user is
+-- derived from the signed-in account when the request is made.
+module Amazonka.CodeCommit.UpdatePullRequestApprovalState
+  ( -- * Creating a Request
+    UpdatePullRequestApprovalState (..),
+    newUpdatePullRequestApprovalState,
+
+    -- * Request Lenses
+    updatePullRequestApprovalState_pullRequestId,
+    updatePullRequestApprovalState_revisionId,
+    updatePullRequestApprovalState_approvalState,
+
+    -- * Destructuring the Response
+    UpdatePullRequestApprovalStateResponse (..),
+    newUpdatePullRequestApprovalStateResponse,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newUpdatePullRequestApprovalState' smart constructor.
+data UpdatePullRequestApprovalState = UpdatePullRequestApprovalState'
+  { -- | The system-generated ID of the pull request.
+    pullRequestId :: Prelude.Text,
+    -- | The system-generated ID of the revision.
+    revisionId :: Prelude.Text,
+    -- | The approval state to associate with the user on the pull request.
+    approvalState :: ApprovalState
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdatePullRequestApprovalState' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequestId', 'updatePullRequestApprovalState_pullRequestId' - The system-generated ID of the pull request.
+--
+-- 'revisionId', 'updatePullRequestApprovalState_revisionId' - The system-generated ID of the revision.
+--
+-- 'approvalState', 'updatePullRequestApprovalState_approvalState' - The approval state to associate with the user on the pull request.
+newUpdatePullRequestApprovalState ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'revisionId'
+  Prelude.Text ->
+  -- | 'approvalState'
+  ApprovalState ->
+  UpdatePullRequestApprovalState
+newUpdatePullRequestApprovalState
+  pPullRequestId_
+  pRevisionId_
+  pApprovalState_ =
+    UpdatePullRequestApprovalState'
+      { pullRequestId =
+          pPullRequestId_,
+        revisionId = pRevisionId_,
+        approvalState = pApprovalState_
+      }
+
+-- | The system-generated ID of the pull request.
+updatePullRequestApprovalState_pullRequestId :: Lens.Lens' UpdatePullRequestApprovalState Prelude.Text
+updatePullRequestApprovalState_pullRequestId = Lens.lens (\UpdatePullRequestApprovalState' {pullRequestId} -> pullRequestId) (\s@UpdatePullRequestApprovalState' {} a -> s {pullRequestId = a} :: UpdatePullRequestApprovalState)
+
+-- | The system-generated ID of the revision.
+updatePullRequestApprovalState_revisionId :: Lens.Lens' UpdatePullRequestApprovalState Prelude.Text
+updatePullRequestApprovalState_revisionId = Lens.lens (\UpdatePullRequestApprovalState' {revisionId} -> revisionId) (\s@UpdatePullRequestApprovalState' {} a -> s {revisionId = a} :: UpdatePullRequestApprovalState)
+
+-- | The approval state to associate with the user on the pull request.
+updatePullRequestApprovalState_approvalState :: Lens.Lens' UpdatePullRequestApprovalState ApprovalState
+updatePullRequestApprovalState_approvalState = Lens.lens (\UpdatePullRequestApprovalState' {approvalState} -> approvalState) (\s@UpdatePullRequestApprovalState' {} a -> s {approvalState = a} :: UpdatePullRequestApprovalState)
+
+instance
+  Core.AWSRequest
+    UpdatePullRequestApprovalState
+  where
+  type
+    AWSResponse UpdatePullRequestApprovalState =
+      UpdatePullRequestApprovalStateResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveNull
+      UpdatePullRequestApprovalStateResponse'
+
+instance
+  Prelude.Hashable
+    UpdatePullRequestApprovalState
+  where
+  hashWithSalt
+    _salt
+    UpdatePullRequestApprovalState' {..} =
+      _salt
+        `Prelude.hashWithSalt` pullRequestId
+        `Prelude.hashWithSalt` revisionId
+        `Prelude.hashWithSalt` approvalState
+
+instance
+  Prelude.NFData
+    UpdatePullRequestApprovalState
+  where
+  rnf UpdatePullRequestApprovalState' {..} =
+    Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf revisionId
+      `Prelude.seq` Prelude.rnf approvalState
+
+instance
+  Data.ToHeaders
+    UpdatePullRequestApprovalState
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UpdatePullRequestApprovalState" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdatePullRequestApprovalState where
+  toJSON UpdatePullRequestApprovalState' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just ("revisionId" Data..= revisionId),
+            Prelude.Just
+              ("approvalState" Data..= approvalState)
+          ]
+      )
+
+instance Data.ToPath UpdatePullRequestApprovalState where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UpdatePullRequestApprovalState where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdatePullRequestApprovalStateResponse' smart constructor.
+data UpdatePullRequestApprovalStateResponse = UpdatePullRequestApprovalStateResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdatePullRequestApprovalStateResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newUpdatePullRequestApprovalStateResponse ::
+  UpdatePullRequestApprovalStateResponse
+newUpdatePullRequestApprovalStateResponse =
+  UpdatePullRequestApprovalStateResponse'
+
+instance
+  Prelude.NFData
+    UpdatePullRequestApprovalStateResponse
+  where
+  rnf _ = ()
diff --git a/gen/Amazonka/CodeCommit/UpdatePullRequestDescription.hs b/gen/Amazonka/CodeCommit/UpdatePullRequestDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UpdatePullRequestDescription.hs
@@ -0,0 +1,208 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.UpdatePullRequestDescription
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Replaces the contents of the description of a pull request.
+module Amazonka.CodeCommit.UpdatePullRequestDescription
+  ( -- * Creating a Request
+    UpdatePullRequestDescription (..),
+    newUpdatePullRequestDescription,
+
+    -- * Request Lenses
+    updatePullRequestDescription_pullRequestId,
+    updatePullRequestDescription_description,
+
+    -- * Destructuring the Response
+    UpdatePullRequestDescriptionResponse (..),
+    newUpdatePullRequestDescriptionResponse,
+
+    -- * Response Lenses
+    updatePullRequestDescriptionResponse_httpStatus,
+    updatePullRequestDescriptionResponse_pullRequest,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newUpdatePullRequestDescription' smart constructor.
+data UpdatePullRequestDescription = UpdatePullRequestDescription'
+  { -- | The system-generated ID of the pull request. To get this ID, use
+    -- ListPullRequests.
+    pullRequestId :: Prelude.Text,
+    -- | The updated content of the description for the pull request. This
+    -- content replaces the existing description.
+    description :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdatePullRequestDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequestId', 'updatePullRequestDescription_pullRequestId' - The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+--
+-- 'description', 'updatePullRequestDescription_description' - The updated content of the description for the pull request. This
+-- content replaces the existing description.
+newUpdatePullRequestDescription ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'description'
+  Prelude.Text ->
+  UpdatePullRequestDescription
+newUpdatePullRequestDescription
+  pPullRequestId_
+  pDescription_ =
+    UpdatePullRequestDescription'
+      { pullRequestId =
+          pPullRequestId_,
+        description = pDescription_
+      }
+
+-- | The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+updatePullRequestDescription_pullRequestId :: Lens.Lens' UpdatePullRequestDescription Prelude.Text
+updatePullRequestDescription_pullRequestId = Lens.lens (\UpdatePullRequestDescription' {pullRequestId} -> pullRequestId) (\s@UpdatePullRequestDescription' {} a -> s {pullRequestId = a} :: UpdatePullRequestDescription)
+
+-- | The updated content of the description for the pull request. This
+-- content replaces the existing description.
+updatePullRequestDescription_description :: Lens.Lens' UpdatePullRequestDescription Prelude.Text
+updatePullRequestDescription_description = Lens.lens (\UpdatePullRequestDescription' {description} -> description) (\s@UpdatePullRequestDescription' {} a -> s {description = a} :: UpdatePullRequestDescription)
+
+instance Core.AWSRequest UpdatePullRequestDescription where
+  type
+    AWSResponse UpdatePullRequestDescription =
+      UpdatePullRequestDescriptionResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdatePullRequestDescriptionResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "pullRequest")
+      )
+
+instance
+  Prelude.Hashable
+    UpdatePullRequestDescription
+  where
+  hashWithSalt _salt UpdatePullRequestDescription' {..} =
+    _salt
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` description
+
+instance Prelude.NFData UpdatePullRequestDescription where
+  rnf UpdatePullRequestDescription' {..} =
+    Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf description
+
+instance Data.ToHeaders UpdatePullRequestDescription where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UpdatePullRequestDescription" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdatePullRequestDescription where
+  toJSON UpdatePullRequestDescription' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just ("description" Data..= description)
+          ]
+      )
+
+instance Data.ToPath UpdatePullRequestDescription where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UpdatePullRequestDescription where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdatePullRequestDescriptionResponse' smart constructor.
+data UpdatePullRequestDescriptionResponse = UpdatePullRequestDescriptionResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | Information about the updated pull request.
+    pullRequest :: PullRequest
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdatePullRequestDescriptionResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'updatePullRequestDescriptionResponse_httpStatus' - The response's http status code.
+--
+-- 'pullRequest', 'updatePullRequestDescriptionResponse_pullRequest' - Information about the updated pull request.
+newUpdatePullRequestDescriptionResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'pullRequest'
+  PullRequest ->
+  UpdatePullRequestDescriptionResponse
+newUpdatePullRequestDescriptionResponse
+  pHttpStatus_
+  pPullRequest_ =
+    UpdatePullRequestDescriptionResponse'
+      { httpStatus =
+          pHttpStatus_,
+        pullRequest = pPullRequest_
+      }
+
+-- | The response's http status code.
+updatePullRequestDescriptionResponse_httpStatus :: Lens.Lens' UpdatePullRequestDescriptionResponse Prelude.Int
+updatePullRequestDescriptionResponse_httpStatus = Lens.lens (\UpdatePullRequestDescriptionResponse' {httpStatus} -> httpStatus) (\s@UpdatePullRequestDescriptionResponse' {} a -> s {httpStatus = a} :: UpdatePullRequestDescriptionResponse)
+
+-- | Information about the updated pull request.
+updatePullRequestDescriptionResponse_pullRequest :: Lens.Lens' UpdatePullRequestDescriptionResponse PullRequest
+updatePullRequestDescriptionResponse_pullRequest = Lens.lens (\UpdatePullRequestDescriptionResponse' {pullRequest} -> pullRequest) (\s@UpdatePullRequestDescriptionResponse' {} a -> s {pullRequest = a} :: UpdatePullRequestDescriptionResponse)
+
+instance
+  Prelude.NFData
+    UpdatePullRequestDescriptionResponse
+  where
+  rnf UpdatePullRequestDescriptionResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf pullRequest
diff --git a/gen/Amazonka/CodeCommit/UpdatePullRequestStatus.hs b/gen/Amazonka/CodeCommit/UpdatePullRequestStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UpdatePullRequestStatus.hs
@@ -0,0 +1,209 @@
+{-# 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.CodeCommit.UpdatePullRequestStatus
+-- 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 status of a pull request.
+module Amazonka.CodeCommit.UpdatePullRequestStatus
+  ( -- * Creating a Request
+    UpdatePullRequestStatus (..),
+    newUpdatePullRequestStatus,
+
+    -- * Request Lenses
+    updatePullRequestStatus_pullRequestId,
+    updatePullRequestStatus_pullRequestStatus,
+
+    -- * Destructuring the Response
+    UpdatePullRequestStatusResponse (..),
+    newUpdatePullRequestStatusResponse,
+
+    -- * Response Lenses
+    updatePullRequestStatusResponse_httpStatus,
+    updatePullRequestStatusResponse_pullRequest,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newUpdatePullRequestStatus' smart constructor.
+data UpdatePullRequestStatus = UpdatePullRequestStatus'
+  { -- | The system-generated ID of the pull request. To get this ID, use
+    -- ListPullRequests.
+    pullRequestId :: Prelude.Text,
+    -- | The status of the pull request. The only valid operations are to update
+    -- the status from @OPEN@ to @OPEN@, @OPEN@ to @CLOSED@ or from @CLOSED@ to
+    -- @CLOSED@.
+    pullRequestStatus :: PullRequestStatusEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdatePullRequestStatus' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequestId', 'updatePullRequestStatus_pullRequestId' - The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+--
+-- 'pullRequestStatus', 'updatePullRequestStatus_pullRequestStatus' - The status of the pull request. The only valid operations are to update
+-- the status from @OPEN@ to @OPEN@, @OPEN@ to @CLOSED@ or from @CLOSED@ to
+-- @CLOSED@.
+newUpdatePullRequestStatus ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'pullRequestStatus'
+  PullRequestStatusEnum ->
+  UpdatePullRequestStatus
+newUpdatePullRequestStatus
+  pPullRequestId_
+  pPullRequestStatus_ =
+    UpdatePullRequestStatus'
+      { pullRequestId =
+          pPullRequestId_,
+        pullRequestStatus = pPullRequestStatus_
+      }
+
+-- | The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+updatePullRequestStatus_pullRequestId :: Lens.Lens' UpdatePullRequestStatus Prelude.Text
+updatePullRequestStatus_pullRequestId = Lens.lens (\UpdatePullRequestStatus' {pullRequestId} -> pullRequestId) (\s@UpdatePullRequestStatus' {} a -> s {pullRequestId = a} :: UpdatePullRequestStatus)
+
+-- | The status of the pull request. The only valid operations are to update
+-- the status from @OPEN@ to @OPEN@, @OPEN@ to @CLOSED@ or from @CLOSED@ to
+-- @CLOSED@.
+updatePullRequestStatus_pullRequestStatus :: Lens.Lens' UpdatePullRequestStatus PullRequestStatusEnum
+updatePullRequestStatus_pullRequestStatus = Lens.lens (\UpdatePullRequestStatus' {pullRequestStatus} -> pullRequestStatus) (\s@UpdatePullRequestStatus' {} a -> s {pullRequestStatus = a} :: UpdatePullRequestStatus)
+
+instance Core.AWSRequest UpdatePullRequestStatus where
+  type
+    AWSResponse UpdatePullRequestStatus =
+      UpdatePullRequestStatusResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdatePullRequestStatusResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "pullRequest")
+      )
+
+instance Prelude.Hashable UpdatePullRequestStatus where
+  hashWithSalt _salt UpdatePullRequestStatus' {..} =
+    _salt
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` pullRequestStatus
+
+instance Prelude.NFData UpdatePullRequestStatus where
+  rnf UpdatePullRequestStatus' {..} =
+    Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf pullRequestStatus
+
+instance Data.ToHeaders UpdatePullRequestStatus where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UpdatePullRequestStatus" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdatePullRequestStatus where
+  toJSON UpdatePullRequestStatus' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just
+              ("pullRequestStatus" Data..= pullRequestStatus)
+          ]
+      )
+
+instance Data.ToPath UpdatePullRequestStatus where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UpdatePullRequestStatus where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdatePullRequestStatusResponse' smart constructor.
+data UpdatePullRequestStatusResponse = UpdatePullRequestStatusResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | Information about the pull request.
+    pullRequest :: PullRequest
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdatePullRequestStatusResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'updatePullRequestStatusResponse_httpStatus' - The response's http status code.
+--
+-- 'pullRequest', 'updatePullRequestStatusResponse_pullRequest' - Information about the pull request.
+newUpdatePullRequestStatusResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'pullRequest'
+  PullRequest ->
+  UpdatePullRequestStatusResponse
+newUpdatePullRequestStatusResponse
+  pHttpStatus_
+  pPullRequest_ =
+    UpdatePullRequestStatusResponse'
+      { httpStatus =
+          pHttpStatus_,
+        pullRequest = pPullRequest_
+      }
+
+-- | The response's http status code.
+updatePullRequestStatusResponse_httpStatus :: Lens.Lens' UpdatePullRequestStatusResponse Prelude.Int
+updatePullRequestStatusResponse_httpStatus = Lens.lens (\UpdatePullRequestStatusResponse' {httpStatus} -> httpStatus) (\s@UpdatePullRequestStatusResponse' {} a -> s {httpStatus = a} :: UpdatePullRequestStatusResponse)
+
+-- | Information about the pull request.
+updatePullRequestStatusResponse_pullRequest :: Lens.Lens' UpdatePullRequestStatusResponse PullRequest
+updatePullRequestStatusResponse_pullRequest = Lens.lens (\UpdatePullRequestStatusResponse' {pullRequest} -> pullRequest) (\s@UpdatePullRequestStatusResponse' {} a -> s {pullRequest = a} :: UpdatePullRequestStatusResponse)
+
+instance
+  Prelude.NFData
+    UpdatePullRequestStatusResponse
+  where
+  rnf UpdatePullRequestStatusResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf pullRequest
diff --git a/gen/Amazonka/CodeCommit/UpdatePullRequestTitle.hs b/gen/Amazonka/CodeCommit/UpdatePullRequestTitle.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UpdatePullRequestTitle.hs
@@ -0,0 +1,200 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.UpdatePullRequestTitle
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Replaces the title of a pull request.
+module Amazonka.CodeCommit.UpdatePullRequestTitle
+  ( -- * Creating a Request
+    UpdatePullRequestTitle (..),
+    newUpdatePullRequestTitle,
+
+    -- * Request Lenses
+    updatePullRequestTitle_pullRequestId,
+    updatePullRequestTitle_title,
+
+    -- * Destructuring the Response
+    UpdatePullRequestTitleResponse (..),
+    newUpdatePullRequestTitleResponse,
+
+    -- * Response Lenses
+    updatePullRequestTitleResponse_httpStatus,
+    updatePullRequestTitleResponse_pullRequest,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | /See:/ 'newUpdatePullRequestTitle' smart constructor.
+data UpdatePullRequestTitle = UpdatePullRequestTitle'
+  { -- | The system-generated ID of the pull request. To get this ID, use
+    -- ListPullRequests.
+    pullRequestId :: Prelude.Text,
+    -- | The updated title of the pull request. This replaces the existing title.
+    title :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdatePullRequestTitle' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pullRequestId', 'updatePullRequestTitle_pullRequestId' - The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+--
+-- 'title', 'updatePullRequestTitle_title' - The updated title of the pull request. This replaces the existing title.
+newUpdatePullRequestTitle ::
+  -- | 'pullRequestId'
+  Prelude.Text ->
+  -- | 'title'
+  Prelude.Text ->
+  UpdatePullRequestTitle
+newUpdatePullRequestTitle pPullRequestId_ pTitle_ =
+  UpdatePullRequestTitle'
+    { pullRequestId =
+        pPullRequestId_,
+      title = pTitle_
+    }
+
+-- | The system-generated ID of the pull request. To get this ID, use
+-- ListPullRequests.
+updatePullRequestTitle_pullRequestId :: Lens.Lens' UpdatePullRequestTitle Prelude.Text
+updatePullRequestTitle_pullRequestId = Lens.lens (\UpdatePullRequestTitle' {pullRequestId} -> pullRequestId) (\s@UpdatePullRequestTitle' {} a -> s {pullRequestId = a} :: UpdatePullRequestTitle)
+
+-- | The updated title of the pull request. This replaces the existing title.
+updatePullRequestTitle_title :: Lens.Lens' UpdatePullRequestTitle Prelude.Text
+updatePullRequestTitle_title = Lens.lens (\UpdatePullRequestTitle' {title} -> title) (\s@UpdatePullRequestTitle' {} a -> s {title = a} :: UpdatePullRequestTitle)
+
+instance Core.AWSRequest UpdatePullRequestTitle where
+  type
+    AWSResponse UpdatePullRequestTitle =
+      UpdatePullRequestTitleResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdatePullRequestTitleResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+            Prelude.<*> (x Data..:> "pullRequest")
+      )
+
+instance Prelude.Hashable UpdatePullRequestTitle where
+  hashWithSalt _salt UpdatePullRequestTitle' {..} =
+    _salt
+      `Prelude.hashWithSalt` pullRequestId
+      `Prelude.hashWithSalt` title
+
+instance Prelude.NFData UpdatePullRequestTitle where
+  rnf UpdatePullRequestTitle' {..} =
+    Prelude.rnf pullRequestId
+      `Prelude.seq` Prelude.rnf title
+
+instance Data.ToHeaders UpdatePullRequestTitle where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UpdatePullRequestTitle" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdatePullRequestTitle where
+  toJSON UpdatePullRequestTitle' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("pullRequestId" Data..= pullRequestId),
+            Prelude.Just ("title" Data..= title)
+          ]
+      )
+
+instance Data.ToPath UpdatePullRequestTitle where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UpdatePullRequestTitle where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdatePullRequestTitleResponse' smart constructor.
+data UpdatePullRequestTitleResponse = UpdatePullRequestTitleResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int,
+    -- | Information about the updated pull request.
+    pullRequest :: PullRequest
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdatePullRequestTitleResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'updatePullRequestTitleResponse_httpStatus' - The response's http status code.
+--
+-- 'pullRequest', 'updatePullRequestTitleResponse_pullRequest' - Information about the updated pull request.
+newUpdatePullRequestTitleResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  -- | 'pullRequest'
+  PullRequest ->
+  UpdatePullRequestTitleResponse
+newUpdatePullRequestTitleResponse
+  pHttpStatus_
+  pPullRequest_ =
+    UpdatePullRequestTitleResponse'
+      { httpStatus =
+          pHttpStatus_,
+        pullRequest = pPullRequest_
+      }
+
+-- | The response's http status code.
+updatePullRequestTitleResponse_httpStatus :: Lens.Lens' UpdatePullRequestTitleResponse Prelude.Int
+updatePullRequestTitleResponse_httpStatus = Lens.lens (\UpdatePullRequestTitleResponse' {httpStatus} -> httpStatus) (\s@UpdatePullRequestTitleResponse' {} a -> s {httpStatus = a} :: UpdatePullRequestTitleResponse)
+
+-- | Information about the updated pull request.
+updatePullRequestTitleResponse_pullRequest :: Lens.Lens' UpdatePullRequestTitleResponse PullRequest
+updatePullRequestTitleResponse_pullRequest = Lens.lens (\UpdatePullRequestTitleResponse' {pullRequest} -> pullRequest) (\s@UpdatePullRequestTitleResponse' {} a -> s {pullRequest = a} :: UpdatePullRequestTitleResponse)
+
+instance
+  Prelude.NFData
+    UpdatePullRequestTitleResponse
+  where
+  rnf UpdatePullRequestTitleResponse' {..} =
+    Prelude.rnf httpStatus
+      `Prelude.seq` Prelude.rnf pullRequest
diff --git a/gen/Amazonka/CodeCommit/UpdateRepositoryDescription.hs b/gen/Amazonka/CodeCommit/UpdateRepositoryDescription.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UpdateRepositoryDescription.hs
@@ -0,0 +1,173 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.CodeCommit.UpdateRepositoryDescription
+-- 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 or changes the comment or description for a repository.
+--
+-- The description field for a repository accepts all HTML characters and
+-- all valid Unicode characters. Applications that do not HTML-encode the
+-- description and display it in a webpage can expose users to potentially
+-- malicious code. Make sure that you HTML-encode the description field in
+-- any application that uses this API to display the repository description
+-- on a webpage.
+module Amazonka.CodeCommit.UpdateRepositoryDescription
+  ( -- * Creating a Request
+    UpdateRepositoryDescription (..),
+    newUpdateRepositoryDescription,
+
+    -- * Request Lenses
+    updateRepositoryDescription_repositoryDescription,
+    updateRepositoryDescription_repositoryName,
+
+    -- * Destructuring the Response
+    UpdateRepositoryDescriptionResponse (..),
+    newUpdateRepositoryDescriptionResponse,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of an update repository description operation.
+--
+-- /See:/ 'newUpdateRepositoryDescription' smart constructor.
+data UpdateRepositoryDescription = UpdateRepositoryDescription'
+  { -- | The new comment or description for the specified repository. Repository
+    -- descriptions are limited to 1,000 characters.
+    repositoryDescription :: Prelude.Maybe Prelude.Text,
+    -- | The name of the repository to set or change the comment or description
+    -- for.
+    repositoryName :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateRepositoryDescription' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'repositoryDescription', 'updateRepositoryDescription_repositoryDescription' - The new comment or description for the specified repository. Repository
+-- descriptions are limited to 1,000 characters.
+--
+-- 'repositoryName', 'updateRepositoryDescription_repositoryName' - The name of the repository to set or change the comment or description
+-- for.
+newUpdateRepositoryDescription ::
+  -- | 'repositoryName'
+  Prelude.Text ->
+  UpdateRepositoryDescription
+newUpdateRepositoryDescription pRepositoryName_ =
+  UpdateRepositoryDescription'
+    { repositoryDescription =
+        Prelude.Nothing,
+      repositoryName = pRepositoryName_
+    }
+
+-- | The new comment or description for the specified repository. Repository
+-- descriptions are limited to 1,000 characters.
+updateRepositoryDescription_repositoryDescription :: Lens.Lens' UpdateRepositoryDescription (Prelude.Maybe Prelude.Text)
+updateRepositoryDescription_repositoryDescription = Lens.lens (\UpdateRepositoryDescription' {repositoryDescription} -> repositoryDescription) (\s@UpdateRepositoryDescription' {} a -> s {repositoryDescription = a} :: UpdateRepositoryDescription)
+
+-- | The name of the repository to set or change the comment or description
+-- for.
+updateRepositoryDescription_repositoryName :: Lens.Lens' UpdateRepositoryDescription Prelude.Text
+updateRepositoryDescription_repositoryName = Lens.lens (\UpdateRepositoryDescription' {repositoryName} -> repositoryName) (\s@UpdateRepositoryDescription' {} a -> s {repositoryName = a} :: UpdateRepositoryDescription)
+
+instance Core.AWSRequest UpdateRepositoryDescription where
+  type
+    AWSResponse UpdateRepositoryDescription =
+      UpdateRepositoryDescriptionResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveNull
+      UpdateRepositoryDescriptionResponse'
+
+instance Prelude.Hashable UpdateRepositoryDescription where
+  hashWithSalt _salt UpdateRepositoryDescription' {..} =
+    _salt
+      `Prelude.hashWithSalt` repositoryDescription
+      `Prelude.hashWithSalt` repositoryName
+
+instance Prelude.NFData UpdateRepositoryDescription where
+  rnf UpdateRepositoryDescription' {..} =
+    Prelude.rnf repositoryDescription
+      `Prelude.seq` Prelude.rnf repositoryName
+
+instance Data.ToHeaders UpdateRepositoryDescription where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UpdateRepositoryDescription" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateRepositoryDescription where
+  toJSON UpdateRepositoryDescription' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("repositoryDescription" Data..=)
+              Prelude.<$> repositoryDescription,
+            Prelude.Just
+              ("repositoryName" Data..= repositoryName)
+          ]
+      )
+
+instance Data.ToPath UpdateRepositoryDescription where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UpdateRepositoryDescription where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateRepositoryDescriptionResponse' smart constructor.
+data UpdateRepositoryDescriptionResponse = UpdateRepositoryDescriptionResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateRepositoryDescriptionResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newUpdateRepositoryDescriptionResponse ::
+  UpdateRepositoryDescriptionResponse
+newUpdateRepositoryDescriptionResponse =
+  UpdateRepositoryDescriptionResponse'
+
+instance
+  Prelude.NFData
+    UpdateRepositoryDescriptionResponse
+  where
+  rnf _ = ()
diff --git a/gen/Amazonka/CodeCommit/UpdateRepositoryName.hs b/gen/Amazonka/CodeCommit/UpdateRepositoryName.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/UpdateRepositoryName.hs
@@ -0,0 +1,161 @@
+{-# 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.CodeCommit.UpdateRepositoryName
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Renames a repository. The repository name must be unique across the
+-- calling AWS account. Repository names are limited to 100 alphanumeric,
+-- dash, and underscore characters, and cannot include certain characters.
+-- The suffix .git is prohibited. For more information about the limits on
+-- repository names, see
+-- <https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html Limits>
+-- in the AWS CodeCommit User Guide.
+module Amazonka.CodeCommit.UpdateRepositoryName
+  ( -- * Creating a Request
+    UpdateRepositoryName (..),
+    newUpdateRepositoryName,
+
+    -- * Request Lenses
+    updateRepositoryName_oldName,
+    updateRepositoryName_newName,
+
+    -- * Destructuring the Response
+    UpdateRepositoryNameResponse (..),
+    newUpdateRepositoryNameResponse,
+  )
+where
+
+import Amazonka.CodeCommit.Types
+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
+
+-- | Represents the input of an update repository description operation.
+--
+-- /See:/ 'newUpdateRepositoryName' smart constructor.
+data UpdateRepositoryName = UpdateRepositoryName'
+  { -- | The current name of the repository.
+    oldName :: Prelude.Text,
+    -- | The new name for the repository.
+    newName' :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateRepositoryName' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'oldName', 'updateRepositoryName_oldName' - The current name of the repository.
+--
+-- 'newName'', 'updateRepositoryName_newName' - The new name for the repository.
+newUpdateRepositoryName ::
+  -- | 'oldName'
+  Prelude.Text ->
+  -- | 'newName''
+  Prelude.Text ->
+  UpdateRepositoryName
+newUpdateRepositoryName pOldName_ pNewName_ =
+  UpdateRepositoryName'
+    { oldName = pOldName_,
+      newName' = pNewName_
+    }
+
+-- | The current name of the repository.
+updateRepositoryName_oldName :: Lens.Lens' UpdateRepositoryName Prelude.Text
+updateRepositoryName_oldName = Lens.lens (\UpdateRepositoryName' {oldName} -> oldName) (\s@UpdateRepositoryName' {} a -> s {oldName = a} :: UpdateRepositoryName)
+
+-- | The new name for the repository.
+updateRepositoryName_newName :: Lens.Lens' UpdateRepositoryName Prelude.Text
+updateRepositoryName_newName = Lens.lens (\UpdateRepositoryName' {newName'} -> newName') (\s@UpdateRepositoryName' {} a -> s {newName' = a} :: UpdateRepositoryName)
+
+instance Core.AWSRequest UpdateRepositoryName where
+  type
+    AWSResponse UpdateRepositoryName =
+      UpdateRepositoryNameResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveNull UpdateRepositoryNameResponse'
+
+instance Prelude.Hashable UpdateRepositoryName where
+  hashWithSalt _salt UpdateRepositoryName' {..} =
+    _salt
+      `Prelude.hashWithSalt` oldName
+      `Prelude.hashWithSalt` newName'
+
+instance Prelude.NFData UpdateRepositoryName where
+  rnf UpdateRepositoryName' {..} =
+    Prelude.rnf oldName
+      `Prelude.seq` Prelude.rnf newName'
+
+instance Data.ToHeaders UpdateRepositoryName where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "X-Amz-Target"
+              Data.=# ( "CodeCommit_20150413.UpdateRepositoryName" ::
+                          Prelude.ByteString
+                      ),
+            "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateRepositoryName where
+  toJSON UpdateRepositoryName' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("oldName" Data..= oldName),
+            Prelude.Just ("newName" Data..= newName')
+          ]
+      )
+
+instance Data.ToPath UpdateRepositoryName where
+  toPath = Prelude.const "/"
+
+instance Data.ToQuery UpdateRepositoryName where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateRepositoryNameResponse' smart constructor.
+data UpdateRepositoryNameResponse = UpdateRepositoryNameResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateRepositoryNameResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newUpdateRepositoryNameResponse ::
+  UpdateRepositoryNameResponse
+newUpdateRepositoryNameResponse =
+  UpdateRepositoryNameResponse'
+
+instance Prelude.NFData UpdateRepositoryNameResponse where
+  rnf _ = ()
diff --git a/gen/Amazonka/CodeCommit/Waiters.hs b/gen/Amazonka/CodeCommit/Waiters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/CodeCommit/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.CodeCommit.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.CodeCommit.Waiters where
+
+import Amazonka.CodeCommit.Lens
+import Amazonka.CodeCommit.Types
+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
diff --git a/gen/Network/AWS/CodeCommit.hs b/gen/Network/AWS/CodeCommit.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit.hs
+++ /dev/null
@@ -1,852 +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.CodeCommit
--- 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)
---
--- __AWS CodeCommit__
---
--- This is the /AWS CodeCommit API Reference/ . This reference provides descriptions of the operations and data types for AWS CodeCommit API along with usage examples.
---
--- You can use the AWS CodeCommit API to work with the following objects:
---
--- Repositories, by calling the following:
---
---     * 'BatchGetRepositories' , which returns information about one or more repositories associated with your AWS account.
---
---     * 'CreateRepository' , which creates an AWS CodeCommit repository.
---
---     * 'DeleteRepository' , which deletes an AWS CodeCommit repository.
---
---     * 'GetRepository' , which returns information about a specified repository.
---
---     * 'ListRepositories' , which lists all AWS CodeCommit repositories associated with your AWS account.
---
---     * 'UpdateRepositoryDescription' , which sets or updates the description of the repository.
---
---     * 'UpdateRepositoryName' , which changes the name of the repository. If you change the name of a repository, no other users of that repository will be able to access it until you send them the new HTTPS or SSH URL to use.
---
---
---
--- Branches, by calling the following:
---
---     * 'CreateBranch' , which creates a new branch in a specified repository.
---
---     * 'DeleteBranch' , which deletes the specified branch in a repository unless it is the default branch.
---
---     * 'GetBranch' , which returns information about a specified branch.
---
---     * 'ListBranches' , which lists all branches for a specified repository.
---
---     * 'UpdateDefaultBranch' , which changes the default branch for a repository.
---
---
---
--- Files, by calling the following:
---
---     * 'PutFile' , which adds or modifies a file in a specified repository and branch.
---
---
---
--- Information about committed code in a repository, by calling the following:
---
---     * 'GetBlob' , which returns the base-64 encoded content of an individual Git blob object within a repository.
---
---     * 'GetCommit' , which returns information about a commit, including commit messages and author and committer information.
---
---     * 'GetDifferences' , which returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID or other fully qualified reference).
---
---
---
--- Pull requests, by calling the following:
---
---     * 'CreatePullRequest' , which creates a pull request in a specified repository.
---
---     * 'DescribePullRequestEvents' , which returns information about one or more pull request events.
---
---     * 'GetCommentsForPullRequest' , which returns information about comments on a specified pull request.
---
---     * 'GetMergeConflicts' , which returns information about merge conflicts between the source and destination branch in a pull request.
---
---     * 'GetPullRequest' , which returns information about a specified pull request.
---
---     * 'ListPullRequests' , which lists all pull requests for a repository.
---
---     * 'MergePullRequestByFastForward' , which merges the source destination branch of a pull request into the specified destination branch for that pull request using the fast-forward merge option.
---
---     * 'PostCommentForPullRequest' , which posts a comment to a pull request at the specified line, file, or request.
---
---     * 'UpdatePullRequestDescription' , which updates the description of a pull request.
---
---     * 'UpdatePullRequestStatus' , which updates the status of a pull request.
---
---     * 'UpdatePullRequestTitle' , which updates the title of a pull request.
---
---
---
--- Information about comments in a repository, by calling the following:
---
---     * 'DeleteCommentContent' , which deletes the content of a comment on a commit in a repository.
---
---     * 'GetComment' , which returns information about a comment on a commit.
---
---     * 'GetCommentsForComparedCommit' , which returns information about comments on the comparison between two commit specifiers in a repository.
---
---     * 'PostCommentForComparedCommit' , which creates a comment on the comparison between two commit specifiers in a repository.
---
---     * 'PostCommentReply' , which creates a reply to a comment.
---
---     * 'UpdateComment' , which updates the content of a comment on a commit in a repository.
---
---
---
--- Triggers, by calling the following:
---
---     * 'GetRepositoryTriggers' , which returns information about triggers configured for a repository.
---
---     * 'PutRepositoryTriggers' , which replaces all triggers for a repository and can be used to create or delete triggers.
---
---     * 'TestRepositoryTriggers' , which tests the functionality of a repository trigger by sending data to the trigger target.
---
---
---
--- For information about how to use AWS CodeCommit, see the <http://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html AWS CodeCommit User Guide> .
---
-module Network.AWS.CodeCommit
-    (
-    -- * Service Configuration
-      codeCommit
-
-    -- * Errors
-    -- $errors
-
-    -- ** InvalidRepositoryTriggerRegionException
-    , _InvalidRepositoryTriggerRegionException
-
-    -- ** InvalidContinuationTokenException
-    , _InvalidContinuationTokenException
-
-    -- ** ManualMergeRequiredException
-    , _ManualMergeRequiredException
-
-    -- ** TargetsRequiredException
-    , _TargetsRequiredException
-
-    -- ** EncryptionKeyNotFoundException
-    , _EncryptionKeyNotFoundException
-
-    -- ** TipsDivergenceExceededException
-    , _TipsDivergenceExceededException
-
-    -- ** InvalidRepositoryTriggerBranchNameException
-    , _InvalidRepositoryTriggerBranchNameException
-
-    -- ** PullRequestAlreadyClosedException
-    , _PullRequestAlreadyClosedException
-
-    -- ** InvalidRepositoryTriggerCustomDataException
-    , _InvalidRepositoryTriggerCustomDataException
-
-    -- ** DirectoryNameConflictsWithFileNameException
-    , _DirectoryNameConflictsWithFileNameException
-
-    -- ** ReferenceDoesNotExistException
-    , _ReferenceDoesNotExistException
-
-    -- ** ActorDoesNotExistException
-    , _ActorDoesNotExistException
-
-    -- ** PullRequestIdRequiredException
-    , _PullRequestIdRequiredException
-
-    -- ** InvalidEmailException
-    , _InvalidEmailException
-
-    -- ** CommitMessageLengthExceededException
-    , _CommitMessageLengthExceededException
-
-    -- ** BlobIdDoesNotExistException
-    , _BlobIdDoesNotExistException
-
-    -- ** MaximumRepositoryNamesExceededException
-    , _MaximumRepositoryNamesExceededException
-
-    -- ** InvalidRepositoryDescriptionException
-    , _InvalidRepositoryDescriptionException
-
-    -- ** RepositoryNameExistsException
-    , _RepositoryNameExistsException
-
-    -- ** ReferenceNameRequiredException
-    , _ReferenceNameRequiredException
-
-    -- ** MaximumRepositoryTriggersExceededException
-    , _MaximumRepositoryTriggersExceededException
-
-    -- ** InvalidBranchNameException
-    , _InvalidBranchNameException
-
-    -- ** BranchNameRequiredException
-    , _BranchNameRequiredException
-
-    -- ** MergeOptionRequiredException
-    , _MergeOptionRequiredException
-
-    -- ** InvalidFileLocationException
-    , _InvalidFileLocationException
-
-    -- ** BeforeCommitIdAndAfterCommitIdAreSameException
-    , _BeforeCommitIdAndAfterCommitIdAreSameException
-
-    -- ** RepositoryTriggersListRequiredException
-    , _RepositoryTriggersListRequiredException
-
-    -- ** IdempotencyParameterMismatchException
-    , _IdempotencyParameterMismatchException
-
-    -- ** EncryptionKeyUnavailableException
-    , _EncryptionKeyUnavailableException
-
-    -- ** InvalidRelativeFileVersionEnumException
-    , _InvalidRelativeFileVersionEnumException
-
-    -- ** InvalidRepositoryTriggerDestinationARNException
-    , _InvalidRepositoryTriggerDestinationARNException
-
-    -- ** BlobIdRequiredException
-    , _BlobIdRequiredException
-
-    -- ** RepositoryNamesRequiredException
-    , _RepositoryNamesRequiredException
-
-    -- ** InvalidActorARNException
-    , _InvalidActorARNException
-
-    -- ** InvalidCommentIdException
-    , _InvalidCommentIdException
-
-    -- ** InvalidDescriptionException
-    , _InvalidDescriptionException
-
-    -- ** InvalidBlobIdException
-    , _InvalidBlobIdException
-
-    -- ** PullRequestDoesNotExistException
-    , _PullRequestDoesNotExistException
-
-    -- ** InvalidOrderException
-    , _InvalidOrderException
-
-    -- ** BranchDoesNotExistException
-    , _BranchDoesNotExistException
-
-    -- ** DefaultBranchCannotBeDeletedException
-    , _DefaultBranchCannotBeDeletedException
-
-    -- ** InvalidPathException
-    , _InvalidPathException
-
-    -- ** PathRequiredException
-    , _PathRequiredException
-
-    -- ** RepositoryTriggerNameRequiredException
-    , _RepositoryTriggerNameRequiredException
-
-    -- ** InvalidFileModeException
-    , _InvalidFileModeException
-
-    -- ** InvalidPullRequestStatusException
-    , _InvalidPullRequestStatusException
-
-    -- ** ParentCommitIdRequiredException
-    , _ParentCommitIdRequiredException
-
-    -- ** InvalidSourceCommitSpecifierException
-    , _InvalidSourceCommitSpecifierException
-
-    -- ** RepositoryDoesNotExistException
-    , _RepositoryDoesNotExistException
-
-    -- ** MaximumBranchesExceededException
-    , _MaximumBranchesExceededException
-
-    -- ** InvalidTitleException
-    , _InvalidTitleException
-
-    -- ** CommentContentSizeLimitExceededException
-    , _CommentContentSizeLimitExceededException
-
-    -- ** InvalidParentCommitIdException
-    , _InvalidParentCommitIdException
-
-    -- ** InvalidPullRequestEventTypeException
-    , _InvalidPullRequestEventTypeException
-
-    -- ** FileContentRequiredException
-    , _FileContentRequiredException
-
-    -- ** SourceAndDestinationAreSameException
-    , _SourceAndDestinationAreSameException
-
-    -- ** PathDoesNotExistException
-    , _PathDoesNotExistException
-
-    -- ** EncryptionIntegrityChecksFailedException
-    , _EncryptionIntegrityChecksFailedException
-
-    -- ** ParentCommitIdOutdatedException
-    , _ParentCommitIdOutdatedException
-
-    -- ** RepositoryTriggerEventsListRequiredException
-    , _RepositoryTriggerEventsListRequiredException
-
-    -- ** CommentContentRequiredException
-    , _CommentContentRequiredException
-
-    -- ** InvalidTargetsException
-    , _InvalidTargetsException
-
-    -- ** EncryptionKeyAccessDeniedException
-    , _EncryptionKeyAccessDeniedException
-
-    -- ** BranchNameExistsException
-    , _BranchNameExistsException
-
-    -- ** InvalidCommitException
-    , _InvalidCommitException
-
-    -- ** TargetRequiredException
-    , _TargetRequiredException
-
-    -- ** InvalidDestinationCommitSpecifierException
-    , _InvalidDestinationCommitSpecifierException
-
-    -- ** CommentDoesNotExistException
-    , _CommentDoesNotExistException
-
-    -- ** ReferenceTypeNotSupportedException
-    , _ReferenceTypeNotSupportedException
-
-    -- ** FileNameConflictsWithDirectoryNameException
-    , _FileNameConflictsWithDirectoryNameException
-
-    -- ** NameLengthExceededException
-    , _NameLengthExceededException
-
-    -- ** InvalidSortByException
-    , _InvalidSortByException
-
-    -- ** EncryptionKeyDisabledException
-    , _EncryptionKeyDisabledException
-
-    -- ** CommitRequiredException
-    , _CommitRequiredException
-
-    -- ** MaximumOpenPullRequestsExceededException
-    , _MaximumOpenPullRequestsExceededException
-
-    -- ** InvalidTargetException
-    , _InvalidTargetException
-
-    -- ** InvalidPullRequestIdException
-    , _InvalidPullRequestIdException
-
-    -- ** CommentNotCreatedByCallerException
-    , _CommentNotCreatedByCallerException
-
-    -- ** InvalidPullRequestStatusUpdateException
-    , _InvalidPullRequestStatusUpdateException
-
-    -- ** InvalidReferenceNameException
-    , _InvalidReferenceNameException
-
-    -- ** SameFileContentException
-    , _SameFileContentException
-
-    -- ** CommitIdRequiredException
-    , _CommitIdRequiredException
-
-    -- ** InvalidCommitIdException
-    , _InvalidCommitIdException
-
-    -- ** TipOfSourceReferenceIsDifferentException
-    , _TipOfSourceReferenceIsDifferentException
-
-    -- ** RepositoryTriggerDestinationARNRequiredException
-    , _RepositoryTriggerDestinationARNRequiredException
-
-    -- ** InvalidClientRequestTokenException
-    , _InvalidClientRequestTokenException
-
-    -- ** CommitDoesNotExistException
-    , _CommitDoesNotExistException
-
-    -- ** RepositoryTriggerBranchNameListRequiredException
-    , _RepositoryTriggerBranchNameListRequiredException
-
-    -- ** ClientRequestTokenRequiredException
-    , _ClientRequestTokenRequiredException
-
-    -- ** InvalidMergeOptionException
-    , _InvalidMergeOptionException
-
-    -- ** CommentIdRequiredException
-    , _CommentIdRequiredException
-
-    -- ** InvalidMaxResultsException
-    , _InvalidMaxResultsException
-
-    -- ** FileTooLargeException
-    , _FileTooLargeException
-
-    -- ** CommitIdDoesNotExistException
-    , _CommitIdDoesNotExistException
-
-    -- ** MultipleRepositoriesInPullRequestException
-    , _MultipleRepositoriesInPullRequestException
-
-    -- ** FileContentSizeLimitExceededException
-    , _FileContentSizeLimitExceededException
-
-    -- ** InvalidRepositoryTriggerNameException
-    , _InvalidRepositoryTriggerNameException
-
-    -- ** RepositoryNameRequiredException
-    , _RepositoryNameRequiredException
-
-    -- ** RepositoryLimitExceededException
-    , _RepositoryLimitExceededException
-
-    -- ** InvalidRepositoryTriggerEventsException
-    , _InvalidRepositoryTriggerEventsException
-
-    -- ** BranchNameIsTagNameException
-    , _BranchNameIsTagNameException
-
-    -- ** InvalidRepositoryNameException
-    , _InvalidRepositoryNameException
-
-    -- ** InvalidAuthorARNException
-    , _InvalidAuthorARNException
-
-    -- ** PullRequestStatusRequiredException
-    , _PullRequestStatusRequiredException
-
-    -- ** RepositoryNotAssociatedWithPullRequestException
-    , _RepositoryNotAssociatedWithPullRequestException
-
-    -- ** TitleRequiredException
-    , _TitleRequiredException
-
-    -- ** InvalidFilePositionException
-    , _InvalidFilePositionException
-
-    -- ** CommentDeletedException
-    , _CommentDeletedException
-
-    -- ** ParentCommitDoesNotExistException
-    , _ParentCommitDoesNotExistException
-
-    -- ** AuthorDoesNotExistException
-    , _AuthorDoesNotExistException
-
-    -- * Waiters
-    -- $waiters
-
-    -- * Operations
-    -- $operations
-
-    -- ** MergePullRequestByFastForward
-    , module Network.AWS.CodeCommit.MergePullRequestByFastForward
-
-    -- ** UpdateRepositoryName
-    , module Network.AWS.CodeCommit.UpdateRepositoryName
-
-    -- ** PostCommentForPullRequest
-    , module Network.AWS.CodeCommit.PostCommentForPullRequest
-
-    -- ** GetCommit
-    , module Network.AWS.CodeCommit.GetCommit
-
-    -- ** GetBranch
-    , module Network.AWS.CodeCommit.GetBranch
-
-    -- ** GetDifferences (Paginated)
-    , module Network.AWS.CodeCommit.GetDifferences
-
-    -- ** GetPullRequest
-    , module Network.AWS.CodeCommit.GetPullRequest
-
-    -- ** ListPullRequests (Paginated)
-    , module Network.AWS.CodeCommit.ListPullRequests
-
-    -- ** GetComment
-    , module Network.AWS.CodeCommit.GetComment
-
-    -- ** DeleteBranch
-    , module Network.AWS.CodeCommit.DeleteBranch
-
-    -- ** UpdateRepositoryDescription
-    , module Network.AWS.CodeCommit.UpdateRepositoryDescription
-
-    -- ** CreateBranch
-    , module Network.AWS.CodeCommit.CreateBranch
-
-    -- ** CreatePullRequest
-    , module Network.AWS.CodeCommit.CreatePullRequest
-
-    -- ** ListBranches (Paginated)
-    , module Network.AWS.CodeCommit.ListBranches
-
-    -- ** UpdatePullRequestDescription
-    , module Network.AWS.CodeCommit.UpdatePullRequestDescription
-
-    -- ** ListRepositories (Paginated)
-    , module Network.AWS.CodeCommit.ListRepositories
-
-    -- ** CreateRepository
-    , module Network.AWS.CodeCommit.CreateRepository
-
-    -- ** UpdateDefaultBranch
-    , module Network.AWS.CodeCommit.UpdateDefaultBranch
-
-    -- ** PostCommentReply
-    , module Network.AWS.CodeCommit.PostCommentReply
-
-    -- ** GetRepository
-    , module Network.AWS.CodeCommit.GetRepository
-
-    -- ** GetRepositoryTriggers
-    , module Network.AWS.CodeCommit.GetRepositoryTriggers
-
-    -- ** PutFile
-    , module Network.AWS.CodeCommit.PutFile
-
-    -- ** GetCommentsForComparedCommit (Paginated)
-    , module Network.AWS.CodeCommit.GetCommentsForComparedCommit
-
-    -- ** TestRepositoryTriggers
-    , module Network.AWS.CodeCommit.TestRepositoryTriggers
-
-    -- ** UpdateComment
-    , module Network.AWS.CodeCommit.UpdateComment
-
-    -- ** PostCommentForComparedCommit
-    , module Network.AWS.CodeCommit.PostCommentForComparedCommit
-
-    -- ** UpdatePullRequestTitle
-    , module Network.AWS.CodeCommit.UpdatePullRequestTitle
-
-    -- ** GetBlob
-    , module Network.AWS.CodeCommit.GetBlob
-
-    -- ** PutRepositoryTriggers
-    , module Network.AWS.CodeCommit.PutRepositoryTriggers
-
-    -- ** GetMergeConflicts
-    , module Network.AWS.CodeCommit.GetMergeConflicts
-
-    -- ** DeleteRepository
-    , module Network.AWS.CodeCommit.DeleteRepository
-
-    -- ** DeleteCommentContent
-    , module Network.AWS.CodeCommit.DeleteCommentContent
-
-    -- ** DescribePullRequestEvents (Paginated)
-    , module Network.AWS.CodeCommit.DescribePullRequestEvents
-
-    -- ** BatchGetRepositories
-    , module Network.AWS.CodeCommit.BatchGetRepositories
-
-    -- ** GetCommentsForPullRequest (Paginated)
-    , module Network.AWS.CodeCommit.GetCommentsForPullRequest
-
-    -- ** UpdatePullRequestStatus
-    , module Network.AWS.CodeCommit.UpdatePullRequestStatus
-
-    -- * Types
-
-    -- ** ChangeTypeEnum
-    , ChangeTypeEnum (..)
-
-    -- ** FileModeTypeEnum
-    , FileModeTypeEnum (..)
-
-    -- ** MergeOptionTypeEnum
-    , MergeOptionTypeEnum (..)
-
-    -- ** OrderEnum
-    , OrderEnum (..)
-
-    -- ** PullRequestEventType
-    , PullRequestEventType (..)
-
-    -- ** PullRequestStatusEnum
-    , PullRequestStatusEnum (..)
-
-    -- ** RelativeFileVersionEnum
-    , RelativeFileVersionEnum (..)
-
-    -- ** RepositoryTriggerEventEnum
-    , RepositoryTriggerEventEnum (..)
-
-    -- ** SortByEnum
-    , SortByEnum (..)
-
-    -- ** BlobMetadata
-    , BlobMetadata
-    , blobMetadata
-    , bmPath
-    , bmMode
-    , bmBlobId
-
-    -- ** BranchInfo
-    , BranchInfo
-    , branchInfo
-    , biCommitId
-    , biBranchName
-
-    -- ** Comment
-    , Comment
-    , comment
-    , cLastModifiedDate
-    , cAuthorARN
-    , cContent
-    , cCreationDate
-    , cDeleted
-    , cClientRequestToken
-    , cCommentId
-    , cInReplyTo
-
-    -- ** CommentsForComparedCommit
-    , CommentsForComparedCommit
-    , commentsForComparedCommit
-    , cfccBeforeBlobId
-    , cfccLocation
-    , cfccAfterCommitId
-    , cfccAfterBlobId
-    , cfccBeforeCommitId
-    , cfccRepositoryName
-    , cfccComments
-
-    -- ** CommentsForPullRequest
-    , CommentsForPullRequest
-    , commentsForPullRequest
-    , cfprBeforeBlobId
-    , cfprLocation
-    , cfprAfterCommitId
-    , cfprPullRequestId
-    , cfprAfterBlobId
-    , cfprBeforeCommitId
-    , cfprRepositoryName
-    , cfprComments
-
-    -- ** Commit
-    , Commit
-    , commit
-    , cCommitId
-    , cCommitter
-    , cTreeId
-    , cAdditionalData
-    , cParents
-    , cAuthor
-    , cMessage
-
-    -- ** Difference
-    , Difference
-    , difference
-    , dAfterBlob
-    , dBeforeBlob
-    , dChangeType
-
-    -- ** Location
-    , Location
-    , location
-    , lRelativeFileVersion
-    , lFilePath
-    , lFilePosition
-
-    -- ** MergeMetadata
-    , MergeMetadata
-    , mergeMetadata
-    , mmMergedBy
-    , mmIsMerged
-
-    -- ** PullRequest
-    , PullRequest
-    , pullRequest
-    , prAuthorARN
-    , prPullRequestId
-    , prCreationDate
-    , prPullRequestStatus
-    , prTitle
-    , prClientRequestToken
-    , prLastActivityDate
-    , prPullRequestTargets
-    , prDescription
-
-    -- ** PullRequestEvent
-    , PullRequestEvent
-    , pullRequestEvent
-    , prePullRequestMergedStateChangedEventMetadata
-    , prePullRequestEventType
-    , prePullRequestStatusChangedEventMetadata
-    , preActorARN
-    , prePullRequestId
-    , preEventDate
-    , prePullRequestSourceReferenceUpdatedEventMetadata
-
-    -- ** PullRequestMergedStateChangedEventMetadata
-    , PullRequestMergedStateChangedEventMetadata
-    , pullRequestMergedStateChangedEventMetadata
-    , prmscemDestinationReference
-    , prmscemMergeMetadata
-    , prmscemRepositoryName
-
-    -- ** PullRequestSourceReferenceUpdatedEventMetadata
-    , PullRequestSourceReferenceUpdatedEventMetadata
-    , pullRequestSourceReferenceUpdatedEventMetadata
-    , prsruemAfterCommitId
-    , prsruemBeforeCommitId
-    , prsruemRepositoryName
-
-    -- ** PullRequestStatusChangedEventMetadata
-    , PullRequestStatusChangedEventMetadata
-    , pullRequestStatusChangedEventMetadata
-    , prscemPullRequestStatus
-
-    -- ** PullRequestTarget
-    , PullRequestTarget
-    , pullRequestTarget
-    , prtSourceCommit
-    , prtDestinationReference
-    , prtMergeMetadata
-    , prtDestinationCommit
-    , prtRepositoryName
-    , prtSourceReference
-
-    -- ** RepositoryMetadata
-    , RepositoryMetadata
-    , repositoryMetadata
-    , rmRepositoryDescription
-    , rmLastModifiedDate
-    , rmARN
-    , rmCloneURLHTTP
-    , rmAccountId
-    , rmDefaultBranch
-    , rmRepositoryId
-    , rmRepositoryName
-    , rmCreationDate
-    , rmCloneURLSSH
-
-    -- ** RepositoryNameIdPair
-    , RepositoryNameIdPair
-    , repositoryNameIdPair
-    , rnipRepositoryId
-    , rnipRepositoryName
-
-    -- ** RepositoryTrigger
-    , RepositoryTrigger
-    , repositoryTrigger
-    , rtBranches
-    , rtCustomData
-    , rtName
-    , rtDestinationARN
-    , rtEvents
-
-    -- ** RepositoryTriggerExecutionFailure
-    , RepositoryTriggerExecutionFailure
-    , repositoryTriggerExecutionFailure
-    , rtefFailureMessage
-    , rtefTrigger
-
-    -- ** Target
-    , Target
-    , target
-    , tDestinationReference
-    , tRepositoryName
-    , tSourceReference
-
-    -- ** UserInfo
-    , UserInfo
-    , userInfo
-    , uiEmail
-    , uiDate
-    , uiName
-    ) where
-
-import Network.AWS.CodeCommit.BatchGetRepositories
-import Network.AWS.CodeCommit.CreateBranch
-import Network.AWS.CodeCommit.CreatePullRequest
-import Network.AWS.CodeCommit.CreateRepository
-import Network.AWS.CodeCommit.DeleteBranch
-import Network.AWS.CodeCommit.DeleteCommentContent
-import Network.AWS.CodeCommit.DeleteRepository
-import Network.AWS.CodeCommit.DescribePullRequestEvents
-import Network.AWS.CodeCommit.GetBlob
-import Network.AWS.CodeCommit.GetBranch
-import Network.AWS.CodeCommit.GetComment
-import Network.AWS.CodeCommit.GetCommentsForComparedCommit
-import Network.AWS.CodeCommit.GetCommentsForPullRequest
-import Network.AWS.CodeCommit.GetCommit
-import Network.AWS.CodeCommit.GetDifferences
-import Network.AWS.CodeCommit.GetMergeConflicts
-import Network.AWS.CodeCommit.GetPullRequest
-import Network.AWS.CodeCommit.GetRepository
-import Network.AWS.CodeCommit.GetRepositoryTriggers
-import Network.AWS.CodeCommit.ListBranches
-import Network.AWS.CodeCommit.ListPullRequests
-import Network.AWS.CodeCommit.ListRepositories
-import Network.AWS.CodeCommit.MergePullRequestByFastForward
-import Network.AWS.CodeCommit.PostCommentForComparedCommit
-import Network.AWS.CodeCommit.PostCommentForPullRequest
-import Network.AWS.CodeCommit.PostCommentReply
-import Network.AWS.CodeCommit.PutFile
-import Network.AWS.CodeCommit.PutRepositoryTriggers
-import Network.AWS.CodeCommit.TestRepositoryTriggers
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.UpdateComment
-import Network.AWS.CodeCommit.UpdateDefaultBranch
-import Network.AWS.CodeCommit.UpdatePullRequestDescription
-import Network.AWS.CodeCommit.UpdatePullRequestStatus
-import Network.AWS.CodeCommit.UpdatePullRequestTitle
-import Network.AWS.CodeCommit.UpdateRepositoryDescription
-import Network.AWS.CodeCommit.UpdateRepositoryName
-import Network.AWS.CodeCommit.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 'CodeCommit'.
--}
-
-{- $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/CodeCommit/BatchGetRepositories.hs b/gen/Network/AWS/CodeCommit/BatchGetRepositories.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/BatchGetRepositories.hs
+++ /dev/null
@@ -1,154 +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.CodeCommit.BatchGetRepositories
--- 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)
---
--- Returns information about one or more repositories.
---
---
-module Network.AWS.CodeCommit.BatchGetRepositories
-    (
-    -- * Creating a Request
-      batchGetRepositories
-    , BatchGetRepositories
-    -- * Request Lenses
-    , bgrRepositoryNames
-
-    -- * Destructuring the Response
-    , batchGetRepositoriesResponse
-    , BatchGetRepositoriesResponse
-    -- * Response Lenses
-    , bgrrsRepositories
-    , bgrrsRepositoriesNotFound
-    , bgrrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a batch get repositories operation.
---
---
---
--- /See:/ 'batchGetRepositories' smart constructor.
-newtype BatchGetRepositories = BatchGetRepositories'
-  { _bgrRepositoryNames :: [Text]
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BatchGetRepositories' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bgrRepositoryNames' - The names of the repositories to get information about.
-batchGetRepositories
-    :: BatchGetRepositories
-batchGetRepositories = BatchGetRepositories' {_bgrRepositoryNames = mempty}
-
-
--- | The names of the repositories to get information about.
-bgrRepositoryNames :: Lens' BatchGetRepositories [Text]
-bgrRepositoryNames = lens _bgrRepositoryNames (\ s a -> s{_bgrRepositoryNames = a}) . _Coerce
-
-instance AWSRequest BatchGetRepositories where
-        type Rs BatchGetRepositories =
-             BatchGetRepositoriesResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 BatchGetRepositoriesResponse' <$>
-                   (x .?> "repositories" .!@ mempty) <*>
-                     (x .?> "repositoriesNotFound" .!@ mempty)
-                     <*> (pure (fromEnum s)))
-
-instance Hashable BatchGetRepositories where
-
-instance NFData BatchGetRepositories where
-
-instance ToHeaders BatchGetRepositories where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.BatchGetRepositories" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON BatchGetRepositories where
-        toJSON BatchGetRepositories'{..}
-          = object
-              (catMaybes
-                 [Just ("repositoryNames" .= _bgrRepositoryNames)])
-
-instance ToPath BatchGetRepositories where
-        toPath = const "/"
-
-instance ToQuery BatchGetRepositories where
-        toQuery = const mempty
-
--- | Represents the output of a batch get repositories operation.
---
---
---
--- /See:/ 'batchGetRepositoriesResponse' smart constructor.
-data BatchGetRepositoriesResponse = BatchGetRepositoriesResponse'
-  { _bgrrsRepositories         :: !(Maybe [RepositoryMetadata])
-  , _bgrrsRepositoriesNotFound :: !(Maybe [Text])
-  , _bgrrsResponseStatus       :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BatchGetRepositoriesResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bgrrsRepositories' - A list of repositories returned by the batch get repositories operation.
---
--- * 'bgrrsRepositoriesNotFound' - Returns a list of repository names for which information could not be found.
---
--- * 'bgrrsResponseStatus' - -- | The response status code.
-batchGetRepositoriesResponse
-    :: Int -- ^ 'bgrrsResponseStatus'
-    -> BatchGetRepositoriesResponse
-batchGetRepositoriesResponse pResponseStatus_ =
-  BatchGetRepositoriesResponse'
-    { _bgrrsRepositories = Nothing
-    , _bgrrsRepositoriesNotFound = Nothing
-    , _bgrrsResponseStatus = pResponseStatus_
-    }
-
-
--- | A list of repositories returned by the batch get repositories operation.
-bgrrsRepositories :: Lens' BatchGetRepositoriesResponse [RepositoryMetadata]
-bgrrsRepositories = lens _bgrrsRepositories (\ s a -> s{_bgrrsRepositories = a}) . _Default . _Coerce
-
--- | Returns a list of repository names for which information could not be found.
-bgrrsRepositoriesNotFound :: Lens' BatchGetRepositoriesResponse [Text]
-bgrrsRepositoriesNotFound = lens _bgrrsRepositoriesNotFound (\ s a -> s{_bgrrsRepositoriesNotFound = a}) . _Default . _Coerce
-
--- | -- | The response status code.
-bgrrsResponseStatus :: Lens' BatchGetRepositoriesResponse Int
-bgrrsResponseStatus = lens _bgrrsResponseStatus (\ s a -> s{_bgrrsResponseStatus = a})
-
-instance NFData BatchGetRepositoriesResponse where
diff --git a/gen/Network/AWS/CodeCommit/CreateBranch.hs b/gen/Network/AWS/CodeCommit/CreateBranch.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/CreateBranch.hs
+++ /dev/null
@@ -1,137 +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.CodeCommit.CreateBranch
--- 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 a new branch in a repository and points the branch to a commit.
---
---
-module Network.AWS.CodeCommit.CreateBranch
-    (
-    -- * Creating a Request
-      createBranch
-    , CreateBranch
-    -- * Request Lenses
-    , cbRepositoryName
-    , cbBranchName
-    , cbCommitId
-
-    -- * Destructuring the Response
-    , createBranchResponse
-    , CreateBranchResponse
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a create branch operation.
---
---
---
--- /See:/ 'createBranch' smart constructor.
-data CreateBranch = CreateBranch'
-  { _cbRepositoryName :: !Text
-  , _cbBranchName     :: !Text
-  , _cbCommitId       :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateBranch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cbRepositoryName' - The name of the repository in which you want to create the new branch.
---
--- * 'cbBranchName' - The name of the new branch to create.
---
--- * 'cbCommitId' - The ID of the commit to point the new branch to.
-createBranch
-    :: Text -- ^ 'cbRepositoryName'
-    -> Text -- ^ 'cbBranchName'
-    -> Text -- ^ 'cbCommitId'
-    -> CreateBranch
-createBranch pRepositoryName_ pBranchName_ pCommitId_ =
-  CreateBranch'
-    { _cbRepositoryName = pRepositoryName_
-    , _cbBranchName = pBranchName_
-    , _cbCommitId = pCommitId_
-    }
-
-
--- | The name of the repository in which you want to create the new branch.
-cbRepositoryName :: Lens' CreateBranch Text
-cbRepositoryName = lens _cbRepositoryName (\ s a -> s{_cbRepositoryName = a})
-
--- | The name of the new branch to create.
-cbBranchName :: Lens' CreateBranch Text
-cbBranchName = lens _cbBranchName (\ s a -> s{_cbBranchName = a})
-
--- | The ID of the commit to point the new branch to.
-cbCommitId :: Lens' CreateBranch Text
-cbCommitId = lens _cbCommitId (\ s a -> s{_cbCommitId = a})
-
-instance AWSRequest CreateBranch where
-        type Rs CreateBranch = CreateBranchResponse
-        request = postJSON codeCommit
-        response = receiveNull CreateBranchResponse'
-
-instance Hashable CreateBranch where
-
-instance NFData CreateBranch where
-
-instance ToHeaders CreateBranch where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.CreateBranch" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON CreateBranch where
-        toJSON CreateBranch'{..}
-          = object
-              (catMaybes
-                 [Just ("repositoryName" .= _cbRepositoryName),
-                  Just ("branchName" .= _cbBranchName),
-                  Just ("commitId" .= _cbCommitId)])
-
-instance ToPath CreateBranch where
-        toPath = const "/"
-
-instance ToQuery CreateBranch where
-        toQuery = const mempty
-
--- | /See:/ 'createBranchResponse' smart constructor.
-data CreateBranchResponse =
-  CreateBranchResponse'
-  deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateBranchResponse' with the minimum fields required to make a request.
---
-createBranchResponse
-    :: CreateBranchResponse
-createBranchResponse = CreateBranchResponse'
-
-
-instance NFData CreateBranchResponse where
diff --git a/gen/Network/AWS/CodeCommit/CreatePullRequest.hs b/gen/Network/AWS/CodeCommit/CreatePullRequest.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/CreatePullRequest.hs
+++ /dev/null
@@ -1,168 +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.CodeCommit.CreatePullRequest
--- 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 a pull request in the specified repository.
---
---
-module Network.AWS.CodeCommit.CreatePullRequest
-    (
-    -- * Creating a Request
-      createPullRequest
-    , CreatePullRequest
-    -- * Request Lenses
-    , cprClientRequestToken
-    , cprDescription
-    , cprTitle
-    , cprTargets
-
-    -- * Destructuring the Response
-    , createPullRequestResponse
-    , CreatePullRequestResponse
-    -- * Response Lenses
-    , cprrsResponseStatus
-    , cprrsPullRequest
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'createPullRequest' smart constructor.
-data CreatePullRequest = CreatePullRequest'
-  { _cprClientRequestToken :: !(Maybe Text)
-  , _cprDescription        :: !(Maybe Text)
-  , _cprTitle              :: !Text
-  , _cprTargets            :: ![Target]
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreatePullRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cprClientRequestToken' - A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
---
--- * 'cprDescription' - A description of the pull request.
---
--- * 'cprTitle' - The title of the pull request. This title will be used to identify the pull request to other users in the repository.
---
--- * 'cprTargets' - The targets for the pull request, including the source of the code to be reviewed (the source branch), and the destination where the creator of the pull request intends the code to be merged after the pull request is closed (the destination branch).
-createPullRequest
-    :: Text -- ^ 'cprTitle'
-    -> CreatePullRequest
-createPullRequest pTitle_ =
-  CreatePullRequest'
-    { _cprClientRequestToken = Nothing
-    , _cprDescription = Nothing
-    , _cprTitle = pTitle_
-    , _cprTargets = mempty
-    }
-
-
--- | A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
-cprClientRequestToken :: Lens' CreatePullRequest (Maybe Text)
-cprClientRequestToken = lens _cprClientRequestToken (\ s a -> s{_cprClientRequestToken = a})
-
--- | A description of the pull request.
-cprDescription :: Lens' CreatePullRequest (Maybe Text)
-cprDescription = lens _cprDescription (\ s a -> s{_cprDescription = a})
-
--- | The title of the pull request. This title will be used to identify the pull request to other users in the repository.
-cprTitle :: Lens' CreatePullRequest Text
-cprTitle = lens _cprTitle (\ s a -> s{_cprTitle = a})
-
--- | The targets for the pull request, including the source of the code to be reviewed (the source branch), and the destination where the creator of the pull request intends the code to be merged after the pull request is closed (the destination branch).
-cprTargets :: Lens' CreatePullRequest [Target]
-cprTargets = lens _cprTargets (\ s a -> s{_cprTargets = a}) . _Coerce
-
-instance AWSRequest CreatePullRequest where
-        type Rs CreatePullRequest = CreatePullRequestResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 CreatePullRequestResponse' <$>
-                   (pure (fromEnum s)) <*> (x .:> "pullRequest"))
-
-instance Hashable CreatePullRequest where
-
-instance NFData CreatePullRequest where
-
-instance ToHeaders CreatePullRequest where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.CreatePullRequest" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON CreatePullRequest where
-        toJSON CreatePullRequest'{..}
-          = object
-              (catMaybes
-                 [("clientRequestToken" .=) <$>
-                    _cprClientRequestToken,
-                  ("description" .=) <$> _cprDescription,
-                  Just ("title" .= _cprTitle),
-                  Just ("targets" .= _cprTargets)])
-
-instance ToPath CreatePullRequest where
-        toPath = const "/"
-
-instance ToQuery CreatePullRequest where
-        toQuery = const mempty
-
--- | /See:/ 'createPullRequestResponse' smart constructor.
-data CreatePullRequestResponse = CreatePullRequestResponse'
-  { _cprrsResponseStatus :: !Int
-  , _cprrsPullRequest    :: !PullRequest
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreatePullRequestResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cprrsResponseStatus' - -- | The response status code.
---
--- * 'cprrsPullRequest' - Information about the newly created pull request.
-createPullRequestResponse
-    :: Int -- ^ 'cprrsResponseStatus'
-    -> PullRequest -- ^ 'cprrsPullRequest'
-    -> CreatePullRequestResponse
-createPullRequestResponse pResponseStatus_ pPullRequest_ =
-  CreatePullRequestResponse'
-    {_cprrsResponseStatus = pResponseStatus_, _cprrsPullRequest = pPullRequest_}
-
-
--- | -- | The response status code.
-cprrsResponseStatus :: Lens' CreatePullRequestResponse Int
-cprrsResponseStatus = lens _cprrsResponseStatus (\ s a -> s{_cprrsResponseStatus = a})
-
--- | Information about the newly created pull request.
-cprrsPullRequest :: Lens' CreatePullRequestResponse PullRequest
-cprrsPullRequest = lens _cprrsPullRequest (\ s a -> s{_cprrsPullRequest = a})
-
-instance NFData CreatePullRequestResponse where
diff --git a/gen/Network/AWS/CodeCommit/CreateRepository.hs b/gen/Network/AWS/CodeCommit/CreateRepository.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/CreateRepository.hs
+++ /dev/null
@@ -1,153 +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.CodeCommit.CreateRepository
--- 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 a new, empty repository.
---
---
-module Network.AWS.CodeCommit.CreateRepository
-    (
-    -- * Creating a Request
-      createRepository
-    , CreateRepository
-    -- * Request Lenses
-    , crRepositoryDescription
-    , crRepositoryName
-
-    -- * Destructuring the Response
-    , createRepositoryResponse
-    , CreateRepositoryResponse
-    -- * Response Lenses
-    , crrsRepositoryMetadata
-    , crrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a create repository operation.
---
---
---
--- /See:/ 'createRepository' smart constructor.
-data CreateRepository = CreateRepository'
-  { _crRepositoryDescription :: !(Maybe Text)
-  , _crRepositoryName        :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateRepository' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'crRepositoryDescription' - A comment or description about the new repository.
---
--- * 'crRepositoryName' - The name of the new repository to be created.
-createRepository
-    :: Text -- ^ 'crRepositoryName'
-    -> CreateRepository
-createRepository pRepositoryName_ =
-  CreateRepository'
-    {_crRepositoryDescription = Nothing, _crRepositoryName = pRepositoryName_}
-
-
--- | A comment or description about the new repository.
-crRepositoryDescription :: Lens' CreateRepository (Maybe Text)
-crRepositoryDescription = lens _crRepositoryDescription (\ s a -> s{_crRepositoryDescription = a})
-
--- | The name of the new repository to be created.
-crRepositoryName :: Lens' CreateRepository Text
-crRepositoryName = lens _crRepositoryName (\ s a -> s{_crRepositoryName = a})
-
-instance AWSRequest CreateRepository where
-        type Rs CreateRepository = CreateRepositoryResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 CreateRepositoryResponse' <$>
-                   (x .?> "repositoryMetadata") <*> (pure (fromEnum s)))
-
-instance Hashable CreateRepository where
-
-instance NFData CreateRepository where
-
-instance ToHeaders CreateRepository where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.CreateRepository" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON CreateRepository where
-        toJSON CreateRepository'{..}
-          = object
-              (catMaybes
-                 [("repositoryDescription" .=) <$>
-                    _crRepositoryDescription,
-                  Just ("repositoryName" .= _crRepositoryName)])
-
-instance ToPath CreateRepository where
-        toPath = const "/"
-
-instance ToQuery CreateRepository where
-        toQuery = const mempty
-
--- | Represents the output of a create repository operation.
---
---
---
--- /See:/ 'createRepositoryResponse' smart constructor.
-data CreateRepositoryResponse = CreateRepositoryResponse'
-  { _crrsRepositoryMetadata :: !(Maybe RepositoryMetadata)
-  , _crrsResponseStatus     :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateRepositoryResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'crrsRepositoryMetadata' - Information about the newly created repository.
---
--- * 'crrsResponseStatus' - -- | The response status code.
-createRepositoryResponse
-    :: Int -- ^ 'crrsResponseStatus'
-    -> CreateRepositoryResponse
-createRepositoryResponse pResponseStatus_ =
-  CreateRepositoryResponse'
-    {_crrsRepositoryMetadata = Nothing, _crrsResponseStatus = pResponseStatus_}
-
-
--- | Information about the newly created repository.
-crrsRepositoryMetadata :: Lens' CreateRepositoryResponse (Maybe RepositoryMetadata)
-crrsRepositoryMetadata = lens _crrsRepositoryMetadata (\ s a -> s{_crrsRepositoryMetadata = a})
-
--- | -- | The response status code.
-crrsResponseStatus :: Lens' CreateRepositoryResponse Int
-crrsResponseStatus = lens _crrsResponseStatus (\ s a -> s{_crrsResponseStatus = a})
-
-instance NFData CreateRepositoryResponse where
diff --git a/gen/Network/AWS/CodeCommit/DeleteBranch.hs b/gen/Network/AWS/CodeCommit/DeleteBranch.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/DeleteBranch.hs
+++ /dev/null
@@ -1,152 +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.CodeCommit.DeleteBranch
--- 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 a branch from a repository, unless that branch is the default branch for the repository.
---
---
-module Network.AWS.CodeCommit.DeleteBranch
-    (
-    -- * Creating a Request
-      deleteBranch
-    , DeleteBranch
-    -- * Request Lenses
-    , dbRepositoryName
-    , dbBranchName
-
-    -- * Destructuring the Response
-    , deleteBranchResponse
-    , DeleteBranchResponse
-    -- * Response Lenses
-    , dbrsDeletedBranch
-    , dbrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a delete branch operation.
---
---
---
--- /See:/ 'deleteBranch' smart constructor.
-data DeleteBranch = DeleteBranch'
-  { _dbRepositoryName :: !Text
-  , _dbBranchName     :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeleteBranch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dbRepositoryName' - The name of the repository that contains the branch to be deleted.
---
--- * 'dbBranchName' - The name of the branch to delete.
-deleteBranch
-    :: Text -- ^ 'dbRepositoryName'
-    -> Text -- ^ 'dbBranchName'
-    -> DeleteBranch
-deleteBranch pRepositoryName_ pBranchName_ =
-  DeleteBranch'
-    {_dbRepositoryName = pRepositoryName_, _dbBranchName = pBranchName_}
-
-
--- | The name of the repository that contains the branch to be deleted.
-dbRepositoryName :: Lens' DeleteBranch Text
-dbRepositoryName = lens _dbRepositoryName (\ s a -> s{_dbRepositoryName = a})
-
--- | The name of the branch to delete.
-dbBranchName :: Lens' DeleteBranch Text
-dbBranchName = lens _dbBranchName (\ s a -> s{_dbBranchName = a})
-
-instance AWSRequest DeleteBranch where
-        type Rs DeleteBranch = DeleteBranchResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DeleteBranchResponse' <$>
-                   (x .?> "deletedBranch") <*> (pure (fromEnum s)))
-
-instance Hashable DeleteBranch where
-
-instance NFData DeleteBranch where
-
-instance ToHeaders DeleteBranch where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.DeleteBranch" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DeleteBranch where
-        toJSON DeleteBranch'{..}
-          = object
-              (catMaybes
-                 [Just ("repositoryName" .= _dbRepositoryName),
-                  Just ("branchName" .= _dbBranchName)])
-
-instance ToPath DeleteBranch where
-        toPath = const "/"
-
-instance ToQuery DeleteBranch where
-        toQuery = const mempty
-
--- | Represents the output of a delete branch operation.
---
---
---
--- /See:/ 'deleteBranchResponse' smart constructor.
-data DeleteBranchResponse = DeleteBranchResponse'
-  { _dbrsDeletedBranch  :: !(Maybe BranchInfo)
-  , _dbrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeleteBranchResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dbrsDeletedBranch' - Information about the branch deleted by the operation, including the branch name and the commit ID that was the tip of the branch.
---
--- * 'dbrsResponseStatus' - -- | The response status code.
-deleteBranchResponse
-    :: Int -- ^ 'dbrsResponseStatus'
-    -> DeleteBranchResponse
-deleteBranchResponse pResponseStatus_ =
-  DeleteBranchResponse'
-    {_dbrsDeletedBranch = Nothing, _dbrsResponseStatus = pResponseStatus_}
-
-
--- | Information about the branch deleted by the operation, including the branch name and the commit ID that was the tip of the branch.
-dbrsDeletedBranch :: Lens' DeleteBranchResponse (Maybe BranchInfo)
-dbrsDeletedBranch = lens _dbrsDeletedBranch (\ s a -> s{_dbrsDeletedBranch = a})
-
--- | -- | The response status code.
-dbrsResponseStatus :: Lens' DeleteBranchResponse Int
-dbrsResponseStatus = lens _dbrsResponseStatus (\ s a -> s{_dbrsResponseStatus = a})
-
-instance NFData DeleteBranchResponse where
diff --git a/gen/Network/AWS/CodeCommit/DeleteCommentContent.hs b/gen/Network/AWS/CodeCommit/DeleteCommentContent.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/DeleteCommentContent.hs
+++ /dev/null
@@ -1,134 +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.CodeCommit.DeleteCommentContent
--- 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 content of a comment made on a change, file, or commit in a repository.
---
---
-module Network.AWS.CodeCommit.DeleteCommentContent
-    (
-    -- * Creating a Request
-      deleteCommentContent
-    , DeleteCommentContent
-    -- * Request Lenses
-    , dccCommentId
-
-    -- * Destructuring the Response
-    , deleteCommentContentResponse
-    , DeleteCommentContentResponse
-    -- * Response Lenses
-    , dccrsComment
-    , dccrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'deleteCommentContent' smart constructor.
-newtype DeleteCommentContent = DeleteCommentContent'
-  { _dccCommentId :: Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeleteCommentContent' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dccCommentId' - The unique, system-generated ID of the comment. To get this ID, use 'GetCommentsForComparedCommit' or 'GetCommentsForPullRequest' .
-deleteCommentContent
-    :: Text -- ^ 'dccCommentId'
-    -> DeleteCommentContent
-deleteCommentContent pCommentId_ =
-  DeleteCommentContent' {_dccCommentId = pCommentId_}
-
-
--- | The unique, system-generated ID of the comment. To get this ID, use 'GetCommentsForComparedCommit' or 'GetCommentsForPullRequest' .
-dccCommentId :: Lens' DeleteCommentContent Text
-dccCommentId = lens _dccCommentId (\ s a -> s{_dccCommentId = a})
-
-instance AWSRequest DeleteCommentContent where
-        type Rs DeleteCommentContent =
-             DeleteCommentContentResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DeleteCommentContentResponse' <$>
-                   (x .?> "comment") <*> (pure (fromEnum s)))
-
-instance Hashable DeleteCommentContent where
-
-instance NFData DeleteCommentContent where
-
-instance ToHeaders DeleteCommentContent where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.DeleteCommentContent" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DeleteCommentContent where
-        toJSON DeleteCommentContent'{..}
-          = object
-              (catMaybes [Just ("commentId" .= _dccCommentId)])
-
-instance ToPath DeleteCommentContent where
-        toPath = const "/"
-
-instance ToQuery DeleteCommentContent where
-        toQuery = const mempty
-
--- | /See:/ 'deleteCommentContentResponse' smart constructor.
-data DeleteCommentContentResponse = DeleteCommentContentResponse'
-  { _dccrsComment        :: !(Maybe Comment)
-  , _dccrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeleteCommentContentResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dccrsComment' - Information about the comment you just deleted.
---
--- * 'dccrsResponseStatus' - -- | The response status code.
-deleteCommentContentResponse
-    :: Int -- ^ 'dccrsResponseStatus'
-    -> DeleteCommentContentResponse
-deleteCommentContentResponse pResponseStatus_ =
-  DeleteCommentContentResponse'
-    {_dccrsComment = Nothing, _dccrsResponseStatus = pResponseStatus_}
-
-
--- | Information about the comment you just deleted.
-dccrsComment :: Lens' DeleteCommentContentResponse (Maybe Comment)
-dccrsComment = lens _dccrsComment (\ s a -> s{_dccrsComment = a})
-
--- | -- | The response status code.
-dccrsResponseStatus :: Lens' DeleteCommentContentResponse Int
-dccrsResponseStatus = lens _dccrsResponseStatus (\ s a -> s{_dccrsResponseStatus = a})
-
-instance NFData DeleteCommentContentResponse where
diff --git a/gen/Network/AWS/CodeCommit/DeleteRepository.hs b/gen/Network/AWS/CodeCommit/DeleteRepository.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/DeleteRepository.hs
+++ /dev/null
@@ -1,144 +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.CodeCommit.DeleteRepository
--- 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 a repository. If a specified repository was already deleted, a null repository ID will be returned.
---
---
--- /Important:/ Deleting a repository also deletes all associated objects and metadata. After a repository is deleted, all future push calls to the deleted repository will fail.
---
-module Network.AWS.CodeCommit.DeleteRepository
-    (
-    -- * Creating a Request
-      deleteRepository
-    , DeleteRepository
-    -- * Request Lenses
-    , drRepositoryName
-
-    -- * Destructuring the Response
-    , deleteRepositoryResponse
-    , DeleteRepositoryResponse
-    -- * Response Lenses
-    , drrsRepositoryId
-    , drrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a delete repository operation.
---
---
---
--- /See:/ 'deleteRepository' smart constructor.
-newtype DeleteRepository = DeleteRepository'
-  { _drRepositoryName :: Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeleteRepository' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drRepositoryName' - The name of the repository to delete.
-deleteRepository
-    :: Text -- ^ 'drRepositoryName'
-    -> DeleteRepository
-deleteRepository pRepositoryName_ =
-  DeleteRepository' {_drRepositoryName = pRepositoryName_}
-
-
--- | The name of the repository to delete.
-drRepositoryName :: Lens' DeleteRepository Text
-drRepositoryName = lens _drRepositoryName (\ s a -> s{_drRepositoryName = a})
-
-instance AWSRequest DeleteRepository where
-        type Rs DeleteRepository = DeleteRepositoryResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DeleteRepositoryResponse' <$>
-                   (x .?> "repositoryId") <*> (pure (fromEnum s)))
-
-instance Hashable DeleteRepository where
-
-instance NFData DeleteRepository where
-
-instance ToHeaders DeleteRepository where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.DeleteRepository" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DeleteRepository where
-        toJSON DeleteRepository'{..}
-          = object
-              (catMaybes
-                 [Just ("repositoryName" .= _drRepositoryName)])
-
-instance ToPath DeleteRepository where
-        toPath = const "/"
-
-instance ToQuery DeleteRepository where
-        toQuery = const mempty
-
--- | Represents the output of a delete repository operation.
---
---
---
--- /See:/ 'deleteRepositoryResponse' smart constructor.
-data DeleteRepositoryResponse = DeleteRepositoryResponse'
-  { _drrsRepositoryId   :: !(Maybe Text)
-  , _drrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeleteRepositoryResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drrsRepositoryId' - The ID of the repository that was deleted.
---
--- * 'drrsResponseStatus' - -- | The response status code.
-deleteRepositoryResponse
-    :: Int -- ^ 'drrsResponseStatus'
-    -> DeleteRepositoryResponse
-deleteRepositoryResponse pResponseStatus_ =
-  DeleteRepositoryResponse'
-    {_drrsRepositoryId = Nothing, _drrsResponseStatus = pResponseStatus_}
-
-
--- | The ID of the repository that was deleted.
-drrsRepositoryId :: Lens' DeleteRepositoryResponse (Maybe Text)
-drrsRepositoryId = lens _drrsRepositoryId (\ s a -> s{_drrsRepositoryId = a})
-
--- | -- | The response status code.
-drrsResponseStatus :: Lens' DeleteRepositoryResponse Int
-drrsResponseStatus = lens _drrsResponseStatus (\ s a -> s{_drrsResponseStatus = a})
-
-instance NFData DeleteRepositoryResponse where
diff --git a/gen/Network/AWS/CodeCommit/DescribePullRequestEvents.hs b/gen/Network/AWS/CodeCommit/DescribePullRequestEvents.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/DescribePullRequestEvents.hs
+++ /dev/null
@@ -1,201 +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.CodeCommit.DescribePullRequestEvents
--- 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)
---
--- Returns information about one or more pull request events.
---
---
---
--- This operation returns paginated results.
-module Network.AWS.CodeCommit.DescribePullRequestEvents
-    (
-    -- * Creating a Request
-      describePullRequestEvents
-    , DescribePullRequestEvents
-    -- * Request Lenses
-    , dprePullRequestEventType
-    , dpreActorARN
-    , dpreNextToken
-    , dpreMaxResults
-    , dprePullRequestId
-
-    -- * Destructuring the Response
-    , describePullRequestEventsResponse
-    , DescribePullRequestEventsResponse
-    -- * Response Lenses
-    , dprersNextToken
-    , dprersResponseStatus
-    , dprersPullRequestEvents
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Pager
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'describePullRequestEvents' smart constructor.
-data DescribePullRequestEvents = DescribePullRequestEvents'
-  { _dprePullRequestEventType :: !(Maybe PullRequestEventType)
-  , _dpreActorARN             :: !(Maybe Text)
-  , _dpreNextToken            :: !(Maybe Text)
-  , _dpreMaxResults           :: !(Maybe Int)
-  , _dprePullRequestId        :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DescribePullRequestEvents' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dprePullRequestEventType' - Optional. The pull request event type about which you want to return information.
---
--- * 'dpreActorARN' - The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with additional commits or changing the status of a pull request.
---
--- * 'dpreNextToken' - An enumeration token that when provided in a request, returns the next batch of the results.
---
--- * 'dpreMaxResults' - A non-negative integer used to limit the number of returned results. The default is 100 events, which is also the maximum number of events that can be returned in a result.
---
--- * 'dprePullRequestId' - The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
-describePullRequestEvents
-    :: Text -- ^ 'dprePullRequestId'
-    -> DescribePullRequestEvents
-describePullRequestEvents pPullRequestId_ =
-  DescribePullRequestEvents'
-    { _dprePullRequestEventType = Nothing
-    , _dpreActorARN = Nothing
-    , _dpreNextToken = Nothing
-    , _dpreMaxResults = Nothing
-    , _dprePullRequestId = pPullRequestId_
-    }
-
-
--- | Optional. The pull request event type about which you want to return information.
-dprePullRequestEventType :: Lens' DescribePullRequestEvents (Maybe PullRequestEventType)
-dprePullRequestEventType = lens _dprePullRequestEventType (\ s a -> s{_dprePullRequestEventType = a})
-
--- | The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with additional commits or changing the status of a pull request.
-dpreActorARN :: Lens' DescribePullRequestEvents (Maybe Text)
-dpreActorARN = lens _dpreActorARN (\ s a -> s{_dpreActorARN = a})
-
--- | An enumeration token that when provided in a request, returns the next batch of the results.
-dpreNextToken :: Lens' DescribePullRequestEvents (Maybe Text)
-dpreNextToken = lens _dpreNextToken (\ s a -> s{_dpreNextToken = a})
-
--- | A non-negative integer used to limit the number of returned results. The default is 100 events, which is also the maximum number of events that can be returned in a result.
-dpreMaxResults :: Lens' DescribePullRequestEvents (Maybe Int)
-dpreMaxResults = lens _dpreMaxResults (\ s a -> s{_dpreMaxResults = a})
-
--- | The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
-dprePullRequestId :: Lens' DescribePullRequestEvents Text
-dprePullRequestId = lens _dprePullRequestId (\ s a -> s{_dprePullRequestId = a})
-
-instance AWSPager DescribePullRequestEvents where
-        page rq rs
-          | stop (rs ^. dprersNextToken) = Nothing
-          | stop (rs ^. dprersPullRequestEvents) = Nothing
-          | otherwise =
-            Just $ rq & dpreNextToken .~ rs ^. dprersNextToken
-
-instance AWSRequest DescribePullRequestEvents where
-        type Rs DescribePullRequestEvents =
-             DescribePullRequestEventsResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DescribePullRequestEventsResponse' <$>
-                   (x .?> "nextToken") <*> (pure (fromEnum s)) <*>
-                     (x .?> "pullRequestEvents" .!@ mempty))
-
-instance Hashable DescribePullRequestEvents where
-
-instance NFData DescribePullRequestEvents where
-
-instance ToHeaders DescribePullRequestEvents where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.DescribePullRequestEvents" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DescribePullRequestEvents where
-        toJSON DescribePullRequestEvents'{..}
-          = object
-              (catMaybes
-                 [("pullRequestEventType" .=) <$>
-                    _dprePullRequestEventType,
-                  ("actorArn" .=) <$> _dpreActorARN,
-                  ("nextToken" .=) <$> _dpreNextToken,
-                  ("maxResults" .=) <$> _dpreMaxResults,
-                  Just ("pullRequestId" .= _dprePullRequestId)])
-
-instance ToPath DescribePullRequestEvents where
-        toPath = const "/"
-
-instance ToQuery DescribePullRequestEvents where
-        toQuery = const mempty
-
--- | /See:/ 'describePullRequestEventsResponse' smart constructor.
-data DescribePullRequestEventsResponse = DescribePullRequestEventsResponse'
-  { _dprersNextToken         :: !(Maybe Text)
-  , _dprersResponseStatus    :: !Int
-  , _dprersPullRequestEvents :: ![PullRequestEvent]
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DescribePullRequestEventsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dprersNextToken' - An enumeration token that can be used in a request to return the next batch of the results.
---
--- * 'dprersResponseStatus' - -- | The response status code.
---
--- * 'dprersPullRequestEvents' - Information about the pull request events.
-describePullRequestEventsResponse
-    :: Int -- ^ 'dprersResponseStatus'
-    -> DescribePullRequestEventsResponse
-describePullRequestEventsResponse pResponseStatus_ =
-  DescribePullRequestEventsResponse'
-    { _dprersNextToken = Nothing
-    , _dprersResponseStatus = pResponseStatus_
-    , _dprersPullRequestEvents = mempty
-    }
-
-
--- | An enumeration token that can be used in a request to return the next batch of the results.
-dprersNextToken :: Lens' DescribePullRequestEventsResponse (Maybe Text)
-dprersNextToken = lens _dprersNextToken (\ s a -> s{_dprersNextToken = a})
-
--- | -- | The response status code.
-dprersResponseStatus :: Lens' DescribePullRequestEventsResponse Int
-dprersResponseStatus = lens _dprersResponseStatus (\ s a -> s{_dprersResponseStatus = a})
-
--- | Information about the pull request events.
-dprersPullRequestEvents :: Lens' DescribePullRequestEventsResponse [PullRequestEvent]
-dprersPullRequestEvents = lens _dprersPullRequestEvents (\ s a -> s{_dprersPullRequestEvents = a}) . _Coerce
-
-instance NFData DescribePullRequestEventsResponse
-         where
diff --git a/gen/Network/AWS/CodeCommit/GetBlob.hs b/gen/Network/AWS/CodeCommit/GetBlob.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/GetBlob.hs
+++ /dev/null
@@ -1,152 +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.CodeCommit.GetBlob
--- 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)
---
--- Returns the base-64 encoded content of an individual blob within a repository.
---
---
-module Network.AWS.CodeCommit.GetBlob
-    (
-    -- * Creating a Request
-      getBlob
-    , GetBlob
-    -- * Request Lenses
-    , gRepositoryName
-    , gBlobId
-
-    -- * Destructuring the Response
-    , getBlobResponse
-    , GetBlobResponse
-    -- * Response Lenses
-    , gbrsResponseStatus
-    , gbrsContent
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a get blob operation.
---
---
---
--- /See:/ 'getBlob' smart constructor.
-data GetBlob = GetBlob'
-  { _gRepositoryName :: !Text
-  , _gBlobId         :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetBlob' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gRepositoryName' - The name of the repository that contains the blob.
---
--- * 'gBlobId' - The ID of the blob, which is its SHA-1 pointer.
-getBlob
-    :: Text -- ^ 'gRepositoryName'
-    -> Text -- ^ 'gBlobId'
-    -> GetBlob
-getBlob pRepositoryName_ pBlobId_ =
-  GetBlob' {_gRepositoryName = pRepositoryName_, _gBlobId = pBlobId_}
-
-
--- | The name of the repository that contains the blob.
-gRepositoryName :: Lens' GetBlob Text
-gRepositoryName = lens _gRepositoryName (\ s a -> s{_gRepositoryName = a})
-
--- | The ID of the blob, which is its SHA-1 pointer.
-gBlobId :: Lens' GetBlob Text
-gBlobId = lens _gBlobId (\ s a -> s{_gBlobId = a})
-
-instance AWSRequest GetBlob where
-        type Rs GetBlob = GetBlobResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetBlobResponse' <$>
-                   (pure (fromEnum s)) <*> (x .:> "content"))
-
-instance Hashable GetBlob where
-
-instance NFData GetBlob where
-
-instance ToHeaders GetBlob where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.GetBlob" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON GetBlob where
-        toJSON GetBlob'{..}
-          = object
-              (catMaybes
-                 [Just ("repositoryName" .= _gRepositoryName),
-                  Just ("blobId" .= _gBlobId)])
-
-instance ToPath GetBlob where
-        toPath = const "/"
-
-instance ToQuery GetBlob where
-        toQuery = const mempty
-
--- | Represents the output of a get blob operation.
---
---
---
--- /See:/ 'getBlobResponse' smart constructor.
-data GetBlobResponse = GetBlobResponse'
-  { _gbrsResponseStatus :: !Int
-  , _gbrsContent        :: !Base64
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetBlobResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gbrsResponseStatus' - -- | The response status code.
---
--- * 'gbrsContent' - The content of the blob, usually a file.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
-getBlobResponse
-    :: Int -- ^ 'gbrsResponseStatus'
-    -> ByteString -- ^ 'gbrsContent'
-    -> GetBlobResponse
-getBlobResponse pResponseStatus_ pContent_ =
-  GetBlobResponse'
-    {_gbrsResponseStatus = pResponseStatus_, _gbrsContent = _Base64 # pContent_}
-
-
--- | -- | The response status code.
-gbrsResponseStatus :: Lens' GetBlobResponse Int
-gbrsResponseStatus = lens _gbrsResponseStatus (\ s a -> s{_gbrsResponseStatus = a})
-
--- | The content of the blob, usually a file.-- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
-gbrsContent :: Lens' GetBlobResponse ByteString
-gbrsContent = lens _gbrsContent (\ s a -> s{_gbrsContent = a}) . _Base64
-
-instance NFData GetBlobResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetBranch.hs b/gen/Network/AWS/CodeCommit/GetBranch.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/GetBranch.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.CodeCommit.GetBranch
--- 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)
---
--- Returns information about a repository branch, including its name and the last commit ID.
---
---
-module Network.AWS.CodeCommit.GetBranch
-    (
-    -- * Creating a Request
-      getBranch
-    , GetBranch
-    -- * Request Lenses
-    , gbBranchName
-    , gbRepositoryName
-
-    -- * Destructuring the Response
-    , getBranchResponse
-    , GetBranchResponse
-    -- * Response Lenses
-    , grsBranch
-    , grsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a get branch operation.
---
---
---
--- /See:/ 'getBranch' smart constructor.
-data GetBranch = GetBranch'
-  { _gbBranchName     :: !(Maybe Text)
-  , _gbRepositoryName :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetBranch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gbBranchName' - The name of the branch for which you want to retrieve information.
---
--- * 'gbRepositoryName' - The name of the repository that contains the branch for which you want to retrieve information.
-getBranch
-    :: GetBranch
-getBranch = GetBranch' {_gbBranchName = Nothing, _gbRepositoryName = Nothing}
-
-
--- | The name of the branch for which you want to retrieve information.
-gbBranchName :: Lens' GetBranch (Maybe Text)
-gbBranchName = lens _gbBranchName (\ s a -> s{_gbBranchName = a})
-
--- | The name of the repository that contains the branch for which you want to retrieve information.
-gbRepositoryName :: Lens' GetBranch (Maybe Text)
-gbRepositoryName = lens _gbRepositoryName (\ s a -> s{_gbRepositoryName = a})
-
-instance AWSRequest GetBranch where
-        type Rs GetBranch = GetBranchResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetBranchResponse' <$>
-                   (x .?> "branch") <*> (pure (fromEnum s)))
-
-instance Hashable GetBranch where
-
-instance NFData GetBranch where
-
-instance ToHeaders GetBranch where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.GetBranch" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON GetBranch where
-        toJSON GetBranch'{..}
-          = object
-              (catMaybes
-                 [("branchName" .=) <$> _gbBranchName,
-                  ("repositoryName" .=) <$> _gbRepositoryName])
-
-instance ToPath GetBranch where
-        toPath = const "/"
-
-instance ToQuery GetBranch where
-        toQuery = const mempty
-
--- | Represents the output of a get branch operation.
---
---
---
--- /See:/ 'getBranchResponse' smart constructor.
-data GetBranchResponse = GetBranchResponse'
-  { _grsBranch         :: !(Maybe BranchInfo)
-  , _grsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetBranchResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'grsBranch' - The name of the branch.
---
--- * 'grsResponseStatus' - -- | The response status code.
-getBranchResponse
-    :: Int -- ^ 'grsResponseStatus'
-    -> GetBranchResponse
-getBranchResponse pResponseStatus_ =
-  GetBranchResponse'
-    {_grsBranch = Nothing, _grsResponseStatus = pResponseStatus_}
-
-
--- | The name of the branch.
-grsBranch :: Lens' GetBranchResponse (Maybe BranchInfo)
-grsBranch = lens _grsBranch (\ s a -> s{_grsBranch = a})
-
--- | -- | The response status code.
-grsResponseStatus :: Lens' GetBranchResponse Int
-grsResponseStatus = lens _grsResponseStatus (\ s a -> s{_grsResponseStatus = a})
-
-instance NFData GetBranchResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetComment.hs b/gen/Network/AWS/CodeCommit/GetComment.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/GetComment.hs
+++ /dev/null
@@ -1,131 +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.CodeCommit.GetComment
--- 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)
---
--- Returns the content of a comment made on a change, file, or commit in a repository.
---
---
-module Network.AWS.CodeCommit.GetComment
-    (
-    -- * Creating a Request
-      getComment
-    , GetComment
-    -- * Request Lenses
-    , gcCommentId
-
-    -- * Destructuring the Response
-    , getCommentResponse
-    , GetCommentResponse
-    -- * Response Lenses
-    , getrsComment
-    , getrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'getComment' smart constructor.
-newtype GetComment = GetComment'
-  { _gcCommentId :: Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetComment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gcCommentId' - The unique, system-generated ID of the comment. To get this ID, use 'GetCommentsForComparedCommit' or 'GetCommentsForPullRequest' .
-getComment
-    :: Text -- ^ 'gcCommentId'
-    -> GetComment
-getComment pCommentId_ = GetComment' {_gcCommentId = pCommentId_}
-
-
--- | The unique, system-generated ID of the comment. To get this ID, use 'GetCommentsForComparedCommit' or 'GetCommentsForPullRequest' .
-gcCommentId :: Lens' GetComment Text
-gcCommentId = lens _gcCommentId (\ s a -> s{_gcCommentId = a})
-
-instance AWSRequest GetComment where
-        type Rs GetComment = GetCommentResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetCommentResponse' <$>
-                   (x .?> "comment") <*> (pure (fromEnum s)))
-
-instance Hashable GetComment where
-
-instance NFData GetComment where
-
-instance ToHeaders GetComment where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.GetComment" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON GetComment where
-        toJSON GetComment'{..}
-          = object
-              (catMaybes [Just ("commentId" .= _gcCommentId)])
-
-instance ToPath GetComment where
-        toPath = const "/"
-
-instance ToQuery GetComment where
-        toQuery = const mempty
-
--- | /See:/ 'getCommentResponse' smart constructor.
-data GetCommentResponse = GetCommentResponse'
-  { _getrsComment        :: !(Maybe Comment)
-  , _getrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetCommentResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'getrsComment' - The contents of the comment.
---
--- * 'getrsResponseStatus' - -- | The response status code.
-getCommentResponse
-    :: Int -- ^ 'getrsResponseStatus'
-    -> GetCommentResponse
-getCommentResponse pResponseStatus_ =
-  GetCommentResponse'
-    {_getrsComment = Nothing, _getrsResponseStatus = pResponseStatus_}
-
-
--- | The contents of the comment.
-getrsComment :: Lens' GetCommentResponse (Maybe Comment)
-getrsComment = lens _getrsComment (\ s a -> s{_getrsComment = a})
-
--- | -- | The response status code.
-getrsResponseStatus :: Lens' GetCommentResponse Int
-getrsResponseStatus = lens _getrsResponseStatus (\ s a -> s{_getrsResponseStatus = a})
-
-instance NFData GetCommentResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetCommentsForComparedCommit.hs b/gen/Network/AWS/CodeCommit/GetCommentsForComparedCommit.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/GetCommentsForComparedCommit.hs
+++ /dev/null
@@ -1,204 +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.CodeCommit.GetCommentsForComparedCommit
--- 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)
---
--- Returns information about comments made on the comparison between two commits.
---
---
---
--- This operation returns paginated results.
-module Network.AWS.CodeCommit.GetCommentsForComparedCommit
-    (
-    -- * Creating a Request
-      getCommentsForComparedCommit
-    , GetCommentsForComparedCommit
-    -- * Request Lenses
-    , gcfccNextToken
-    , gcfccBeforeCommitId
-    , gcfccMaxResults
-    , gcfccRepositoryName
-    , gcfccAfterCommitId
-
-    -- * Destructuring the Response
-    , getCommentsForComparedCommitResponse
-    , GetCommentsForComparedCommitResponse
-    -- * Response Lenses
-    , gcfccrsCommentsForComparedCommitData
-    , gcfccrsNextToken
-    , gcfccrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Pager
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'getCommentsForComparedCommit' smart constructor.
-data GetCommentsForComparedCommit = GetCommentsForComparedCommit'
-  { _gcfccNextToken      :: !(Maybe Text)
-  , _gcfccBeforeCommitId :: !(Maybe Text)
-  , _gcfccMaxResults     :: !(Maybe Int)
-  , _gcfccRepositoryName :: !Text
-  , _gcfccAfterCommitId  :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetCommentsForComparedCommit' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gcfccNextToken' - An enumeration token that when provided in a request, returns the next batch of the results.
---
--- * 'gcfccBeforeCommitId' - To establish the directionality of the comparison, the full commit ID of the 'before' commit.
---
--- * 'gcfccMaxResults' - A non-negative integer used to limit the number of returned results. The default is 100 comments, and is configurable up to 500.
---
--- * 'gcfccRepositoryName' - The name of the repository where you want to compare commits.
---
--- * 'gcfccAfterCommitId' - To establish the directionality of the comparison, the full commit ID of the 'after' commit.
-getCommentsForComparedCommit
-    :: Text -- ^ 'gcfccRepositoryName'
-    -> Text -- ^ 'gcfccAfterCommitId'
-    -> GetCommentsForComparedCommit
-getCommentsForComparedCommit pRepositoryName_ pAfterCommitId_ =
-  GetCommentsForComparedCommit'
-    { _gcfccNextToken = Nothing
-    , _gcfccBeforeCommitId = Nothing
-    , _gcfccMaxResults = Nothing
-    , _gcfccRepositoryName = pRepositoryName_
-    , _gcfccAfterCommitId = pAfterCommitId_
-    }
-
-
--- | An enumeration token that when provided in a request, returns the next batch of the results.
-gcfccNextToken :: Lens' GetCommentsForComparedCommit (Maybe Text)
-gcfccNextToken = lens _gcfccNextToken (\ s a -> s{_gcfccNextToken = a})
-
--- | To establish the directionality of the comparison, the full commit ID of the 'before' commit.
-gcfccBeforeCommitId :: Lens' GetCommentsForComparedCommit (Maybe Text)
-gcfccBeforeCommitId = lens _gcfccBeforeCommitId (\ s a -> s{_gcfccBeforeCommitId = a})
-
--- | A non-negative integer used to limit the number of returned results. The default is 100 comments, and is configurable up to 500.
-gcfccMaxResults :: Lens' GetCommentsForComparedCommit (Maybe Int)
-gcfccMaxResults = lens _gcfccMaxResults (\ s a -> s{_gcfccMaxResults = a})
-
--- | The name of the repository where you want to compare commits.
-gcfccRepositoryName :: Lens' GetCommentsForComparedCommit Text
-gcfccRepositoryName = lens _gcfccRepositoryName (\ s a -> s{_gcfccRepositoryName = a})
-
--- | To establish the directionality of the comparison, the full commit ID of the 'after' commit.
-gcfccAfterCommitId :: Lens' GetCommentsForComparedCommit Text
-gcfccAfterCommitId = lens _gcfccAfterCommitId (\ s a -> s{_gcfccAfterCommitId = a})
-
-instance AWSPager GetCommentsForComparedCommit where
-        page rq rs
-          | stop (rs ^. gcfccrsNextToken) = Nothing
-          | stop (rs ^. gcfccrsCommentsForComparedCommitData) =
-            Nothing
-          | otherwise =
-            Just $ rq & gcfccNextToken .~ rs ^. gcfccrsNextToken
-
-instance AWSRequest GetCommentsForComparedCommit
-         where
-        type Rs GetCommentsForComparedCommit =
-             GetCommentsForComparedCommitResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetCommentsForComparedCommitResponse' <$>
-                   (x .?> "commentsForComparedCommitData" .!@ mempty)
-                     <*> (x .?> "nextToken")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable GetCommentsForComparedCommit where
-
-instance NFData GetCommentsForComparedCommit where
-
-instance ToHeaders GetCommentsForComparedCommit where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.GetCommentsForComparedCommit"
-                       :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON GetCommentsForComparedCommit where
-        toJSON GetCommentsForComparedCommit'{..}
-          = object
-              (catMaybes
-                 [("nextToken" .=) <$> _gcfccNextToken,
-                  ("beforeCommitId" .=) <$> _gcfccBeforeCommitId,
-                  ("maxResults" .=) <$> _gcfccMaxResults,
-                  Just ("repositoryName" .= _gcfccRepositoryName),
-                  Just ("afterCommitId" .= _gcfccAfterCommitId)])
-
-instance ToPath GetCommentsForComparedCommit where
-        toPath = const "/"
-
-instance ToQuery GetCommentsForComparedCommit where
-        toQuery = const mempty
-
--- | /See:/ 'getCommentsForComparedCommitResponse' smart constructor.
-data GetCommentsForComparedCommitResponse = GetCommentsForComparedCommitResponse'
-  { _gcfccrsCommentsForComparedCommitData :: !(Maybe [CommentsForComparedCommit])
-  , _gcfccrsNextToken :: !(Maybe Text)
-  , _gcfccrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetCommentsForComparedCommitResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gcfccrsCommentsForComparedCommitData' - A list of comment objects on the compared commit.
---
--- * 'gcfccrsNextToken' - An enumeration token that can be used in a request to return the next batch of the results.
---
--- * 'gcfccrsResponseStatus' - -- | The response status code.
-getCommentsForComparedCommitResponse
-    :: Int -- ^ 'gcfccrsResponseStatus'
-    -> GetCommentsForComparedCommitResponse
-getCommentsForComparedCommitResponse pResponseStatus_ =
-  GetCommentsForComparedCommitResponse'
-    { _gcfccrsCommentsForComparedCommitData = Nothing
-    , _gcfccrsNextToken = Nothing
-    , _gcfccrsResponseStatus = pResponseStatus_
-    }
-
-
--- | A list of comment objects on the compared commit.
-gcfccrsCommentsForComparedCommitData :: Lens' GetCommentsForComparedCommitResponse [CommentsForComparedCommit]
-gcfccrsCommentsForComparedCommitData = lens _gcfccrsCommentsForComparedCommitData (\ s a -> s{_gcfccrsCommentsForComparedCommitData = a}) . _Default . _Coerce
-
--- | An enumeration token that can be used in a request to return the next batch of the results.
-gcfccrsNextToken :: Lens' GetCommentsForComparedCommitResponse (Maybe Text)
-gcfccrsNextToken = lens _gcfccrsNextToken (\ s a -> s{_gcfccrsNextToken = a})
-
--- | -- | The response status code.
-gcfccrsResponseStatus :: Lens' GetCommentsForComparedCommitResponse Int
-gcfccrsResponseStatus = lens _gcfccrsResponseStatus (\ s a -> s{_gcfccrsResponseStatus = a})
-
-instance NFData GetCommentsForComparedCommitResponse
-         where
diff --git a/gen/Network/AWS/CodeCommit/GetCommentsForPullRequest.hs b/gen/Network/AWS/CodeCommit/GetCommentsForPullRequest.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/GetCommentsForPullRequest.hs
+++ /dev/null
@@ -1,212 +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.CodeCommit.GetCommentsForPullRequest
--- 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)
---
--- Returns comments made on a pull request.
---
---
---
--- This operation returns paginated results.
-module Network.AWS.CodeCommit.GetCommentsForPullRequest
-    (
-    -- * Creating a Request
-      getCommentsForPullRequest
-    , GetCommentsForPullRequest
-    -- * Request Lenses
-    , gcfprAfterCommitId
-    , gcfprNextToken
-    , gcfprBeforeCommitId
-    , gcfprRepositoryName
-    , gcfprMaxResults
-    , gcfprPullRequestId
-
-    -- * Destructuring the Response
-    , getCommentsForPullRequestResponse
-    , GetCommentsForPullRequestResponse
-    -- * Response Lenses
-    , gcfprrsCommentsForPullRequestData
-    , gcfprrsNextToken
-    , gcfprrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Pager
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'getCommentsForPullRequest' smart constructor.
-data GetCommentsForPullRequest = GetCommentsForPullRequest'
-  { _gcfprAfterCommitId  :: !(Maybe Text)
-  , _gcfprNextToken      :: !(Maybe Text)
-  , _gcfprBeforeCommitId :: !(Maybe Text)
-  , _gcfprRepositoryName :: !(Maybe Text)
-  , _gcfprMaxResults     :: !(Maybe Int)
-  , _gcfprPullRequestId  :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetCommentsForPullRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gcfprAfterCommitId' - The full commit ID of the commit in the source branch that was the tip of the branch at the time the comment was made.
---
--- * 'gcfprNextToken' - An enumeration token that when provided in a request, returns the next batch of the results.
---
--- * 'gcfprBeforeCommitId' - The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created.
---
--- * 'gcfprRepositoryName' - The name of the repository that contains the pull request.
---
--- * 'gcfprMaxResults' - A non-negative integer used to limit the number of returned results. The default is 100 comments. You can return up to 500 comments with a single request.
---
--- * 'gcfprPullRequestId' - The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
-getCommentsForPullRequest
-    :: Text -- ^ 'gcfprPullRequestId'
-    -> GetCommentsForPullRequest
-getCommentsForPullRequest pPullRequestId_ =
-  GetCommentsForPullRequest'
-    { _gcfprAfterCommitId = Nothing
-    , _gcfprNextToken = Nothing
-    , _gcfprBeforeCommitId = Nothing
-    , _gcfprRepositoryName = Nothing
-    , _gcfprMaxResults = Nothing
-    , _gcfprPullRequestId = pPullRequestId_
-    }
-
-
--- | The full commit ID of the commit in the source branch that was the tip of the branch at the time the comment was made.
-gcfprAfterCommitId :: Lens' GetCommentsForPullRequest (Maybe Text)
-gcfprAfterCommitId = lens _gcfprAfterCommitId (\ s a -> s{_gcfprAfterCommitId = a})
-
--- | An enumeration token that when provided in a request, returns the next batch of the results.
-gcfprNextToken :: Lens' GetCommentsForPullRequest (Maybe Text)
-gcfprNextToken = lens _gcfprNextToken (\ s a -> s{_gcfprNextToken = a})
-
--- | The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created.
-gcfprBeforeCommitId :: Lens' GetCommentsForPullRequest (Maybe Text)
-gcfprBeforeCommitId = lens _gcfprBeforeCommitId (\ s a -> s{_gcfprBeforeCommitId = a})
-
--- | The name of the repository that contains the pull request.
-gcfprRepositoryName :: Lens' GetCommentsForPullRequest (Maybe Text)
-gcfprRepositoryName = lens _gcfprRepositoryName (\ s a -> s{_gcfprRepositoryName = a})
-
--- | A non-negative integer used to limit the number of returned results. The default is 100 comments. You can return up to 500 comments with a single request.
-gcfprMaxResults :: Lens' GetCommentsForPullRequest (Maybe Int)
-gcfprMaxResults = lens _gcfprMaxResults (\ s a -> s{_gcfprMaxResults = a})
-
--- | The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
-gcfprPullRequestId :: Lens' GetCommentsForPullRequest Text
-gcfprPullRequestId = lens _gcfprPullRequestId (\ s a -> s{_gcfprPullRequestId = a})
-
-instance AWSPager GetCommentsForPullRequest where
-        page rq rs
-          | stop (rs ^. gcfprrsNextToken) = Nothing
-          | stop (rs ^. gcfprrsCommentsForPullRequestData) =
-            Nothing
-          | otherwise =
-            Just $ rq & gcfprNextToken .~ rs ^. gcfprrsNextToken
-
-instance AWSRequest GetCommentsForPullRequest where
-        type Rs GetCommentsForPullRequest =
-             GetCommentsForPullRequestResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetCommentsForPullRequestResponse' <$>
-                   (x .?> "commentsForPullRequestData" .!@ mempty) <*>
-                     (x .?> "nextToken")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable GetCommentsForPullRequest where
-
-instance NFData GetCommentsForPullRequest where
-
-instance ToHeaders GetCommentsForPullRequest where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.GetCommentsForPullRequest" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON GetCommentsForPullRequest where
-        toJSON GetCommentsForPullRequest'{..}
-          = object
-              (catMaybes
-                 [("afterCommitId" .=) <$> _gcfprAfterCommitId,
-                  ("nextToken" .=) <$> _gcfprNextToken,
-                  ("beforeCommitId" .=) <$> _gcfprBeforeCommitId,
-                  ("repositoryName" .=) <$> _gcfprRepositoryName,
-                  ("maxResults" .=) <$> _gcfprMaxResults,
-                  Just ("pullRequestId" .= _gcfprPullRequestId)])
-
-instance ToPath GetCommentsForPullRequest where
-        toPath = const "/"
-
-instance ToQuery GetCommentsForPullRequest where
-        toQuery = const mempty
-
--- | /See:/ 'getCommentsForPullRequestResponse' smart constructor.
-data GetCommentsForPullRequestResponse = GetCommentsForPullRequestResponse'
-  { _gcfprrsCommentsForPullRequestData :: !(Maybe [CommentsForPullRequest])
-  , _gcfprrsNextToken                  :: !(Maybe Text)
-  , _gcfprrsResponseStatus             :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetCommentsForPullRequestResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gcfprrsCommentsForPullRequestData' - An array of comment objects on the pull request.
---
--- * 'gcfprrsNextToken' - An enumeration token that can be used in a request to return the next batch of the results.
---
--- * 'gcfprrsResponseStatus' - -- | The response status code.
-getCommentsForPullRequestResponse
-    :: Int -- ^ 'gcfprrsResponseStatus'
-    -> GetCommentsForPullRequestResponse
-getCommentsForPullRequestResponse pResponseStatus_ =
-  GetCommentsForPullRequestResponse'
-    { _gcfprrsCommentsForPullRequestData = Nothing
-    , _gcfprrsNextToken = Nothing
-    , _gcfprrsResponseStatus = pResponseStatus_
-    }
-
-
--- | An array of comment objects on the pull request.
-gcfprrsCommentsForPullRequestData :: Lens' GetCommentsForPullRequestResponse [CommentsForPullRequest]
-gcfprrsCommentsForPullRequestData = lens _gcfprrsCommentsForPullRequestData (\ s a -> s{_gcfprrsCommentsForPullRequestData = a}) . _Default . _Coerce
-
--- | An enumeration token that can be used in a request to return the next batch of the results.
-gcfprrsNextToken :: Lens' GetCommentsForPullRequestResponse (Maybe Text)
-gcfprrsNextToken = lens _gcfprrsNextToken (\ s a -> s{_gcfprrsNextToken = a})
-
--- | -- | The response status code.
-gcfprrsResponseStatus :: Lens' GetCommentsForPullRequestResponse Int
-gcfprrsResponseStatus = lens _gcfprrsResponseStatus (\ s a -> s{_gcfprrsResponseStatus = a})
-
-instance NFData GetCommentsForPullRequestResponse
-         where
diff --git a/gen/Network/AWS/CodeCommit/GetCommit.hs b/gen/Network/AWS/CodeCommit/GetCommit.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/GetCommit.hs
+++ /dev/null
@@ -1,152 +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.CodeCommit.GetCommit
--- 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)
---
--- Returns information about a commit, including commit message and committer information.
---
---
-module Network.AWS.CodeCommit.GetCommit
-    (
-    -- * Creating a Request
-      getCommit
-    , GetCommit
-    -- * Request Lenses
-    , gcRepositoryName
-    , gcCommitId
-
-    -- * Destructuring the Response
-    , getCommitResponse
-    , GetCommitResponse
-    -- * Response Lenses
-    , gcrsResponseStatus
-    , gcrsCommit
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a get commit operation.
---
---
---
--- /See:/ 'getCommit' smart constructor.
-data GetCommit = GetCommit'
-  { _gcRepositoryName :: !Text
-  , _gcCommitId       :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetCommit' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gcRepositoryName' - The name of the repository to which the commit was made.
---
--- * 'gcCommitId' - The commit ID. Commit IDs are the full SHA of the commit.
-getCommit
-    :: Text -- ^ 'gcRepositoryName'
-    -> Text -- ^ 'gcCommitId'
-    -> GetCommit
-getCommit pRepositoryName_ pCommitId_ =
-  GetCommit' {_gcRepositoryName = pRepositoryName_, _gcCommitId = pCommitId_}
-
-
--- | The name of the repository to which the commit was made.
-gcRepositoryName :: Lens' GetCommit Text
-gcRepositoryName = lens _gcRepositoryName (\ s a -> s{_gcRepositoryName = a})
-
--- | The commit ID. Commit IDs are the full SHA of the commit.
-gcCommitId :: Lens' GetCommit Text
-gcCommitId = lens _gcCommitId (\ s a -> s{_gcCommitId = a})
-
-instance AWSRequest GetCommit where
-        type Rs GetCommit = GetCommitResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetCommitResponse' <$>
-                   (pure (fromEnum s)) <*> (x .:> "commit"))
-
-instance Hashable GetCommit where
-
-instance NFData GetCommit where
-
-instance ToHeaders GetCommit where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.GetCommit" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON GetCommit where
-        toJSON GetCommit'{..}
-          = object
-              (catMaybes
-                 [Just ("repositoryName" .= _gcRepositoryName),
-                  Just ("commitId" .= _gcCommitId)])
-
-instance ToPath GetCommit where
-        toPath = const "/"
-
-instance ToQuery GetCommit where
-        toQuery = const mempty
-
--- | Represents the output of a get commit operation.
---
---
---
--- /See:/ 'getCommitResponse' smart constructor.
-data GetCommitResponse = GetCommitResponse'
-  { _gcrsResponseStatus :: !Int
-  , _gcrsCommit         :: !Commit
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetCommitResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gcrsResponseStatus' - -- | The response status code.
---
--- * 'gcrsCommit' - A commit data type object that contains information about the specified commit.
-getCommitResponse
-    :: Int -- ^ 'gcrsResponseStatus'
-    -> Commit -- ^ 'gcrsCommit'
-    -> GetCommitResponse
-getCommitResponse pResponseStatus_ pCommit_ =
-  GetCommitResponse'
-    {_gcrsResponseStatus = pResponseStatus_, _gcrsCommit = pCommit_}
-
-
--- | -- | The response status code.
-gcrsResponseStatus :: Lens' GetCommitResponse Int
-gcrsResponseStatus = lens _gcrsResponseStatus (\ s a -> s{_gcrsResponseStatus = a})
-
--- | A commit data type object that contains information about the specified commit.
-gcrsCommit :: Lens' GetCommitResponse Commit
-gcrsCommit = lens _gcrsCommit (\ s a -> s{_gcrsCommit = a})
-
-instance NFData GetCommitResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetDifferences.hs b/gen/Network/AWS/CodeCommit/GetDifferences.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/GetDifferences.hs
+++ /dev/null
@@ -1,221 +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.CodeCommit.GetDifferences
--- 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)
---
--- Returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID or other fully qualified reference). Results can be limited to a specified path.
---
---
---
--- This operation returns paginated results.
-module Network.AWS.CodeCommit.GetDifferences
-    (
-    -- * Creating a Request
-      getDifferences
-    , GetDifferences
-    -- * Request Lenses
-    , gdAfterPath
-    , gdNextToken
-    , gdBeforeCommitSpecifier
-    , gdBeforePath
-    , gdMaxResults
-    , gdRepositoryName
-    , gdAfterCommitSpecifier
-
-    -- * Destructuring the Response
-    , getDifferencesResponse
-    , GetDifferencesResponse
-    -- * Response Lenses
-    , gdrsNextToken
-    , gdrsDifferences
-    , gdrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Pager
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'getDifferences' smart constructor.
-data GetDifferences = GetDifferences'
-  { _gdAfterPath             :: !(Maybe Text)
-  , _gdNextToken             :: !(Maybe Text)
-  , _gdBeforeCommitSpecifier :: !(Maybe Text)
-  , _gdBeforePath            :: !(Maybe Text)
-  , _gdMaxResults            :: !(Maybe Int)
-  , _gdRepositoryName        :: !Text
-  , _gdAfterCommitSpecifier  :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetDifferences' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gdAfterPath' - The file path in which to check differences. Limits the results to this path. Can also be used to specify the changed name of a directory or folder, if it has changed. If not specified, differences will be shown for all paths.
---
--- * 'gdNextToken' - An enumeration token that when provided in a request, returns the next batch of the results.
---
--- * 'gdBeforeCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, the full commit ID. Optional. If not specified, all changes prior to the @afterCommitSpecifier@ value will be shown. If you do not use @beforeCommitSpecifier@ in your request, consider limiting the results with @maxResults@ .
---
--- * 'gdBeforePath' - The file path in which to check for differences. Limits the results to this path. Can also be used to specify the previous name of a directory or folder. If @beforePath@ and @afterPath@ are not specified, differences will be shown for all paths.
---
--- * 'gdMaxResults' - A non-negative integer used to limit the number of returned results.
---
--- * 'gdRepositoryName' - The name of the repository where you want to get differences.
---
--- * 'gdAfterCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to identify a commit.
-getDifferences
-    :: Text -- ^ 'gdRepositoryName'
-    -> Text -- ^ 'gdAfterCommitSpecifier'
-    -> GetDifferences
-getDifferences pRepositoryName_ pAfterCommitSpecifier_ =
-  GetDifferences'
-    { _gdAfterPath = Nothing
-    , _gdNextToken = Nothing
-    , _gdBeforeCommitSpecifier = Nothing
-    , _gdBeforePath = Nothing
-    , _gdMaxResults = Nothing
-    , _gdRepositoryName = pRepositoryName_
-    , _gdAfterCommitSpecifier = pAfterCommitSpecifier_
-    }
-
-
--- | The file path in which to check differences. Limits the results to this path. Can also be used to specify the changed name of a directory or folder, if it has changed. If not specified, differences will be shown for all paths.
-gdAfterPath :: Lens' GetDifferences (Maybe Text)
-gdAfterPath = lens _gdAfterPath (\ s a -> s{_gdAfterPath = a})
-
--- | An enumeration token that when provided in a request, returns the next batch of the results.
-gdNextToken :: Lens' GetDifferences (Maybe Text)
-gdNextToken = lens _gdNextToken (\ s a -> s{_gdNextToken = a})
-
--- | The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, the full commit ID. Optional. If not specified, all changes prior to the @afterCommitSpecifier@ value will be shown. If you do not use @beforeCommitSpecifier@ in your request, consider limiting the results with @maxResults@ .
-gdBeforeCommitSpecifier :: Lens' GetDifferences (Maybe Text)
-gdBeforeCommitSpecifier = lens _gdBeforeCommitSpecifier (\ s a -> s{_gdBeforeCommitSpecifier = a})
-
--- | The file path in which to check for differences. Limits the results to this path. Can also be used to specify the previous name of a directory or folder. If @beforePath@ and @afterPath@ are not specified, differences will be shown for all paths.
-gdBeforePath :: Lens' GetDifferences (Maybe Text)
-gdBeforePath = lens _gdBeforePath (\ s a -> s{_gdBeforePath = a})
-
--- | A non-negative integer used to limit the number of returned results.
-gdMaxResults :: Lens' GetDifferences (Maybe Int)
-gdMaxResults = lens _gdMaxResults (\ s a -> s{_gdMaxResults = a})
-
--- | The name of the repository where you want to get differences.
-gdRepositoryName :: Lens' GetDifferences Text
-gdRepositoryName = lens _gdRepositoryName (\ s a -> s{_gdRepositoryName = a})
-
--- | The branch, tag, HEAD, or other fully qualified reference used to identify a commit.
-gdAfterCommitSpecifier :: Lens' GetDifferences Text
-gdAfterCommitSpecifier = lens _gdAfterCommitSpecifier (\ s a -> s{_gdAfterCommitSpecifier = a})
-
-instance AWSPager GetDifferences where
-        page rq rs
-          | stop (rs ^. gdrsNextToken) = Nothing
-          | stop (rs ^. gdrsDifferences) = Nothing
-          | otherwise =
-            Just $ rq & gdNextToken .~ rs ^. gdrsNextToken
-
-instance AWSRequest GetDifferences where
-        type Rs GetDifferences = GetDifferencesResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetDifferencesResponse' <$>
-                   (x .?> "NextToken") <*>
-                     (x .?> "differences" .!@ mempty)
-                     <*> (pure (fromEnum s)))
-
-instance Hashable GetDifferences where
-
-instance NFData GetDifferences where
-
-instance ToHeaders GetDifferences where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.GetDifferences" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON GetDifferences where
-        toJSON GetDifferences'{..}
-          = object
-              (catMaybes
-                 [("afterPath" .=) <$> _gdAfterPath,
-                  ("NextToken" .=) <$> _gdNextToken,
-                  ("beforeCommitSpecifier" .=) <$>
-                    _gdBeforeCommitSpecifier,
-                  ("beforePath" .=) <$> _gdBeforePath,
-                  ("MaxResults" .=) <$> _gdMaxResults,
-                  Just ("repositoryName" .= _gdRepositoryName),
-                  Just
-                    ("afterCommitSpecifier" .= _gdAfterCommitSpecifier)])
-
-instance ToPath GetDifferences where
-        toPath = const "/"
-
-instance ToQuery GetDifferences where
-        toQuery = const mempty
-
--- | /See:/ 'getDifferencesResponse' smart constructor.
-data GetDifferencesResponse = GetDifferencesResponse'
-  { _gdrsNextToken      :: !(Maybe Text)
-  , _gdrsDifferences    :: !(Maybe [Difference])
-  , _gdrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetDifferencesResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gdrsNextToken' - An enumeration token that can be used in a request to return the next batch of the results.
---
--- * 'gdrsDifferences' - A differences data type object that contains information about the differences, including whether the difference is added, modified, or deleted (A, D, M).
---
--- * 'gdrsResponseStatus' - -- | The response status code.
-getDifferencesResponse
-    :: Int -- ^ 'gdrsResponseStatus'
-    -> GetDifferencesResponse
-getDifferencesResponse pResponseStatus_ =
-  GetDifferencesResponse'
-    { _gdrsNextToken = Nothing
-    , _gdrsDifferences = Nothing
-    , _gdrsResponseStatus = pResponseStatus_
-    }
-
-
--- | An enumeration token that can be used in a request to return the next batch of the results.
-gdrsNextToken :: Lens' GetDifferencesResponse (Maybe Text)
-gdrsNextToken = lens _gdrsNextToken (\ s a -> s{_gdrsNextToken = a})
-
--- | A differences data type object that contains information about the differences, including whether the difference is added, modified, or deleted (A, D, M).
-gdrsDifferences :: Lens' GetDifferencesResponse [Difference]
-gdrsDifferences = lens _gdrsDifferences (\ s a -> s{_gdrsDifferences = a}) . _Default . _Coerce
-
--- | -- | The response status code.
-gdrsResponseStatus :: Lens' GetDifferencesResponse Int
-gdrsResponseStatus = lens _gdrsResponseStatus (\ s a -> s{_gdrsResponseStatus = a})
-
-instance NFData GetDifferencesResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetMergeConflicts.hs b/gen/Network/AWS/CodeCommit/GetMergeConflicts.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/GetMergeConflicts.hs
+++ /dev/null
@@ -1,198 +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.CodeCommit.GetMergeConflicts
--- 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)
---
--- Returns information about merge conflicts between the before and after commit IDs for a pull request in a repository.
---
---
-module Network.AWS.CodeCommit.GetMergeConflicts
-    (
-    -- * Creating a Request
-      getMergeConflicts
-    , GetMergeConflicts
-    -- * Request Lenses
-    , gmcRepositoryName
-    , gmcDestinationCommitSpecifier
-    , gmcSourceCommitSpecifier
-    , gmcMergeOption
-
-    -- * Destructuring the Response
-    , getMergeConflictsResponse
-    , GetMergeConflictsResponse
-    -- * Response Lenses
-    , gmcrsResponseStatus
-    , gmcrsMergeable
-    , gmcrsDestinationCommitId
-    , gmcrsSourceCommitId
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'getMergeConflicts' smart constructor.
-data GetMergeConflicts = GetMergeConflicts'
-  { _gmcRepositoryName             :: !Text
-  , _gmcDestinationCommitSpecifier :: !Text
-  , _gmcSourceCommitSpecifier      :: !Text
-  , _gmcMergeOption                :: !MergeOptionTypeEnum
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetMergeConflicts' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gmcRepositoryName' - The name of the repository where the pull request was created.
---
--- * 'gmcDestinationCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, a branch name or a full commit ID.
---
--- * 'gmcSourceCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, a branch name or a full commit ID.
---
--- * 'gmcMergeOption' - The merge option or strategy you want to use to merge the code. The only valid value is FAST_FORWARD_MERGE.
-getMergeConflicts
-    :: Text -- ^ 'gmcRepositoryName'
-    -> Text -- ^ 'gmcDestinationCommitSpecifier'
-    -> Text -- ^ 'gmcSourceCommitSpecifier'
-    -> MergeOptionTypeEnum -- ^ 'gmcMergeOption'
-    -> GetMergeConflicts
-getMergeConflicts pRepositoryName_ pDestinationCommitSpecifier_ pSourceCommitSpecifier_ pMergeOption_ =
-  GetMergeConflicts'
-    { _gmcRepositoryName = pRepositoryName_
-    , _gmcDestinationCommitSpecifier = pDestinationCommitSpecifier_
-    , _gmcSourceCommitSpecifier = pSourceCommitSpecifier_
-    , _gmcMergeOption = pMergeOption_
-    }
-
-
--- | The name of the repository where the pull request was created.
-gmcRepositoryName :: Lens' GetMergeConflicts Text
-gmcRepositoryName = lens _gmcRepositoryName (\ s a -> s{_gmcRepositoryName = a})
-
--- | The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, a branch name or a full commit ID.
-gmcDestinationCommitSpecifier :: Lens' GetMergeConflicts Text
-gmcDestinationCommitSpecifier = lens _gmcDestinationCommitSpecifier (\ s a -> s{_gmcDestinationCommitSpecifier = a})
-
--- | The branch, tag, HEAD, or other fully qualified reference used to identify a commit. For example, a branch name or a full commit ID.
-gmcSourceCommitSpecifier :: Lens' GetMergeConflicts Text
-gmcSourceCommitSpecifier = lens _gmcSourceCommitSpecifier (\ s a -> s{_gmcSourceCommitSpecifier = a})
-
--- | The merge option or strategy you want to use to merge the code. The only valid value is FAST_FORWARD_MERGE.
-gmcMergeOption :: Lens' GetMergeConflicts MergeOptionTypeEnum
-gmcMergeOption = lens _gmcMergeOption (\ s a -> s{_gmcMergeOption = a})
-
-instance AWSRequest GetMergeConflicts where
-        type Rs GetMergeConflicts = GetMergeConflictsResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetMergeConflictsResponse' <$>
-                   (pure (fromEnum s)) <*> (x .:> "mergeable") <*>
-                     (x .:> "destinationCommitId")
-                     <*> (x .:> "sourceCommitId"))
-
-instance Hashable GetMergeConflicts where
-
-instance NFData GetMergeConflicts where
-
-instance ToHeaders GetMergeConflicts where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.GetMergeConflicts" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON GetMergeConflicts where
-        toJSON GetMergeConflicts'{..}
-          = object
-              (catMaybes
-                 [Just ("repositoryName" .= _gmcRepositoryName),
-                  Just
-                    ("destinationCommitSpecifier" .=
-                       _gmcDestinationCommitSpecifier),
-                  Just
-                    ("sourceCommitSpecifier" .=
-                       _gmcSourceCommitSpecifier),
-                  Just ("mergeOption" .= _gmcMergeOption)])
-
-instance ToPath GetMergeConflicts where
-        toPath = const "/"
-
-instance ToQuery GetMergeConflicts where
-        toQuery = const mempty
-
--- | /See:/ 'getMergeConflictsResponse' smart constructor.
-data GetMergeConflictsResponse = GetMergeConflictsResponse'
-  { _gmcrsResponseStatus      :: !Int
-  , _gmcrsMergeable           :: !Bool
-  , _gmcrsDestinationCommitId :: !Text
-  , _gmcrsSourceCommitId      :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetMergeConflictsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gmcrsResponseStatus' - -- | The response status code.
---
--- * 'gmcrsMergeable' - A Boolean value that indicates whether the code is mergable by the specified merge option.
---
--- * 'gmcrsDestinationCommitId' - The commit ID of the destination commit specifier that was used in the merge evaluation.
---
--- * 'gmcrsSourceCommitId' - The commit ID of the source commit specifier that was used in the merge evaluation.
-getMergeConflictsResponse
-    :: Int -- ^ 'gmcrsResponseStatus'
-    -> Bool -- ^ 'gmcrsMergeable'
-    -> Text -- ^ 'gmcrsDestinationCommitId'
-    -> Text -- ^ 'gmcrsSourceCommitId'
-    -> GetMergeConflictsResponse
-getMergeConflictsResponse pResponseStatus_ pMergeable_ pDestinationCommitId_ pSourceCommitId_ =
-  GetMergeConflictsResponse'
-    { _gmcrsResponseStatus = pResponseStatus_
-    , _gmcrsMergeable = pMergeable_
-    , _gmcrsDestinationCommitId = pDestinationCommitId_
-    , _gmcrsSourceCommitId = pSourceCommitId_
-    }
-
-
--- | -- | The response status code.
-gmcrsResponseStatus :: Lens' GetMergeConflictsResponse Int
-gmcrsResponseStatus = lens _gmcrsResponseStatus (\ s a -> s{_gmcrsResponseStatus = a})
-
--- | A Boolean value that indicates whether the code is mergable by the specified merge option.
-gmcrsMergeable :: Lens' GetMergeConflictsResponse Bool
-gmcrsMergeable = lens _gmcrsMergeable (\ s a -> s{_gmcrsMergeable = a})
-
--- | The commit ID of the destination commit specifier that was used in the merge evaluation.
-gmcrsDestinationCommitId :: Lens' GetMergeConflictsResponse Text
-gmcrsDestinationCommitId = lens _gmcrsDestinationCommitId (\ s a -> s{_gmcrsDestinationCommitId = a})
-
--- | The commit ID of the source commit specifier that was used in the merge evaluation.
-gmcrsSourceCommitId :: Lens' GetMergeConflictsResponse Text
-gmcrsSourceCommitId = lens _gmcrsSourceCommitId (\ s a -> s{_gmcrsSourceCommitId = a})
-
-instance NFData GetMergeConflictsResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetPullRequest.hs b/gen/Network/AWS/CodeCommit/GetPullRequest.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/GetPullRequest.hs
+++ /dev/null
@@ -1,134 +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.CodeCommit.GetPullRequest
--- 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 information about a pull request in a specified repository.
---
---
-module Network.AWS.CodeCommit.GetPullRequest
-    (
-    -- * Creating a Request
-      getPullRequest
-    , GetPullRequest
-    -- * Request Lenses
-    , gprPullRequestId
-
-    -- * Destructuring the Response
-    , getPullRequestResponse
-    , GetPullRequestResponse
-    -- * Response Lenses
-    , gprrsResponseStatus
-    , gprrsPullRequest
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'getPullRequest' smart constructor.
-newtype GetPullRequest = GetPullRequest'
-  { _gprPullRequestId :: Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetPullRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gprPullRequestId' - The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
-getPullRequest
-    :: Text -- ^ 'gprPullRequestId'
-    -> GetPullRequest
-getPullRequest pPullRequestId_ =
-  GetPullRequest' {_gprPullRequestId = pPullRequestId_}
-
-
--- | The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
-gprPullRequestId :: Lens' GetPullRequest Text
-gprPullRequestId = lens _gprPullRequestId (\ s a -> s{_gprPullRequestId = a})
-
-instance AWSRequest GetPullRequest where
-        type Rs GetPullRequest = GetPullRequestResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetPullRequestResponse' <$>
-                   (pure (fromEnum s)) <*> (x .:> "pullRequest"))
-
-instance Hashable GetPullRequest where
-
-instance NFData GetPullRequest where
-
-instance ToHeaders GetPullRequest where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.GetPullRequest" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON GetPullRequest where
-        toJSON GetPullRequest'{..}
-          = object
-              (catMaybes
-                 [Just ("pullRequestId" .= _gprPullRequestId)])
-
-instance ToPath GetPullRequest where
-        toPath = const "/"
-
-instance ToQuery GetPullRequest where
-        toQuery = const mempty
-
--- | /See:/ 'getPullRequestResponse' smart constructor.
-data GetPullRequestResponse = GetPullRequestResponse'
-  { _gprrsResponseStatus :: !Int
-  , _gprrsPullRequest    :: !PullRequest
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetPullRequestResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gprrsResponseStatus' - -- | The response status code.
---
--- * 'gprrsPullRequest' - Information about the specified pull request.
-getPullRequestResponse
-    :: Int -- ^ 'gprrsResponseStatus'
-    -> PullRequest -- ^ 'gprrsPullRequest'
-    -> GetPullRequestResponse
-getPullRequestResponse pResponseStatus_ pPullRequest_ =
-  GetPullRequestResponse'
-    {_gprrsResponseStatus = pResponseStatus_, _gprrsPullRequest = pPullRequest_}
-
-
--- | -- | The response status code.
-gprrsResponseStatus :: Lens' GetPullRequestResponse Int
-gprrsResponseStatus = lens _gprrsResponseStatus (\ s a -> s{_gprrsResponseStatus = a})
-
--- | Information about the specified pull request.
-gprrsPullRequest :: Lens' GetPullRequestResponse PullRequest
-gprrsPullRequest = lens _gprrsPullRequest (\ s a -> s{_gprrsPullRequest = a})
-
-instance NFData GetPullRequestResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetRepository.hs b/gen/Network/AWS/CodeCommit/GetRepository.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/GetRepository.hs
+++ /dev/null
@@ -1,141 +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.CodeCommit.GetRepository
--- 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)
---
--- Returns information about a repository.
---
---
-module Network.AWS.CodeCommit.GetRepository
-    (
-    -- * Creating a Request
-      getRepository
-    , GetRepository
-    -- * Request Lenses
-    , grRepositoryName
-
-    -- * Destructuring the Response
-    , getRepositoryResponse
-    , GetRepositoryResponse
-    -- * Response Lenses
-    , grrsRepositoryMetadata
-    , grrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a get repository operation.
---
---
---
--- /See:/ 'getRepository' smart constructor.
-newtype GetRepository = GetRepository'
-  { _grRepositoryName :: Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetRepository' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'grRepositoryName' - The name of the repository to get information about.
-getRepository
-    :: Text -- ^ 'grRepositoryName'
-    -> GetRepository
-getRepository pRepositoryName_ =
-  GetRepository' {_grRepositoryName = pRepositoryName_}
-
-
--- | The name of the repository to get information about.
-grRepositoryName :: Lens' GetRepository Text
-grRepositoryName = lens _grRepositoryName (\ s a -> s{_grRepositoryName = a})
-
-instance AWSRequest GetRepository where
-        type Rs GetRepository = GetRepositoryResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetRepositoryResponse' <$>
-                   (x .?> "repositoryMetadata") <*> (pure (fromEnum s)))
-
-instance Hashable GetRepository where
-
-instance NFData GetRepository where
-
-instance ToHeaders GetRepository where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.GetRepository" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON GetRepository where
-        toJSON GetRepository'{..}
-          = object
-              (catMaybes
-                 [Just ("repositoryName" .= _grRepositoryName)])
-
-instance ToPath GetRepository where
-        toPath = const "/"
-
-instance ToQuery GetRepository where
-        toQuery = const mempty
-
--- | Represents the output of a get repository operation.
---
---
---
--- /See:/ 'getRepositoryResponse' smart constructor.
-data GetRepositoryResponse = GetRepositoryResponse'
-  { _grrsRepositoryMetadata :: !(Maybe RepositoryMetadata)
-  , _grrsResponseStatus     :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetRepositoryResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'grrsRepositoryMetadata' - Information about the repository.
---
--- * 'grrsResponseStatus' - -- | The response status code.
-getRepositoryResponse
-    :: Int -- ^ 'grrsResponseStatus'
-    -> GetRepositoryResponse
-getRepositoryResponse pResponseStatus_ =
-  GetRepositoryResponse'
-    {_grrsRepositoryMetadata = Nothing, _grrsResponseStatus = pResponseStatus_}
-
-
--- | Information about the repository.
-grrsRepositoryMetadata :: Lens' GetRepositoryResponse (Maybe RepositoryMetadata)
-grrsRepositoryMetadata = lens _grrsRepositoryMetadata (\ s a -> s{_grrsRepositoryMetadata = a})
-
--- | -- | The response status code.
-grrsResponseStatus :: Lens' GetRepositoryResponse Int
-grrsResponseStatus = lens _grrsResponseStatus (\ s a -> s{_grrsResponseStatus = a})
-
-instance NFData GetRepositoryResponse where
diff --git a/gen/Network/AWS/CodeCommit/GetRepositoryTriggers.hs b/gen/Network/AWS/CodeCommit/GetRepositoryTriggers.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/GetRepositoryTriggers.hs
+++ /dev/null
@@ -1,156 +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.CodeCommit.GetRepositoryTriggers
--- 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 information about triggers configured for a repository.
---
---
-module Network.AWS.CodeCommit.GetRepositoryTriggers
-    (
-    -- * Creating a Request
-      getRepositoryTriggers
-    , GetRepositoryTriggers
-    -- * Request Lenses
-    , grtRepositoryName
-
-    -- * Destructuring the Response
-    , getRepositoryTriggersResponse
-    , GetRepositoryTriggersResponse
-    -- * Response Lenses
-    , grtrsConfigurationId
-    , grtrsTriggers
-    , grtrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a get repository triggers operation.
---
---
---
--- /See:/ 'getRepositoryTriggers' smart constructor.
-newtype GetRepositoryTriggers = GetRepositoryTriggers'
-  { _grtRepositoryName :: Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetRepositoryTriggers' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'grtRepositoryName' - The name of the repository for which the trigger is configured.
-getRepositoryTriggers
-    :: Text -- ^ 'grtRepositoryName'
-    -> GetRepositoryTriggers
-getRepositoryTriggers pRepositoryName_ =
-  GetRepositoryTriggers' {_grtRepositoryName = pRepositoryName_}
-
-
--- | The name of the repository for which the trigger is configured.
-grtRepositoryName :: Lens' GetRepositoryTriggers Text
-grtRepositoryName = lens _grtRepositoryName (\ s a -> s{_grtRepositoryName = a})
-
-instance AWSRequest GetRepositoryTriggers where
-        type Rs GetRepositoryTriggers =
-             GetRepositoryTriggersResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetRepositoryTriggersResponse' <$>
-                   (x .?> "configurationId") <*>
-                     (x .?> "triggers" .!@ mempty)
-                     <*> (pure (fromEnum s)))
-
-instance Hashable GetRepositoryTriggers where
-
-instance NFData GetRepositoryTriggers where
-
-instance ToHeaders GetRepositoryTriggers where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.GetRepositoryTriggers" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON GetRepositoryTriggers where
-        toJSON GetRepositoryTriggers'{..}
-          = object
-              (catMaybes
-                 [Just ("repositoryName" .= _grtRepositoryName)])
-
-instance ToPath GetRepositoryTriggers where
-        toPath = const "/"
-
-instance ToQuery GetRepositoryTriggers where
-        toQuery = const mempty
-
--- | Represents the output of a get repository triggers operation.
---
---
---
--- /See:/ 'getRepositoryTriggersResponse' smart constructor.
-data GetRepositoryTriggersResponse = GetRepositoryTriggersResponse'
-  { _grtrsConfigurationId :: !(Maybe Text)
-  , _grtrsTriggers        :: !(Maybe [RepositoryTrigger])
-  , _grtrsResponseStatus  :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GetRepositoryTriggersResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'grtrsConfigurationId' - The system-generated unique ID for the trigger.
---
--- * 'grtrsTriggers' - The JSON block of configuration information for each trigger.
---
--- * 'grtrsResponseStatus' - -- | The response status code.
-getRepositoryTriggersResponse
-    :: Int -- ^ 'grtrsResponseStatus'
-    -> GetRepositoryTriggersResponse
-getRepositoryTriggersResponse pResponseStatus_ =
-  GetRepositoryTriggersResponse'
-    { _grtrsConfigurationId = Nothing
-    , _grtrsTriggers = Nothing
-    , _grtrsResponseStatus = pResponseStatus_
-    }
-
-
--- | The system-generated unique ID for the trigger.
-grtrsConfigurationId :: Lens' GetRepositoryTriggersResponse (Maybe Text)
-grtrsConfigurationId = lens _grtrsConfigurationId (\ s a -> s{_grtrsConfigurationId = a})
-
--- | The JSON block of configuration information for each trigger.
-grtrsTriggers :: Lens' GetRepositoryTriggersResponse [RepositoryTrigger]
-grtrsTriggers = lens _grtrsTriggers (\ s a -> s{_grtrsTriggers = a}) . _Default . _Coerce
-
--- | -- | The response status code.
-grtrsResponseStatus :: Lens' GetRepositoryTriggersResponse Int
-grtrsResponseStatus = lens _grtrsResponseStatus (\ s a -> s{_grtrsResponseStatus = a})
-
-instance NFData GetRepositoryTriggersResponse where
diff --git a/gen/Network/AWS/CodeCommit/ListBranches.hs b/gen/Network/AWS/CodeCommit/ListBranches.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/ListBranches.hs
+++ /dev/null
@@ -1,172 +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.CodeCommit.ListBranches
--- 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 information about one or more branches in a repository.
---
---
---
--- This operation returns paginated results.
-module Network.AWS.CodeCommit.ListBranches
-    (
-    -- * Creating a Request
-      listBranches
-    , ListBranches
-    -- * Request Lenses
-    , lbNextToken
-    , lbRepositoryName
-
-    -- * Destructuring the Response
-    , listBranchesResponse
-    , ListBranchesResponse
-    -- * Response Lenses
-    , lbrsBranches
-    , lbrsNextToken
-    , lbrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Pager
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a list branches operation.
---
---
---
--- /See:/ 'listBranches' smart constructor.
-data ListBranches = ListBranches'
-  { _lbNextToken      :: !(Maybe Text)
-  , _lbRepositoryName :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListBranches' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lbNextToken' - An enumeration token that allows the operation to batch the results.
---
--- * 'lbRepositoryName' - The name of the repository that contains the branches.
-listBranches
-    :: Text -- ^ 'lbRepositoryName'
-    -> ListBranches
-listBranches pRepositoryName_ =
-  ListBranches' {_lbNextToken = Nothing, _lbRepositoryName = pRepositoryName_}
-
-
--- | An enumeration token that allows the operation to batch the results.
-lbNextToken :: Lens' ListBranches (Maybe Text)
-lbNextToken = lens _lbNextToken (\ s a -> s{_lbNextToken = a})
-
--- | The name of the repository that contains the branches.
-lbRepositoryName :: Lens' ListBranches Text
-lbRepositoryName = lens _lbRepositoryName (\ s a -> s{_lbRepositoryName = a})
-
-instance AWSPager ListBranches where
-        page rq rs
-          | stop (rs ^. lbrsNextToken) = Nothing
-          | stop (rs ^. lbrsBranches) = Nothing
-          | otherwise =
-            Just $ rq & lbNextToken .~ rs ^. lbrsNextToken
-
-instance AWSRequest ListBranches where
-        type Rs ListBranches = ListBranchesResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListBranchesResponse' <$>
-                   (x .?> "branches" .!@ mempty) <*> (x .?> "nextToken")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListBranches where
-
-instance NFData ListBranches where
-
-instance ToHeaders ListBranches where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.ListBranches" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON ListBranches where
-        toJSON ListBranches'{..}
-          = object
-              (catMaybes
-                 [("nextToken" .=) <$> _lbNextToken,
-                  Just ("repositoryName" .= _lbRepositoryName)])
-
-instance ToPath ListBranches where
-        toPath = const "/"
-
-instance ToQuery ListBranches where
-        toQuery = const mempty
-
--- | Represents the output of a list branches operation.
---
---
---
--- /See:/ 'listBranchesResponse' smart constructor.
-data ListBranchesResponse = ListBranchesResponse'
-  { _lbrsBranches       :: !(Maybe [Text])
-  , _lbrsNextToken      :: !(Maybe Text)
-  , _lbrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListBranchesResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lbrsBranches' - The list of branch names.
---
--- * 'lbrsNextToken' - An enumeration token that returns the batch of the results.
---
--- * 'lbrsResponseStatus' - -- | The response status code.
-listBranchesResponse
-    :: Int -- ^ 'lbrsResponseStatus'
-    -> ListBranchesResponse
-listBranchesResponse pResponseStatus_ =
-  ListBranchesResponse'
-    { _lbrsBranches = Nothing
-    , _lbrsNextToken = Nothing
-    , _lbrsResponseStatus = pResponseStatus_
-    }
-
-
--- | The list of branch names.
-lbrsBranches :: Lens' ListBranchesResponse [Text]
-lbrsBranches = lens _lbrsBranches (\ s a -> s{_lbrsBranches = a}) . _Default . _Coerce
-
--- | An enumeration token that returns the batch of the results.
-lbrsNextToken :: Lens' ListBranchesResponse (Maybe Text)
-lbrsNextToken = lens _lbrsNextToken (\ s a -> s{_lbrsNextToken = a})
-
--- | -- | The response status code.
-lbrsResponseStatus :: Lens' ListBranchesResponse Int
-lbrsResponseStatus = lens _lbrsResponseStatus (\ s a -> s{_lbrsResponseStatus = a})
-
-instance NFData ListBranchesResponse where
diff --git a/gen/Network/AWS/CodeCommit/ListPullRequests.hs b/gen/Network/AWS/CodeCommit/ListPullRequests.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/ListPullRequests.hs
+++ /dev/null
@@ -1,198 +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.CodeCommit.ListPullRequests
--- 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)
---
--- Returns a list of pull requests for a specified repository. The return list can be refined by pull request status or pull request author ARN.
---
---
---
--- This operation returns paginated results.
-module Network.AWS.CodeCommit.ListPullRequests
-    (
-    -- * Creating a Request
-      listPullRequests
-    , ListPullRequests
-    -- * Request Lenses
-    , lprAuthorARN
-    , lprNextToken
-    , lprPullRequestStatus
-    , lprMaxResults
-    , lprRepositoryName
-
-    -- * Destructuring the Response
-    , listPullRequestsResponse
-    , ListPullRequestsResponse
-    -- * Response Lenses
-    , lprrsNextToken
-    , lprrsResponseStatus
-    , lprrsPullRequestIds
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Pager
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'listPullRequests' smart constructor.
-data ListPullRequests = ListPullRequests'
-  { _lprAuthorARN         :: !(Maybe Text)
-  , _lprNextToken         :: !(Maybe Text)
-  , _lprPullRequestStatus :: !(Maybe PullRequestStatusEnum)
-  , _lprMaxResults        :: !(Maybe Int)
-  , _lprRepositoryName    :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListPullRequests' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lprAuthorARN' - Optional. The Amazon Resource Name (ARN) of the user who created the pull request. If used, this filters the results to pull requests created by that user.
---
--- * 'lprNextToken' - An enumeration token that when provided in a request, returns the next batch of the results.
---
--- * 'lprPullRequestStatus' - Optional. The status of the pull request. If used, this refines the results to the pull requests that match the specified status.
---
--- * 'lprMaxResults' - A non-negative integer used to limit the number of returned results.
---
--- * 'lprRepositoryName' - The name of the repository for which you want to list pull requests.
-listPullRequests
-    :: Text -- ^ 'lprRepositoryName'
-    -> ListPullRequests
-listPullRequests pRepositoryName_ =
-  ListPullRequests'
-    { _lprAuthorARN = Nothing
-    , _lprNextToken = Nothing
-    , _lprPullRequestStatus = Nothing
-    , _lprMaxResults = Nothing
-    , _lprRepositoryName = pRepositoryName_
-    }
-
-
--- | Optional. The Amazon Resource Name (ARN) of the user who created the pull request. If used, this filters the results to pull requests created by that user.
-lprAuthorARN :: Lens' ListPullRequests (Maybe Text)
-lprAuthorARN = lens _lprAuthorARN (\ s a -> s{_lprAuthorARN = a})
-
--- | An enumeration token that when provided in a request, returns the next batch of the results.
-lprNextToken :: Lens' ListPullRequests (Maybe Text)
-lprNextToken = lens _lprNextToken (\ s a -> s{_lprNextToken = a})
-
--- | Optional. The status of the pull request. If used, this refines the results to the pull requests that match the specified status.
-lprPullRequestStatus :: Lens' ListPullRequests (Maybe PullRequestStatusEnum)
-lprPullRequestStatus = lens _lprPullRequestStatus (\ s a -> s{_lprPullRequestStatus = a})
-
--- | A non-negative integer used to limit the number of returned results.
-lprMaxResults :: Lens' ListPullRequests (Maybe Int)
-lprMaxResults = lens _lprMaxResults (\ s a -> s{_lprMaxResults = a})
-
--- | The name of the repository for which you want to list pull requests.
-lprRepositoryName :: Lens' ListPullRequests Text
-lprRepositoryName = lens _lprRepositoryName (\ s a -> s{_lprRepositoryName = a})
-
-instance AWSPager ListPullRequests where
-        page rq rs
-          | stop (rs ^. lprrsNextToken) = Nothing
-          | stop (rs ^. lprrsPullRequestIds) = Nothing
-          | otherwise =
-            Just $ rq & lprNextToken .~ rs ^. lprrsNextToken
-
-instance AWSRequest ListPullRequests where
-        type Rs ListPullRequests = ListPullRequestsResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListPullRequestsResponse' <$>
-                   (x .?> "nextToken") <*> (pure (fromEnum s)) <*>
-                     (x .?> "pullRequestIds" .!@ mempty))
-
-instance Hashable ListPullRequests where
-
-instance NFData ListPullRequests where
-
-instance ToHeaders ListPullRequests where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.ListPullRequests" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON ListPullRequests where
-        toJSON ListPullRequests'{..}
-          = object
-              (catMaybes
-                 [("authorArn" .=) <$> _lprAuthorARN,
-                  ("nextToken" .=) <$> _lprNextToken,
-                  ("pullRequestStatus" .=) <$> _lprPullRequestStatus,
-                  ("maxResults" .=) <$> _lprMaxResults,
-                  Just ("repositoryName" .= _lprRepositoryName)])
-
-instance ToPath ListPullRequests where
-        toPath = const "/"
-
-instance ToQuery ListPullRequests where
-        toQuery = const mempty
-
--- | /See:/ 'listPullRequestsResponse' smart constructor.
-data ListPullRequestsResponse = ListPullRequestsResponse'
-  { _lprrsNextToken      :: !(Maybe Text)
-  , _lprrsResponseStatus :: !Int
-  , _lprrsPullRequestIds :: ![Text]
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListPullRequestsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lprrsNextToken' - An enumeration token that when provided in a request, returns the next batch of the results.
---
--- * 'lprrsResponseStatus' - -- | The response status code.
---
--- * 'lprrsPullRequestIds' - The system-generated IDs of the pull requests.
-listPullRequestsResponse
-    :: Int -- ^ 'lprrsResponseStatus'
-    -> ListPullRequestsResponse
-listPullRequestsResponse pResponseStatus_ =
-  ListPullRequestsResponse'
-    { _lprrsNextToken = Nothing
-    , _lprrsResponseStatus = pResponseStatus_
-    , _lprrsPullRequestIds = mempty
-    }
-
-
--- | An enumeration token that when provided in a request, returns the next batch of the results.
-lprrsNextToken :: Lens' ListPullRequestsResponse (Maybe Text)
-lprrsNextToken = lens _lprrsNextToken (\ s a -> s{_lprrsNextToken = a})
-
--- | -- | The response status code.
-lprrsResponseStatus :: Lens' ListPullRequestsResponse Int
-lprrsResponseStatus = lens _lprrsResponseStatus (\ s a -> s{_lprrsResponseStatus = a})
-
--- | The system-generated IDs of the pull requests.
-lprrsPullRequestIds :: Lens' ListPullRequestsResponse [Text]
-lprrsPullRequestIds = lens _lprrsPullRequestIds (\ s a -> s{_lprrsPullRequestIds = a}) . _Coerce
-
-instance NFData ListPullRequestsResponse where
diff --git a/gen/Network/AWS/CodeCommit/ListRepositories.hs b/gen/Network/AWS/CodeCommit/ListRepositories.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/ListRepositories.hs
+++ /dev/null
@@ -1,183 +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.CodeCommit.ListRepositories
--- 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 information about one or more repositories.
---
---
---
--- This operation returns paginated results.
-module Network.AWS.CodeCommit.ListRepositories
-    (
-    -- * Creating a Request
-      listRepositories
-    , ListRepositories
-    -- * Request Lenses
-    , lrNextToken
-    , lrOrder
-    , lrSortBy
-
-    -- * Destructuring the Response
-    , listRepositoriesResponse
-    , ListRepositoriesResponse
-    -- * Response Lenses
-    , lrrsRepositories
-    , lrrsNextToken
-    , lrrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Pager
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a list repositories operation.
---
---
---
--- /See:/ 'listRepositories' smart constructor.
-data ListRepositories = ListRepositories'
-  { _lrNextToken :: !(Maybe Text)
-  , _lrOrder     :: !(Maybe OrderEnum)
-  , _lrSortBy    :: !(Maybe SortByEnum)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListRepositories' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lrNextToken' - An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved.
---
--- * 'lrOrder' - The order in which to sort the results of a list repositories operation.
---
--- * 'lrSortBy' - The criteria used to sort the results of a list repositories operation.
-listRepositories
-    :: ListRepositories
-listRepositories =
-  ListRepositories'
-    {_lrNextToken = Nothing, _lrOrder = Nothing, _lrSortBy = Nothing}
-
-
--- | An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved.
-lrNextToken :: Lens' ListRepositories (Maybe Text)
-lrNextToken = lens _lrNextToken (\ s a -> s{_lrNextToken = a})
-
--- | The order in which to sort the results of a list repositories operation.
-lrOrder :: Lens' ListRepositories (Maybe OrderEnum)
-lrOrder = lens _lrOrder (\ s a -> s{_lrOrder = a})
-
--- | The criteria used to sort the results of a list repositories operation.
-lrSortBy :: Lens' ListRepositories (Maybe SortByEnum)
-lrSortBy = lens _lrSortBy (\ s a -> s{_lrSortBy = a})
-
-instance AWSPager ListRepositories where
-        page rq rs
-          | stop (rs ^. lrrsNextToken) = Nothing
-          | stop (rs ^. lrrsRepositories) = Nothing
-          | otherwise =
-            Just $ rq & lrNextToken .~ rs ^. lrrsNextToken
-
-instance AWSRequest ListRepositories where
-        type Rs ListRepositories = ListRepositoriesResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListRepositoriesResponse' <$>
-                   (x .?> "repositories" .!@ mempty) <*>
-                     (x .?> "nextToken")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListRepositories where
-
-instance NFData ListRepositories where
-
-instance ToHeaders ListRepositories where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.ListRepositories" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON ListRepositories where
-        toJSON ListRepositories'{..}
-          = object
-              (catMaybes
-                 [("nextToken" .=) <$> _lrNextToken,
-                  ("order" .=) <$> _lrOrder,
-                  ("sortBy" .=) <$> _lrSortBy])
-
-instance ToPath ListRepositories where
-        toPath = const "/"
-
-instance ToQuery ListRepositories where
-        toQuery = const mempty
-
--- | Represents the output of a list repositories operation.
---
---
---
--- /See:/ 'listRepositoriesResponse' smart constructor.
-data ListRepositoriesResponse = ListRepositoriesResponse'
-  { _lrrsRepositories   :: !(Maybe [RepositoryNameIdPair])
-  , _lrrsNextToken      :: !(Maybe Text)
-  , _lrrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListRepositoriesResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lrrsRepositories' - Lists the repositories called by the list repositories operation.
---
--- * 'lrrsNextToken' - An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved.
---
--- * 'lrrsResponseStatus' - -- | The response status code.
-listRepositoriesResponse
-    :: Int -- ^ 'lrrsResponseStatus'
-    -> ListRepositoriesResponse
-listRepositoriesResponse pResponseStatus_ =
-  ListRepositoriesResponse'
-    { _lrrsRepositories = Nothing
-    , _lrrsNextToken = Nothing
-    , _lrrsResponseStatus = pResponseStatus_
-    }
-
-
--- | Lists the repositories called by the list repositories operation.
-lrrsRepositories :: Lens' ListRepositoriesResponse [RepositoryNameIdPair]
-lrrsRepositories = lens _lrrsRepositories (\ s a -> s{_lrrsRepositories = a}) . _Default . _Coerce
-
--- | An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved.
-lrrsNextToken :: Lens' ListRepositoriesResponse (Maybe Text)
-lrrsNextToken = lens _lrrsNextToken (\ s a -> s{_lrrsNextToken = a})
-
--- | -- | The response status code.
-lrrsResponseStatus :: Lens' ListRepositoriesResponse Int
-lrrsResponseStatus = lens _lrrsResponseStatus (\ s a -> s{_lrrsResponseStatus = a})
-
-instance NFData ListRepositoriesResponse where
diff --git a/gen/Network/AWS/CodeCommit/MergePullRequestByFastForward.hs b/gen/Network/AWS/CodeCommit/MergePullRequestByFastForward.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/MergePullRequestByFastForward.hs
+++ /dev/null
@@ -1,161 +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.CodeCommit.MergePullRequestByFastForward
--- 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)
---
--- Closes a pull request and attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the fast-forward merge option.
---
---
-module Network.AWS.CodeCommit.MergePullRequestByFastForward
-    (
-    -- * Creating a Request
-      mergePullRequestByFastForward
-    , MergePullRequestByFastForward
-    -- * Request Lenses
-    , mprbffSourceCommitId
-    , mprbffPullRequestId
-    , mprbffRepositoryName
-
-    -- * Destructuring the Response
-    , mergePullRequestByFastForwardResponse
-    , MergePullRequestByFastForwardResponse
-    -- * Response Lenses
-    , mprbffrsPullRequest
-    , mprbffrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'mergePullRequestByFastForward' smart constructor.
-data MergePullRequestByFastForward = MergePullRequestByFastForward'
-  { _mprbffSourceCommitId :: !(Maybe Text)
-  , _mprbffPullRequestId  :: !Text
-  , _mprbffRepositoryName :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MergePullRequestByFastForward' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mprbffSourceCommitId' - The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID.
---
--- * 'mprbffPullRequestId' - The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
---
--- * 'mprbffRepositoryName' - The name of the repository where the pull request was created.
-mergePullRequestByFastForward
-    :: Text -- ^ 'mprbffPullRequestId'
-    -> Text -- ^ 'mprbffRepositoryName'
-    -> MergePullRequestByFastForward
-mergePullRequestByFastForward pPullRequestId_ pRepositoryName_ =
-  MergePullRequestByFastForward'
-    { _mprbffSourceCommitId = Nothing
-    , _mprbffPullRequestId = pPullRequestId_
-    , _mprbffRepositoryName = pRepositoryName_
-    }
-
-
--- | The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID.
-mprbffSourceCommitId :: Lens' MergePullRequestByFastForward (Maybe Text)
-mprbffSourceCommitId = lens _mprbffSourceCommitId (\ s a -> s{_mprbffSourceCommitId = a})
-
--- | The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
-mprbffPullRequestId :: Lens' MergePullRequestByFastForward Text
-mprbffPullRequestId = lens _mprbffPullRequestId (\ s a -> s{_mprbffPullRequestId = a})
-
--- | The name of the repository where the pull request was created.
-mprbffRepositoryName :: Lens' MergePullRequestByFastForward Text
-mprbffRepositoryName = lens _mprbffRepositoryName (\ s a -> s{_mprbffRepositoryName = a})
-
-instance AWSRequest MergePullRequestByFastForward
-         where
-        type Rs MergePullRequestByFastForward =
-             MergePullRequestByFastForwardResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 MergePullRequestByFastForwardResponse' <$>
-                   (x .?> "pullRequest") <*> (pure (fromEnum s)))
-
-instance Hashable MergePullRequestByFastForward where
-
-instance NFData MergePullRequestByFastForward where
-
-instance ToHeaders MergePullRequestByFastForward
-         where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.MergePullRequestByFastForward"
-                       :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON MergePullRequestByFastForward where
-        toJSON MergePullRequestByFastForward'{..}
-          = object
-              (catMaybes
-                 [("sourceCommitId" .=) <$> _mprbffSourceCommitId,
-                  Just ("pullRequestId" .= _mprbffPullRequestId),
-                  Just ("repositoryName" .= _mprbffRepositoryName)])
-
-instance ToPath MergePullRequestByFastForward where
-        toPath = const "/"
-
-instance ToQuery MergePullRequestByFastForward where
-        toQuery = const mempty
-
--- | /See:/ 'mergePullRequestByFastForwardResponse' smart constructor.
-data MergePullRequestByFastForwardResponse = MergePullRequestByFastForwardResponse'
-  { _mprbffrsPullRequest    :: !(Maybe PullRequest)
-  , _mprbffrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MergePullRequestByFastForwardResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mprbffrsPullRequest' - Information about the specified pull request, including information about the merge.
---
--- * 'mprbffrsResponseStatus' - -- | The response status code.
-mergePullRequestByFastForwardResponse
-    :: Int -- ^ 'mprbffrsResponseStatus'
-    -> MergePullRequestByFastForwardResponse
-mergePullRequestByFastForwardResponse pResponseStatus_ =
-  MergePullRequestByFastForwardResponse'
-    {_mprbffrsPullRequest = Nothing, _mprbffrsResponseStatus = pResponseStatus_}
-
-
--- | Information about the specified pull request, including information about the merge.
-mprbffrsPullRequest :: Lens' MergePullRequestByFastForwardResponse (Maybe PullRequest)
-mprbffrsPullRequest = lens _mprbffrsPullRequest (\ s a -> s{_mprbffrsPullRequest = a})
-
--- | -- | The response status code.
-mprbffrsResponseStatus :: Lens' MergePullRequestByFastForwardResponse Int
-mprbffrsResponseStatus = lens _mprbffrsResponseStatus (\ s a -> s{_mprbffrsResponseStatus = a})
-
-instance NFData MergePullRequestByFastForwardResponse
-         where
diff --git a/gen/Network/AWS/CodeCommit/PostCommentForComparedCommit.hs b/gen/Network/AWS/CodeCommit/PostCommentForComparedCommit.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/PostCommentForComparedCommit.hs
+++ /dev/null
@@ -1,254 +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.CodeCommit.PostCommentForComparedCommit
--- 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)
---
--- Posts a comment on the comparison between two commits.
---
---
-module Network.AWS.CodeCommit.PostCommentForComparedCommit
-    (
-    -- * Creating a Request
-      postCommentForComparedCommit
-    , PostCommentForComparedCommit
-    -- * Request Lenses
-    , pcfccLocation
-    , pcfccBeforeCommitId
-    , pcfccClientRequestToken
-    , pcfccRepositoryName
-    , pcfccAfterCommitId
-    , pcfccContent
-
-    -- * Destructuring the Response
-    , postCommentForComparedCommitResponse
-    , PostCommentForComparedCommitResponse
-    -- * Response Lenses
-    , pcfccrsBeforeBlobId
-    , pcfccrsLocation
-    , pcfccrsAfterCommitId
-    , pcfccrsAfterBlobId
-    , pcfccrsBeforeCommitId
-    , pcfccrsRepositoryName
-    , pcfccrsComment
-    , pcfccrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'postCommentForComparedCommit' smart constructor.
-data PostCommentForComparedCommit = PostCommentForComparedCommit'
-  { _pcfccLocation           :: !(Maybe Location)
-  , _pcfccBeforeCommitId     :: !(Maybe Text)
-  , _pcfccClientRequestToken :: !(Maybe Text)
-  , _pcfccRepositoryName     :: !Text
-  , _pcfccAfterCommitId      :: !Text
-  , _pcfccContent            :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostCommentForComparedCommit' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pcfccLocation' - The location of the comparison where you want to comment.
---
--- * 'pcfccBeforeCommitId' - To establish the directionality of the comparison, the full commit ID of the 'before' commit.
---
--- * 'pcfccClientRequestToken' - A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
---
--- * 'pcfccRepositoryName' - The name of the repository where you want to post a comment on the comparison between commits.
---
--- * 'pcfccAfterCommitId' - To establish the directionality of the comparison, the full commit ID of the 'after' commit.
---
--- * 'pcfccContent' - The content of the comment you want to make.
-postCommentForComparedCommit
-    :: Text -- ^ 'pcfccRepositoryName'
-    -> Text -- ^ 'pcfccAfterCommitId'
-    -> Text -- ^ 'pcfccContent'
-    -> PostCommentForComparedCommit
-postCommentForComparedCommit pRepositoryName_ pAfterCommitId_ pContent_ =
-  PostCommentForComparedCommit'
-    { _pcfccLocation = Nothing
-    , _pcfccBeforeCommitId = Nothing
-    , _pcfccClientRequestToken = Nothing
-    , _pcfccRepositoryName = pRepositoryName_
-    , _pcfccAfterCommitId = pAfterCommitId_
-    , _pcfccContent = pContent_
-    }
-
-
--- | The location of the comparison where you want to comment.
-pcfccLocation :: Lens' PostCommentForComparedCommit (Maybe Location)
-pcfccLocation = lens _pcfccLocation (\ s a -> s{_pcfccLocation = a})
-
--- | To establish the directionality of the comparison, the full commit ID of the 'before' commit.
-pcfccBeforeCommitId :: Lens' PostCommentForComparedCommit (Maybe Text)
-pcfccBeforeCommitId = lens _pcfccBeforeCommitId (\ s a -> s{_pcfccBeforeCommitId = a})
-
--- | A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
-pcfccClientRequestToken :: Lens' PostCommentForComparedCommit (Maybe Text)
-pcfccClientRequestToken = lens _pcfccClientRequestToken (\ s a -> s{_pcfccClientRequestToken = a})
-
--- | The name of the repository where you want to post a comment on the comparison between commits.
-pcfccRepositoryName :: Lens' PostCommentForComparedCommit Text
-pcfccRepositoryName = lens _pcfccRepositoryName (\ s a -> s{_pcfccRepositoryName = a})
-
--- | To establish the directionality of the comparison, the full commit ID of the 'after' commit.
-pcfccAfterCommitId :: Lens' PostCommentForComparedCommit Text
-pcfccAfterCommitId = lens _pcfccAfterCommitId (\ s a -> s{_pcfccAfterCommitId = a})
-
--- | The content of the comment you want to make.
-pcfccContent :: Lens' PostCommentForComparedCommit Text
-pcfccContent = lens _pcfccContent (\ s a -> s{_pcfccContent = a})
-
-instance AWSRequest PostCommentForComparedCommit
-         where
-        type Rs PostCommentForComparedCommit =
-             PostCommentForComparedCommitResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 PostCommentForComparedCommitResponse' <$>
-                   (x .?> "beforeBlobId") <*> (x .?> "location") <*>
-                     (x .?> "afterCommitId")
-                     <*> (x .?> "afterBlobId")
-                     <*> (x .?> "beforeCommitId")
-                     <*> (x .?> "repositoryName")
-                     <*> (x .?> "comment")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable PostCommentForComparedCommit where
-
-instance NFData PostCommentForComparedCommit where
-
-instance ToHeaders PostCommentForComparedCommit where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.PostCommentForComparedCommit"
-                       :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON PostCommentForComparedCommit where
-        toJSON PostCommentForComparedCommit'{..}
-          = object
-              (catMaybes
-                 [("location" .=) <$> _pcfccLocation,
-                  ("beforeCommitId" .=) <$> _pcfccBeforeCommitId,
-                  ("clientRequestToken" .=) <$>
-                    _pcfccClientRequestToken,
-                  Just ("repositoryName" .= _pcfccRepositoryName),
-                  Just ("afterCommitId" .= _pcfccAfterCommitId),
-                  Just ("content" .= _pcfccContent)])
-
-instance ToPath PostCommentForComparedCommit where
-        toPath = const "/"
-
-instance ToQuery PostCommentForComparedCommit where
-        toQuery = const mempty
-
--- | /See:/ 'postCommentForComparedCommitResponse' smart constructor.
-data PostCommentForComparedCommitResponse = PostCommentForComparedCommitResponse'
-  { _pcfccrsBeforeBlobId   :: !(Maybe Text)
-  , _pcfccrsLocation       :: !(Maybe Location)
-  , _pcfccrsAfterCommitId  :: !(Maybe Text)
-  , _pcfccrsAfterBlobId    :: !(Maybe Text)
-  , _pcfccrsBeforeCommitId :: !(Maybe Text)
-  , _pcfccrsRepositoryName :: !(Maybe Text)
-  , _pcfccrsComment        :: !(Maybe Comment)
-  , _pcfccrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostCommentForComparedCommitResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pcfccrsBeforeBlobId' - In the directionality you established, the blob ID of the 'before' blob.
---
--- * 'pcfccrsLocation' - The location of the comment in the comparison between the two commits.
---
--- * 'pcfccrsAfterCommitId' - In the directionality you established, the full commit ID of the 'after' commit.
---
--- * 'pcfccrsAfterBlobId' - In the directionality you established, the blob ID of the 'after' blob.
---
--- * 'pcfccrsBeforeCommitId' - In the directionality you established, the full commit ID of the 'before' commit.
---
--- * 'pcfccrsRepositoryName' - The name of the repository where you posted a comment on the comparison between commits.
---
--- * 'pcfccrsComment' - The content of the comment you posted.
---
--- * 'pcfccrsResponseStatus' - -- | The response status code.
-postCommentForComparedCommitResponse
-    :: Int -- ^ 'pcfccrsResponseStatus'
-    -> PostCommentForComparedCommitResponse
-postCommentForComparedCommitResponse pResponseStatus_ =
-  PostCommentForComparedCommitResponse'
-    { _pcfccrsBeforeBlobId = Nothing
-    , _pcfccrsLocation = Nothing
-    , _pcfccrsAfterCommitId = Nothing
-    , _pcfccrsAfterBlobId = Nothing
-    , _pcfccrsBeforeCommitId = Nothing
-    , _pcfccrsRepositoryName = Nothing
-    , _pcfccrsComment = Nothing
-    , _pcfccrsResponseStatus = pResponseStatus_
-    }
-
-
--- | In the directionality you established, the blob ID of the 'before' blob.
-pcfccrsBeforeBlobId :: Lens' PostCommentForComparedCommitResponse (Maybe Text)
-pcfccrsBeforeBlobId = lens _pcfccrsBeforeBlobId (\ s a -> s{_pcfccrsBeforeBlobId = a})
-
--- | The location of the comment in the comparison between the two commits.
-pcfccrsLocation :: Lens' PostCommentForComparedCommitResponse (Maybe Location)
-pcfccrsLocation = lens _pcfccrsLocation (\ s a -> s{_pcfccrsLocation = a})
-
--- | In the directionality you established, the full commit ID of the 'after' commit.
-pcfccrsAfterCommitId :: Lens' PostCommentForComparedCommitResponse (Maybe Text)
-pcfccrsAfterCommitId = lens _pcfccrsAfterCommitId (\ s a -> s{_pcfccrsAfterCommitId = a})
-
--- | In the directionality you established, the blob ID of the 'after' blob.
-pcfccrsAfterBlobId :: Lens' PostCommentForComparedCommitResponse (Maybe Text)
-pcfccrsAfterBlobId = lens _pcfccrsAfterBlobId (\ s a -> s{_pcfccrsAfterBlobId = a})
-
--- | In the directionality you established, the full commit ID of the 'before' commit.
-pcfccrsBeforeCommitId :: Lens' PostCommentForComparedCommitResponse (Maybe Text)
-pcfccrsBeforeCommitId = lens _pcfccrsBeforeCommitId (\ s a -> s{_pcfccrsBeforeCommitId = a})
-
--- | The name of the repository where you posted a comment on the comparison between commits.
-pcfccrsRepositoryName :: Lens' PostCommentForComparedCommitResponse (Maybe Text)
-pcfccrsRepositoryName = lens _pcfccrsRepositoryName (\ s a -> s{_pcfccrsRepositoryName = a})
-
--- | The content of the comment you posted.
-pcfccrsComment :: Lens' PostCommentForComparedCommitResponse (Maybe Comment)
-pcfccrsComment = lens _pcfccrsComment (\ s a -> s{_pcfccrsComment = a})
-
--- | -- | The response status code.
-pcfccrsResponseStatus :: Lens' PostCommentForComparedCommitResponse Int
-pcfccrsResponseStatus = lens _pcfccrsResponseStatus (\ s a -> s{_pcfccrsResponseStatus = a})
-
-instance NFData PostCommentForComparedCommitResponse
-         where
diff --git a/gen/Network/AWS/CodeCommit/PostCommentForPullRequest.hs b/gen/Network/AWS/CodeCommit/PostCommentForPullRequest.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/PostCommentForPullRequest.hs
+++ /dev/null
@@ -1,275 +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.CodeCommit.PostCommentForPullRequest
--- 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)
---
--- Posts a comment on a pull request.
---
---
-module Network.AWS.CodeCommit.PostCommentForPullRequest
-    (
-    -- * Creating a Request
-      postCommentForPullRequest
-    , PostCommentForPullRequest
-    -- * Request Lenses
-    , pcfprLocation
-    , pcfprClientRequestToken
-    , pcfprPullRequestId
-    , pcfprRepositoryName
-    , pcfprBeforeCommitId
-    , pcfprAfterCommitId
-    , pcfprContent
-
-    -- * Destructuring the Response
-    , postCommentForPullRequestResponse
-    , PostCommentForPullRequestResponse
-    -- * Response Lenses
-    , pcfprrsBeforeBlobId
-    , pcfprrsLocation
-    , pcfprrsAfterCommitId
-    , pcfprrsPullRequestId
-    , pcfprrsAfterBlobId
-    , pcfprrsBeforeCommitId
-    , pcfprrsRepositoryName
-    , pcfprrsComment
-    , pcfprrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'postCommentForPullRequest' smart constructor.
-data PostCommentForPullRequest = PostCommentForPullRequest'
-  { _pcfprLocation           :: !(Maybe Location)
-  , _pcfprClientRequestToken :: !(Maybe Text)
-  , _pcfprPullRequestId      :: !Text
-  , _pcfprRepositoryName     :: !Text
-  , _pcfprBeforeCommitId     :: !Text
-  , _pcfprAfterCommitId      :: !Text
-  , _pcfprContent            :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostCommentForPullRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pcfprLocation' - The location of the change where you want to post your comment. If no location is provided, the comment will be posted as a general comment on the pull request difference between the before commit ID and the after commit ID.
---
--- * 'pcfprClientRequestToken' - A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
---
--- * 'pcfprPullRequestId' - The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
---
--- * 'pcfprRepositoryName' - The name of the repository where you want to post a comment on a pull request.
---
--- * 'pcfprBeforeCommitId' - The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created.
---
--- * 'pcfprAfterCommitId' - The full commit ID of the commit in the source branch that is the current tip of the branch for the pull request when you post the comment.
---
--- * 'pcfprContent' - The content of your comment on the change.
-postCommentForPullRequest
-    :: Text -- ^ 'pcfprPullRequestId'
-    -> Text -- ^ 'pcfprRepositoryName'
-    -> Text -- ^ 'pcfprBeforeCommitId'
-    -> Text -- ^ 'pcfprAfterCommitId'
-    -> Text -- ^ 'pcfprContent'
-    -> PostCommentForPullRequest
-postCommentForPullRequest pPullRequestId_ pRepositoryName_ pBeforeCommitId_ pAfterCommitId_ pContent_ =
-  PostCommentForPullRequest'
-    { _pcfprLocation = Nothing
-    , _pcfprClientRequestToken = Nothing
-    , _pcfprPullRequestId = pPullRequestId_
-    , _pcfprRepositoryName = pRepositoryName_
-    , _pcfprBeforeCommitId = pBeforeCommitId_
-    , _pcfprAfterCommitId = pAfterCommitId_
-    , _pcfprContent = pContent_
-    }
-
-
--- | The location of the change where you want to post your comment. If no location is provided, the comment will be posted as a general comment on the pull request difference between the before commit ID and the after commit ID.
-pcfprLocation :: Lens' PostCommentForPullRequest (Maybe Location)
-pcfprLocation = lens _pcfprLocation (\ s a -> s{_pcfprLocation = a})
-
--- | A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
-pcfprClientRequestToken :: Lens' PostCommentForPullRequest (Maybe Text)
-pcfprClientRequestToken = lens _pcfprClientRequestToken (\ s a -> s{_pcfprClientRequestToken = a})
-
--- | The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
-pcfprPullRequestId :: Lens' PostCommentForPullRequest Text
-pcfprPullRequestId = lens _pcfprPullRequestId (\ s a -> s{_pcfprPullRequestId = a})
-
--- | The name of the repository where you want to post a comment on a pull request.
-pcfprRepositoryName :: Lens' PostCommentForPullRequest Text
-pcfprRepositoryName = lens _pcfprRepositoryName (\ s a -> s{_pcfprRepositoryName = a})
-
--- | The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created.
-pcfprBeforeCommitId :: Lens' PostCommentForPullRequest Text
-pcfprBeforeCommitId = lens _pcfprBeforeCommitId (\ s a -> s{_pcfprBeforeCommitId = a})
-
--- | The full commit ID of the commit in the source branch that is the current tip of the branch for the pull request when you post the comment.
-pcfprAfterCommitId :: Lens' PostCommentForPullRequest Text
-pcfprAfterCommitId = lens _pcfprAfterCommitId (\ s a -> s{_pcfprAfterCommitId = a})
-
--- | The content of your comment on the change.
-pcfprContent :: Lens' PostCommentForPullRequest Text
-pcfprContent = lens _pcfprContent (\ s a -> s{_pcfprContent = a})
-
-instance AWSRequest PostCommentForPullRequest where
-        type Rs PostCommentForPullRequest =
-             PostCommentForPullRequestResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 PostCommentForPullRequestResponse' <$>
-                   (x .?> "beforeBlobId") <*> (x .?> "location") <*>
-                     (x .?> "afterCommitId")
-                     <*> (x .?> "pullRequestId")
-                     <*> (x .?> "afterBlobId")
-                     <*> (x .?> "beforeCommitId")
-                     <*> (x .?> "repositoryName")
-                     <*> (x .?> "comment")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable PostCommentForPullRequest where
-
-instance NFData PostCommentForPullRequest where
-
-instance ToHeaders PostCommentForPullRequest where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.PostCommentForPullRequest" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON PostCommentForPullRequest where
-        toJSON PostCommentForPullRequest'{..}
-          = object
-              (catMaybes
-                 [("location" .=) <$> _pcfprLocation,
-                  ("clientRequestToken" .=) <$>
-                    _pcfprClientRequestToken,
-                  Just ("pullRequestId" .= _pcfprPullRequestId),
-                  Just ("repositoryName" .= _pcfprRepositoryName),
-                  Just ("beforeCommitId" .= _pcfprBeforeCommitId),
-                  Just ("afterCommitId" .= _pcfprAfterCommitId),
-                  Just ("content" .= _pcfprContent)])
-
-instance ToPath PostCommentForPullRequest where
-        toPath = const "/"
-
-instance ToQuery PostCommentForPullRequest where
-        toQuery = const mempty
-
--- | /See:/ 'postCommentForPullRequestResponse' smart constructor.
-data PostCommentForPullRequestResponse = PostCommentForPullRequestResponse'
-  { _pcfprrsBeforeBlobId   :: !(Maybe Text)
-  , _pcfprrsLocation       :: !(Maybe Location)
-  , _pcfprrsAfterCommitId  :: !(Maybe Text)
-  , _pcfprrsPullRequestId  :: !(Maybe Text)
-  , _pcfprrsAfterBlobId    :: !(Maybe Text)
-  , _pcfprrsBeforeCommitId :: !(Maybe Text)
-  , _pcfprrsRepositoryName :: !(Maybe Text)
-  , _pcfprrsComment        :: !(Maybe Comment)
-  , _pcfprrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostCommentForPullRequestResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pcfprrsBeforeBlobId' - In the directionality of the pull request, the blob ID of the 'before' blob.
---
--- * 'pcfprrsLocation' - The location of the change where you posted your comment.
---
--- * 'pcfprrsAfterCommitId' - The full commit ID of the commit in the destination branch where the pull request will be merged.
---
--- * 'pcfprrsPullRequestId' - The system-generated ID of the pull request.
---
--- * 'pcfprrsAfterBlobId' - In the directionality of the pull request, the blob ID of the 'after' blob.
---
--- * 'pcfprrsBeforeCommitId' - The full commit ID of the commit in the source branch used to create the pull request, or in the case of an updated pull request, the full commit ID of the commit used to update the pull request.
---
--- * 'pcfprrsRepositoryName' - The name of the repository where you posted a comment on a pull request.
---
--- * 'pcfprrsComment' - The content of the comment you posted.
---
--- * 'pcfprrsResponseStatus' - -- | The response status code.
-postCommentForPullRequestResponse
-    :: Int -- ^ 'pcfprrsResponseStatus'
-    -> PostCommentForPullRequestResponse
-postCommentForPullRequestResponse pResponseStatus_ =
-  PostCommentForPullRequestResponse'
-    { _pcfprrsBeforeBlobId = Nothing
-    , _pcfprrsLocation = Nothing
-    , _pcfprrsAfterCommitId = Nothing
-    , _pcfprrsPullRequestId = Nothing
-    , _pcfprrsAfterBlobId = Nothing
-    , _pcfprrsBeforeCommitId = Nothing
-    , _pcfprrsRepositoryName = Nothing
-    , _pcfprrsComment = Nothing
-    , _pcfprrsResponseStatus = pResponseStatus_
-    }
-
-
--- | In the directionality of the pull request, the blob ID of the 'before' blob.
-pcfprrsBeforeBlobId :: Lens' PostCommentForPullRequestResponse (Maybe Text)
-pcfprrsBeforeBlobId = lens _pcfprrsBeforeBlobId (\ s a -> s{_pcfprrsBeforeBlobId = a})
-
--- | The location of the change where you posted your comment.
-pcfprrsLocation :: Lens' PostCommentForPullRequestResponse (Maybe Location)
-pcfprrsLocation = lens _pcfprrsLocation (\ s a -> s{_pcfprrsLocation = a})
-
--- | The full commit ID of the commit in the destination branch where the pull request will be merged.
-pcfprrsAfterCommitId :: Lens' PostCommentForPullRequestResponse (Maybe Text)
-pcfprrsAfterCommitId = lens _pcfprrsAfterCommitId (\ s a -> s{_pcfprrsAfterCommitId = a})
-
--- | The system-generated ID of the pull request.
-pcfprrsPullRequestId :: Lens' PostCommentForPullRequestResponse (Maybe Text)
-pcfprrsPullRequestId = lens _pcfprrsPullRequestId (\ s a -> s{_pcfprrsPullRequestId = a})
-
--- | In the directionality of the pull request, the blob ID of the 'after' blob.
-pcfprrsAfterBlobId :: Lens' PostCommentForPullRequestResponse (Maybe Text)
-pcfprrsAfterBlobId = lens _pcfprrsAfterBlobId (\ s a -> s{_pcfprrsAfterBlobId = a})
-
--- | The full commit ID of the commit in the source branch used to create the pull request, or in the case of an updated pull request, the full commit ID of the commit used to update the pull request.
-pcfprrsBeforeCommitId :: Lens' PostCommentForPullRequestResponse (Maybe Text)
-pcfprrsBeforeCommitId = lens _pcfprrsBeforeCommitId (\ s a -> s{_pcfprrsBeforeCommitId = a})
-
--- | The name of the repository where you posted a comment on a pull request.
-pcfprrsRepositoryName :: Lens' PostCommentForPullRequestResponse (Maybe Text)
-pcfprrsRepositoryName = lens _pcfprrsRepositoryName (\ s a -> s{_pcfprrsRepositoryName = a})
-
--- | The content of the comment you posted.
-pcfprrsComment :: Lens' PostCommentForPullRequestResponse (Maybe Comment)
-pcfprrsComment = lens _pcfprrsComment (\ s a -> s{_pcfprrsComment = a})
-
--- | -- | The response status code.
-pcfprrsResponseStatus :: Lens' PostCommentForPullRequestResponse Int
-pcfprrsResponseStatus = lens _pcfprrsResponseStatus (\ s a -> s{_pcfprrsResponseStatus = a})
-
-instance NFData PostCommentForPullRequestResponse
-         where
diff --git a/gen/Network/AWS/CodeCommit/PostCommentReply.hs b/gen/Network/AWS/CodeCommit/PostCommentReply.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/PostCommentReply.hs
+++ /dev/null
@@ -1,158 +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.CodeCommit.PostCommentReply
--- 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)
---
--- Posts a comment in reply to an existing comment on a comparison between commits or a pull request.
---
---
-module Network.AWS.CodeCommit.PostCommentReply
-    (
-    -- * Creating a Request
-      postCommentReply
-    , PostCommentReply
-    -- * Request Lenses
-    , pcrClientRequestToken
-    , pcrInReplyTo
-    , pcrContent
-
-    -- * Destructuring the Response
-    , postCommentReplyResponse
-    , PostCommentReplyResponse
-    -- * Response Lenses
-    , pcrrsComment
-    , pcrrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'postCommentReply' smart constructor.
-data PostCommentReply = PostCommentReply'
-  { _pcrClientRequestToken :: !(Maybe Text)
-  , _pcrInReplyTo          :: !Text
-  , _pcrContent            :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostCommentReply' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pcrClientRequestToken' - A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
---
--- * 'pcrInReplyTo' - The system-generated ID of the comment to which you want to reply. To get this ID, use 'GetCommentsForComparedCommit' or 'GetCommentsForPullRequest' .
---
--- * 'pcrContent' - The contents of your reply to a comment.
-postCommentReply
-    :: Text -- ^ 'pcrInReplyTo'
-    -> Text -- ^ 'pcrContent'
-    -> PostCommentReply
-postCommentReply pInReplyTo_ pContent_ =
-  PostCommentReply'
-    { _pcrClientRequestToken = Nothing
-    , _pcrInReplyTo = pInReplyTo_
-    , _pcrContent = pContent_
-    }
-
-
--- | A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
-pcrClientRequestToken :: Lens' PostCommentReply (Maybe Text)
-pcrClientRequestToken = lens _pcrClientRequestToken (\ s a -> s{_pcrClientRequestToken = a})
-
--- | The system-generated ID of the comment to which you want to reply. To get this ID, use 'GetCommentsForComparedCommit' or 'GetCommentsForPullRequest' .
-pcrInReplyTo :: Lens' PostCommentReply Text
-pcrInReplyTo = lens _pcrInReplyTo (\ s a -> s{_pcrInReplyTo = a})
-
--- | The contents of your reply to a comment.
-pcrContent :: Lens' PostCommentReply Text
-pcrContent = lens _pcrContent (\ s a -> s{_pcrContent = a})
-
-instance AWSRequest PostCommentReply where
-        type Rs PostCommentReply = PostCommentReplyResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 PostCommentReplyResponse' <$>
-                   (x .?> "comment") <*> (pure (fromEnum s)))
-
-instance Hashable PostCommentReply where
-
-instance NFData PostCommentReply where
-
-instance ToHeaders PostCommentReply where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.PostCommentReply" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON PostCommentReply where
-        toJSON PostCommentReply'{..}
-          = object
-              (catMaybes
-                 [("clientRequestToken" .=) <$>
-                    _pcrClientRequestToken,
-                  Just ("inReplyTo" .= _pcrInReplyTo),
-                  Just ("content" .= _pcrContent)])
-
-instance ToPath PostCommentReply where
-        toPath = const "/"
-
-instance ToQuery PostCommentReply where
-        toQuery = const mempty
-
--- | /See:/ 'postCommentReplyResponse' smart constructor.
-data PostCommentReplyResponse = PostCommentReplyResponse'
-  { _pcrrsComment        :: !(Maybe Comment)
-  , _pcrrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PostCommentReplyResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pcrrsComment' - Information about the reply to a comment.
---
--- * 'pcrrsResponseStatus' - -- | The response status code.
-postCommentReplyResponse
-    :: Int -- ^ 'pcrrsResponseStatus'
-    -> PostCommentReplyResponse
-postCommentReplyResponse pResponseStatus_ =
-  PostCommentReplyResponse'
-    {_pcrrsComment = Nothing, _pcrrsResponseStatus = pResponseStatus_}
-
-
--- | Information about the reply to a comment.
-pcrrsComment :: Lens' PostCommentReplyResponse (Maybe Comment)
-pcrrsComment = lens _pcrrsComment (\ s a -> s{_pcrrsComment = a})
-
--- | -- | The response status code.
-pcrrsResponseStatus :: Lens' PostCommentReplyResponse Int
-pcrrsResponseStatus = lens _pcrrsResponseStatus (\ s a -> s{_pcrrsResponseStatus = a})
-
-instance NFData PostCommentReplyResponse where
diff --git a/gen/Network/AWS/CodeCommit/PutFile.hs b/gen/Network/AWS/CodeCommit/PutFile.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/PutFile.hs
+++ /dev/null
@@ -1,243 +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.CodeCommit.PutFile
--- 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)
---
--- Adds or updates a file in an AWS CodeCommit repository.
---
---
-module Network.AWS.CodeCommit.PutFile
-    (
-    -- * Creating a Request
-      putFile
-    , PutFile
-    -- * Request Lenses
-    , pfEmail
-    , pfFileMode
-    , pfParentCommitId
-    , pfName
-    , pfCommitMessage
-    , pfRepositoryName
-    , pfBranchName
-    , pfFileContent
-    , pfFilePath
-
-    -- * Destructuring the Response
-    , putFileResponse
-    , PutFileResponse
-    -- * Response Lenses
-    , pfrsResponseStatus
-    , pfrsCommitId
-    , pfrsBlobId
-    , pfrsTreeId
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'putFile' smart constructor.
-data PutFile = PutFile'
-  { _pfEmail          :: !(Maybe Text)
-  , _pfFileMode       :: !(Maybe FileModeTypeEnum)
-  , _pfParentCommitId :: !(Maybe Text)
-  , _pfName           :: !(Maybe Text)
-  , _pfCommitMessage  :: !(Maybe Text)
-  , _pfRepositoryName :: !Text
-  , _pfBranchName     :: !Text
-  , _pfFileContent    :: !Base64
-  , _pfFilePath       :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PutFile' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pfEmail' - An email address for the person adding or updating the file.
---
--- * 'pfFileMode' - The file mode permissions of the blob. Valid file mode permissions are listed below.
---
--- * 'pfParentCommitId' - The full commit ID of the head commit in the branch where you want to add or update the file. If the commit ID does not match the ID of the head commit at the time of the operation, an error will occur, and the file will not be added or updated.
---
--- * 'pfName' - The name of the person adding or updating the file. While optional, adding a name is strongly encouraged in order to provide a more useful commit history for your repository.
---
--- * 'pfCommitMessage' - A message about why this file was added or updated. While optional, adding a message is strongly encouraged in order to provide a more useful commit history for your repository.
---
--- * 'pfRepositoryName' - The name of the repository where you want to add or update the file.
---
--- * 'pfBranchName' - The name of the branch where you want to add or update the file.
---
--- * 'pfFileContent' - The content of the file, in binary object format. -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
---
--- * 'pfFilePath' - The name of the file you want to add or update, including the relative path to the file in the repository.
-putFile
-    :: Text -- ^ 'pfRepositoryName'
-    -> Text -- ^ 'pfBranchName'
-    -> ByteString -- ^ 'pfFileContent'
-    -> Text -- ^ 'pfFilePath'
-    -> PutFile
-putFile pRepositoryName_ pBranchName_ pFileContent_ pFilePath_ =
-  PutFile'
-    { _pfEmail = Nothing
-    , _pfFileMode = Nothing
-    , _pfParentCommitId = Nothing
-    , _pfName = Nothing
-    , _pfCommitMessage = Nothing
-    , _pfRepositoryName = pRepositoryName_
-    , _pfBranchName = pBranchName_
-    , _pfFileContent = _Base64 # pFileContent_
-    , _pfFilePath = pFilePath_
-    }
-
-
--- | An email address for the person adding or updating the file.
-pfEmail :: Lens' PutFile (Maybe Text)
-pfEmail = lens _pfEmail (\ s a -> s{_pfEmail = a})
-
--- | The file mode permissions of the blob. Valid file mode permissions are listed below.
-pfFileMode :: Lens' PutFile (Maybe FileModeTypeEnum)
-pfFileMode = lens _pfFileMode (\ s a -> s{_pfFileMode = a})
-
--- | The full commit ID of the head commit in the branch where you want to add or update the file. If the commit ID does not match the ID of the head commit at the time of the operation, an error will occur, and the file will not be added or updated.
-pfParentCommitId :: Lens' PutFile (Maybe Text)
-pfParentCommitId = lens _pfParentCommitId (\ s a -> s{_pfParentCommitId = a})
-
--- | The name of the person adding or updating the file. While optional, adding a name is strongly encouraged in order to provide a more useful commit history for your repository.
-pfName :: Lens' PutFile (Maybe Text)
-pfName = lens _pfName (\ s a -> s{_pfName = a})
-
--- | A message about why this file was added or updated. While optional, adding a message is strongly encouraged in order to provide a more useful commit history for your repository.
-pfCommitMessage :: Lens' PutFile (Maybe Text)
-pfCommitMessage = lens _pfCommitMessage (\ s a -> s{_pfCommitMessage = a})
-
--- | The name of the repository where you want to add or update the file.
-pfRepositoryName :: Lens' PutFile Text
-pfRepositoryName = lens _pfRepositoryName (\ s a -> s{_pfRepositoryName = a})
-
--- | The name of the branch where you want to add or update the file.
-pfBranchName :: Lens' PutFile Text
-pfBranchName = lens _pfBranchName (\ s a -> s{_pfBranchName = a})
-
--- | The content of the file, in binary object format. -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
-pfFileContent :: Lens' PutFile ByteString
-pfFileContent = lens _pfFileContent (\ s a -> s{_pfFileContent = a}) . _Base64
-
--- | The name of the file you want to add or update, including the relative path to the file in the repository.
-pfFilePath :: Lens' PutFile Text
-pfFilePath = lens _pfFilePath (\ s a -> s{_pfFilePath = a})
-
-instance AWSRequest PutFile where
-        type Rs PutFile = PutFileResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 PutFileResponse' <$>
-                   (pure (fromEnum s)) <*> (x .:> "commitId") <*>
-                     (x .:> "blobId")
-                     <*> (x .:> "treeId"))
-
-instance Hashable PutFile where
-
-instance NFData PutFile where
-
-instance ToHeaders PutFile where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.PutFile" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON PutFile where
-        toJSON PutFile'{..}
-          = object
-              (catMaybes
-                 [("email" .=) <$> _pfEmail,
-                  ("fileMode" .=) <$> _pfFileMode,
-                  ("parentCommitId" .=) <$> _pfParentCommitId,
-                  ("name" .=) <$> _pfName,
-                  ("commitMessage" .=) <$> _pfCommitMessage,
-                  Just ("repositoryName" .= _pfRepositoryName),
-                  Just ("branchName" .= _pfBranchName),
-                  Just ("fileContent" .= _pfFileContent),
-                  Just ("filePath" .= _pfFilePath)])
-
-instance ToPath PutFile where
-        toPath = const "/"
-
-instance ToQuery PutFile where
-        toQuery = const mempty
-
--- | /See:/ 'putFileResponse' smart constructor.
-data PutFileResponse = PutFileResponse'
-  { _pfrsResponseStatus :: !Int
-  , _pfrsCommitId       :: !Text
-  , _pfrsBlobId         :: !Text
-  , _pfrsTreeId         :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PutFileResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pfrsResponseStatus' - -- | The response status code.
---
--- * 'pfrsCommitId' - The full SHA of the commit that contains this file change.
---
--- * 'pfrsBlobId' - The ID of the blob, which is its SHA-1 pointer.
---
--- * 'pfrsTreeId' - Tree information for the commit that contains this file change.
-putFileResponse
-    :: Int -- ^ 'pfrsResponseStatus'
-    -> Text -- ^ 'pfrsCommitId'
-    -> Text -- ^ 'pfrsBlobId'
-    -> Text -- ^ 'pfrsTreeId'
-    -> PutFileResponse
-putFileResponse pResponseStatus_ pCommitId_ pBlobId_ pTreeId_ =
-  PutFileResponse'
-    { _pfrsResponseStatus = pResponseStatus_
-    , _pfrsCommitId = pCommitId_
-    , _pfrsBlobId = pBlobId_
-    , _pfrsTreeId = pTreeId_
-    }
-
-
--- | -- | The response status code.
-pfrsResponseStatus :: Lens' PutFileResponse Int
-pfrsResponseStatus = lens _pfrsResponseStatus (\ s a -> s{_pfrsResponseStatus = a})
-
--- | The full SHA of the commit that contains this file change.
-pfrsCommitId :: Lens' PutFileResponse Text
-pfrsCommitId = lens _pfrsCommitId (\ s a -> s{_pfrsCommitId = a})
-
--- | The ID of the blob, which is its SHA-1 pointer.
-pfrsBlobId :: Lens' PutFileResponse Text
-pfrsBlobId = lens _pfrsBlobId (\ s a -> s{_pfrsBlobId = a})
-
--- | Tree information for the commit that contains this file change.
-pfrsTreeId :: Lens' PutFileResponse Text
-pfrsTreeId = lens _pfrsTreeId (\ s a -> s{_pfrsTreeId = a})
-
-instance NFData PutFileResponse where
diff --git a/gen/Network/AWS/CodeCommit/PutRepositoryTriggers.hs b/gen/Network/AWS/CodeCommit/PutRepositoryTriggers.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/PutRepositoryTriggers.hs
+++ /dev/null
@@ -1,153 +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.CodeCommit.PutRepositoryTriggers
--- 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)
---
--- Replaces all triggers for a repository. This can be used to create or delete triggers.
---
---
-module Network.AWS.CodeCommit.PutRepositoryTriggers
-    (
-    -- * Creating a Request
-      putRepositoryTriggers
-    , PutRepositoryTriggers
-    -- * Request Lenses
-    , pRepositoryName
-    , pTriggers
-
-    -- * Destructuring the Response
-    , putRepositoryTriggersResponse
-    , PutRepositoryTriggersResponse
-    -- * Response Lenses
-    , prtrsConfigurationId
-    , prtrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input ofa put repository triggers operation.
---
---
---
--- /See:/ 'putRepositoryTriggers' smart constructor.
-data PutRepositoryTriggers = PutRepositoryTriggers'
-  { _pRepositoryName :: !Text
-  , _pTriggers       :: ![RepositoryTrigger]
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PutRepositoryTriggers' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pRepositoryName' - The name of the repository where you want to create or update the trigger.
---
--- * 'pTriggers' - The JSON block of configuration information for each trigger.
-putRepositoryTriggers
-    :: Text -- ^ 'pRepositoryName'
-    -> PutRepositoryTriggers
-putRepositoryTriggers pRepositoryName_ =
-  PutRepositoryTriggers'
-    {_pRepositoryName = pRepositoryName_, _pTriggers = mempty}
-
-
--- | The name of the repository where you want to create or update the trigger.
-pRepositoryName :: Lens' PutRepositoryTriggers Text
-pRepositoryName = lens _pRepositoryName (\ s a -> s{_pRepositoryName = a})
-
--- | The JSON block of configuration information for each trigger.
-pTriggers :: Lens' PutRepositoryTriggers [RepositoryTrigger]
-pTriggers = lens _pTriggers (\ s a -> s{_pTriggers = a}) . _Coerce
-
-instance AWSRequest PutRepositoryTriggers where
-        type Rs PutRepositoryTriggers =
-             PutRepositoryTriggersResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 PutRepositoryTriggersResponse' <$>
-                   (x .?> "configurationId") <*> (pure (fromEnum s)))
-
-instance Hashable PutRepositoryTriggers where
-
-instance NFData PutRepositoryTriggers where
-
-instance ToHeaders PutRepositoryTriggers where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.PutRepositoryTriggers" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON PutRepositoryTriggers where
-        toJSON PutRepositoryTriggers'{..}
-          = object
-              (catMaybes
-                 [Just ("repositoryName" .= _pRepositoryName),
-                  Just ("triggers" .= _pTriggers)])
-
-instance ToPath PutRepositoryTriggers where
-        toPath = const "/"
-
-instance ToQuery PutRepositoryTriggers where
-        toQuery = const mempty
-
--- | Represents the output of a put repository triggers operation.
---
---
---
--- /See:/ 'putRepositoryTriggersResponse' smart constructor.
-data PutRepositoryTriggersResponse = PutRepositoryTriggersResponse'
-  { _prtrsConfigurationId :: !(Maybe Text)
-  , _prtrsResponseStatus  :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PutRepositoryTriggersResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'prtrsConfigurationId' - The system-generated unique ID for the create or update operation.
---
--- * 'prtrsResponseStatus' - -- | The response status code.
-putRepositoryTriggersResponse
-    :: Int -- ^ 'prtrsResponseStatus'
-    -> PutRepositoryTriggersResponse
-putRepositoryTriggersResponse pResponseStatus_ =
-  PutRepositoryTriggersResponse'
-    {_prtrsConfigurationId = Nothing, _prtrsResponseStatus = pResponseStatus_}
-
-
--- | The system-generated unique ID for the create or update operation.
-prtrsConfigurationId :: Lens' PutRepositoryTriggersResponse (Maybe Text)
-prtrsConfigurationId = lens _prtrsConfigurationId (\ s a -> s{_prtrsConfigurationId = a})
-
--- | -- | The response status code.
-prtrsResponseStatus :: Lens' PutRepositoryTriggersResponse Int
-prtrsResponseStatus = lens _prtrsResponseStatus (\ s a -> s{_prtrsResponseStatus = a})
-
-instance NFData PutRepositoryTriggersResponse where
diff --git a/gen/Network/AWS/CodeCommit/TestRepositoryTriggers.hs b/gen/Network/AWS/CodeCommit/TestRepositoryTriggers.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/TestRepositoryTriggers.hs
+++ /dev/null
@@ -1,166 +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.CodeCommit.TestRepositoryTriggers
--- 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)
---
--- Tests the functionality of repository triggers by sending information to the trigger target. If real data is available in the repository, the test will send data from the last commit. If no data is available, sample data will be generated.
---
---
-module Network.AWS.CodeCommit.TestRepositoryTriggers
-    (
-    -- * Creating a Request
-      testRepositoryTriggers
-    , TestRepositoryTriggers
-    -- * Request Lenses
-    , trtRepositoryName
-    , trtTriggers
-
-    -- * Destructuring the Response
-    , testRepositoryTriggersResponse
-    , TestRepositoryTriggersResponse
-    -- * Response Lenses
-    , trtrsFailedExecutions
-    , trtrsSuccessfulExecutions
-    , trtrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of a test repository triggers operation.
---
---
---
--- /See:/ 'testRepositoryTriggers' smart constructor.
-data TestRepositoryTriggers = TestRepositoryTriggers'
-  { _trtRepositoryName :: !Text
-  , _trtTriggers       :: ![RepositoryTrigger]
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TestRepositoryTriggers' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'trtRepositoryName' - The name of the repository in which to test the triggers.
---
--- * 'trtTriggers' - The list of triggers to test.
-testRepositoryTriggers
-    :: Text -- ^ 'trtRepositoryName'
-    -> TestRepositoryTriggers
-testRepositoryTriggers pRepositoryName_ =
-  TestRepositoryTriggers'
-    {_trtRepositoryName = pRepositoryName_, _trtTriggers = mempty}
-
-
--- | The name of the repository in which to test the triggers.
-trtRepositoryName :: Lens' TestRepositoryTriggers Text
-trtRepositoryName = lens _trtRepositoryName (\ s a -> s{_trtRepositoryName = a})
-
--- | The list of triggers to test.
-trtTriggers :: Lens' TestRepositoryTriggers [RepositoryTrigger]
-trtTriggers = lens _trtTriggers (\ s a -> s{_trtTriggers = a}) . _Coerce
-
-instance AWSRequest TestRepositoryTriggers where
-        type Rs TestRepositoryTriggers =
-             TestRepositoryTriggersResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 TestRepositoryTriggersResponse' <$>
-                   (x .?> "failedExecutions" .!@ mempty) <*>
-                     (x .?> "successfulExecutions" .!@ mempty)
-                     <*> (pure (fromEnum s)))
-
-instance Hashable TestRepositoryTriggers where
-
-instance NFData TestRepositoryTriggers where
-
-instance ToHeaders TestRepositoryTriggers where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.TestRepositoryTriggers" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON TestRepositoryTriggers where
-        toJSON TestRepositoryTriggers'{..}
-          = object
-              (catMaybes
-                 [Just ("repositoryName" .= _trtRepositoryName),
-                  Just ("triggers" .= _trtTriggers)])
-
-instance ToPath TestRepositoryTriggers where
-        toPath = const "/"
-
-instance ToQuery TestRepositoryTriggers where
-        toQuery = const mempty
-
--- | Represents the output of a test repository triggers operation.
---
---
---
--- /See:/ 'testRepositoryTriggersResponse' smart constructor.
-data TestRepositoryTriggersResponse = TestRepositoryTriggersResponse'
-  { _trtrsFailedExecutions     :: !(Maybe [RepositoryTriggerExecutionFailure])
-  , _trtrsSuccessfulExecutions :: !(Maybe [Text])
-  , _trtrsResponseStatus       :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TestRepositoryTriggersResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'trtrsFailedExecutions' - The list of triggers that were not able to be tested. This list provides the names of the triggers that could not be tested, separated by commas.
---
--- * 'trtrsSuccessfulExecutions' - The list of triggers that were successfully tested. This list provides the names of the triggers that were successfully tested, separated by commas.
---
--- * 'trtrsResponseStatus' - -- | The response status code.
-testRepositoryTriggersResponse
-    :: Int -- ^ 'trtrsResponseStatus'
-    -> TestRepositoryTriggersResponse
-testRepositoryTriggersResponse pResponseStatus_ =
-  TestRepositoryTriggersResponse'
-    { _trtrsFailedExecutions = Nothing
-    , _trtrsSuccessfulExecutions = Nothing
-    , _trtrsResponseStatus = pResponseStatus_
-    }
-
-
--- | The list of triggers that were not able to be tested. This list provides the names of the triggers that could not be tested, separated by commas.
-trtrsFailedExecutions :: Lens' TestRepositoryTriggersResponse [RepositoryTriggerExecutionFailure]
-trtrsFailedExecutions = lens _trtrsFailedExecutions (\ s a -> s{_trtrsFailedExecutions = a}) . _Default . _Coerce
-
--- | The list of triggers that were successfully tested. This list provides the names of the triggers that were successfully tested, separated by commas.
-trtrsSuccessfulExecutions :: Lens' TestRepositoryTriggersResponse [Text]
-trtrsSuccessfulExecutions = lens _trtrsSuccessfulExecutions (\ s a -> s{_trtrsSuccessfulExecutions = a}) . _Default . _Coerce
-
--- | -- | The response status code.
-trtrsResponseStatus :: Lens' TestRepositoryTriggersResponse Int
-trtrsResponseStatus = lens _trtrsResponseStatus (\ s a -> s{_trtrsResponseStatus = a})
-
-instance NFData TestRepositoryTriggersResponse where
diff --git a/gen/Network/AWS/CodeCommit/Types.hs b/gen/Network/AWS/CodeCommit/Types.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/Types.hs
+++ /dev/null
@@ -1,1259 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.CodeCommit.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.CodeCommit.Types
-    (
-    -- * Service Configuration
-      codeCommit
-
-    -- * Errors
-    , _InvalidRepositoryTriggerRegionException
-    , _InvalidContinuationTokenException
-    , _ManualMergeRequiredException
-    , _TargetsRequiredException
-    , _EncryptionKeyNotFoundException
-    , _TipsDivergenceExceededException
-    , _InvalidRepositoryTriggerBranchNameException
-    , _PullRequestAlreadyClosedException
-    , _InvalidRepositoryTriggerCustomDataException
-    , _DirectoryNameConflictsWithFileNameException
-    , _ReferenceDoesNotExistException
-    , _ActorDoesNotExistException
-    , _PullRequestIdRequiredException
-    , _InvalidEmailException
-    , _CommitMessageLengthExceededException
-    , _BlobIdDoesNotExistException
-    , _MaximumRepositoryNamesExceededException
-    , _InvalidRepositoryDescriptionException
-    , _RepositoryNameExistsException
-    , _ReferenceNameRequiredException
-    , _MaximumRepositoryTriggersExceededException
-    , _InvalidBranchNameException
-    , _BranchNameRequiredException
-    , _MergeOptionRequiredException
-    , _InvalidFileLocationException
-    , _BeforeCommitIdAndAfterCommitIdAreSameException
-    , _RepositoryTriggersListRequiredException
-    , _IdempotencyParameterMismatchException
-    , _EncryptionKeyUnavailableException
-    , _InvalidRelativeFileVersionEnumException
-    , _InvalidRepositoryTriggerDestinationARNException
-    , _BlobIdRequiredException
-    , _RepositoryNamesRequiredException
-    , _InvalidActorARNException
-    , _InvalidCommentIdException
-    , _InvalidDescriptionException
-    , _InvalidBlobIdException
-    , _PullRequestDoesNotExistException
-    , _InvalidOrderException
-    , _BranchDoesNotExistException
-    , _DefaultBranchCannotBeDeletedException
-    , _InvalidPathException
-    , _PathRequiredException
-    , _RepositoryTriggerNameRequiredException
-    , _InvalidFileModeException
-    , _InvalidPullRequestStatusException
-    , _ParentCommitIdRequiredException
-    , _InvalidSourceCommitSpecifierException
-    , _RepositoryDoesNotExistException
-    , _MaximumBranchesExceededException
-    , _InvalidTitleException
-    , _CommentContentSizeLimitExceededException
-    , _InvalidParentCommitIdException
-    , _InvalidPullRequestEventTypeException
-    , _FileContentRequiredException
-    , _SourceAndDestinationAreSameException
-    , _PathDoesNotExistException
-    , _EncryptionIntegrityChecksFailedException
-    , _ParentCommitIdOutdatedException
-    , _RepositoryTriggerEventsListRequiredException
-    , _CommentContentRequiredException
-    , _InvalidTargetsException
-    , _EncryptionKeyAccessDeniedException
-    , _BranchNameExistsException
-    , _InvalidCommitException
-    , _TargetRequiredException
-    , _InvalidDestinationCommitSpecifierException
-    , _CommentDoesNotExistException
-    , _ReferenceTypeNotSupportedException
-    , _FileNameConflictsWithDirectoryNameException
-    , _NameLengthExceededException
-    , _InvalidSortByException
-    , _EncryptionKeyDisabledException
-    , _CommitRequiredException
-    , _MaximumOpenPullRequestsExceededException
-    , _InvalidTargetException
-    , _InvalidPullRequestIdException
-    , _CommentNotCreatedByCallerException
-    , _InvalidPullRequestStatusUpdateException
-    , _InvalidReferenceNameException
-    , _SameFileContentException
-    , _CommitIdRequiredException
-    , _InvalidCommitIdException
-    , _TipOfSourceReferenceIsDifferentException
-    , _RepositoryTriggerDestinationARNRequiredException
-    , _InvalidClientRequestTokenException
-    , _CommitDoesNotExistException
-    , _RepositoryTriggerBranchNameListRequiredException
-    , _ClientRequestTokenRequiredException
-    , _InvalidMergeOptionException
-    , _CommentIdRequiredException
-    , _InvalidMaxResultsException
-    , _FileTooLargeException
-    , _CommitIdDoesNotExistException
-    , _MultipleRepositoriesInPullRequestException
-    , _FileContentSizeLimitExceededException
-    , _InvalidRepositoryTriggerNameException
-    , _RepositoryNameRequiredException
-    , _RepositoryLimitExceededException
-    , _InvalidRepositoryTriggerEventsException
-    , _BranchNameIsTagNameException
-    , _InvalidRepositoryNameException
-    , _InvalidAuthorARNException
-    , _PullRequestStatusRequiredException
-    , _RepositoryNotAssociatedWithPullRequestException
-    , _TitleRequiredException
-    , _InvalidFilePositionException
-    , _CommentDeletedException
-    , _ParentCommitDoesNotExistException
-    , _AuthorDoesNotExistException
-
-    -- * ChangeTypeEnum
-    , ChangeTypeEnum (..)
-
-    -- * FileModeTypeEnum
-    , FileModeTypeEnum (..)
-
-    -- * MergeOptionTypeEnum
-    , MergeOptionTypeEnum (..)
-
-    -- * OrderEnum
-    , OrderEnum (..)
-
-    -- * PullRequestEventType
-    , PullRequestEventType (..)
-
-    -- * PullRequestStatusEnum
-    , PullRequestStatusEnum (..)
-
-    -- * RelativeFileVersionEnum
-    , RelativeFileVersionEnum (..)
-
-    -- * RepositoryTriggerEventEnum
-    , RepositoryTriggerEventEnum (..)
-
-    -- * SortByEnum
-    , SortByEnum (..)
-
-    -- * BlobMetadata
-    , BlobMetadata
-    , blobMetadata
-    , bmPath
-    , bmMode
-    , bmBlobId
-
-    -- * BranchInfo
-    , BranchInfo
-    , branchInfo
-    , biCommitId
-    , biBranchName
-
-    -- * Comment
-    , Comment
-    , comment
-    , cLastModifiedDate
-    , cAuthorARN
-    , cContent
-    , cCreationDate
-    , cDeleted
-    , cClientRequestToken
-    , cCommentId
-    , cInReplyTo
-
-    -- * CommentsForComparedCommit
-    , CommentsForComparedCommit
-    , commentsForComparedCommit
-    , cfccBeforeBlobId
-    , cfccLocation
-    , cfccAfterCommitId
-    , cfccAfterBlobId
-    , cfccBeforeCommitId
-    , cfccRepositoryName
-    , cfccComments
-
-    -- * CommentsForPullRequest
-    , CommentsForPullRequest
-    , commentsForPullRequest
-    , cfprBeforeBlobId
-    , cfprLocation
-    , cfprAfterCommitId
-    , cfprPullRequestId
-    , cfprAfterBlobId
-    , cfprBeforeCommitId
-    , cfprRepositoryName
-    , cfprComments
-
-    -- * Commit
-    , Commit
-    , commit
-    , cCommitId
-    , cCommitter
-    , cTreeId
-    , cAdditionalData
-    , cParents
-    , cAuthor
-    , cMessage
-
-    -- * Difference
-    , Difference
-    , difference
-    , dAfterBlob
-    , dBeforeBlob
-    , dChangeType
-
-    -- * Location
-    , Location
-    , location
-    , lRelativeFileVersion
-    , lFilePath
-    , lFilePosition
-
-    -- * MergeMetadata
-    , MergeMetadata
-    , mergeMetadata
-    , mmMergedBy
-    , mmIsMerged
-
-    -- * PullRequest
-    , PullRequest
-    , pullRequest
-    , prAuthorARN
-    , prPullRequestId
-    , prCreationDate
-    , prPullRequestStatus
-    , prTitle
-    , prClientRequestToken
-    , prLastActivityDate
-    , prPullRequestTargets
-    , prDescription
-
-    -- * PullRequestEvent
-    , PullRequestEvent
-    , pullRequestEvent
-    , prePullRequestMergedStateChangedEventMetadata
-    , prePullRequestEventType
-    , prePullRequestStatusChangedEventMetadata
-    , preActorARN
-    , prePullRequestId
-    , preEventDate
-    , prePullRequestSourceReferenceUpdatedEventMetadata
-
-    -- * PullRequestMergedStateChangedEventMetadata
-    , PullRequestMergedStateChangedEventMetadata
-    , pullRequestMergedStateChangedEventMetadata
-    , prmscemDestinationReference
-    , prmscemMergeMetadata
-    , prmscemRepositoryName
-
-    -- * PullRequestSourceReferenceUpdatedEventMetadata
-    , PullRequestSourceReferenceUpdatedEventMetadata
-    , pullRequestSourceReferenceUpdatedEventMetadata
-    , prsruemAfterCommitId
-    , prsruemBeforeCommitId
-    , prsruemRepositoryName
-
-    -- * PullRequestStatusChangedEventMetadata
-    , PullRequestStatusChangedEventMetadata
-    , pullRequestStatusChangedEventMetadata
-    , prscemPullRequestStatus
-
-    -- * PullRequestTarget
-    , PullRequestTarget
-    , pullRequestTarget
-    , prtSourceCommit
-    , prtDestinationReference
-    , prtMergeMetadata
-    , prtDestinationCommit
-    , prtRepositoryName
-    , prtSourceReference
-
-    -- * RepositoryMetadata
-    , RepositoryMetadata
-    , repositoryMetadata
-    , rmRepositoryDescription
-    , rmLastModifiedDate
-    , rmARN
-    , rmCloneURLHTTP
-    , rmAccountId
-    , rmDefaultBranch
-    , rmRepositoryId
-    , rmRepositoryName
-    , rmCreationDate
-    , rmCloneURLSSH
-
-    -- * RepositoryNameIdPair
-    , RepositoryNameIdPair
-    , repositoryNameIdPair
-    , rnipRepositoryId
-    , rnipRepositoryName
-
-    -- * RepositoryTrigger
-    , RepositoryTrigger
-    , repositoryTrigger
-    , rtBranches
-    , rtCustomData
-    , rtName
-    , rtDestinationARN
-    , rtEvents
-
-    -- * RepositoryTriggerExecutionFailure
-    , RepositoryTriggerExecutionFailure
-    , repositoryTriggerExecutionFailure
-    , rtefFailureMessage
-    , rtefTrigger
-
-    -- * Target
-    , Target
-    , target
-    , tDestinationReference
-    , tRepositoryName
-    , tSourceReference
-
-    -- * UserInfo
-    , UserInfo
-    , userInfo
-    , uiEmail
-    , uiDate
-    , uiName
-    ) where
-
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.CodeCommit.Types.Sum
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Sign.V4
-
--- | API version @2015-04-13@ of the Amazon CodeCommit SDK configuration.
-codeCommit :: Service
-codeCommit =
-  Service
-    { _svcAbbrev = "CodeCommit"
-    , _svcSigner = v4
-    , _svcPrefix = "codecommit"
-    , _svcVersion = "2015-04-13"
-    , _svcEndpoint = defaultEndpoint codeCommit
-    , _svcTimeout = Just 70
-    , _svcCheck = statusSuccess
-    , _svcError = parseJSONError "CodeCommit"
-    , _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 region for the trigger target does not match the region for the repository. Triggers must be created in the same region as the target for the trigger.
---
---
-_InvalidRepositoryTriggerRegionException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRepositoryTriggerRegionException =
-  _MatchServiceError codeCommit "InvalidRepositoryTriggerRegionException"
-
-
--- | The specified continuation token is not valid.
---
---
-_InvalidContinuationTokenException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidContinuationTokenException =
-  _MatchServiceError codeCommit "InvalidContinuationTokenException"
-
-
--- | The pull request cannot be merged automatically into the destination branch. You must manually merge the branches and resolve any conflicts.
---
---
-_ManualMergeRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_ManualMergeRequiredException =
-  _MatchServiceError codeCommit "ManualMergeRequiredException"
-
-
--- | An array of target objects is required. It cannot be empty or null.
---
---
-_TargetsRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_TargetsRequiredException =
-  _MatchServiceError codeCommit "TargetsRequiredException"
-
-
--- | No encryption key was found.
---
---
-_EncryptionKeyNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
-_EncryptionKeyNotFoundException =
-  _MatchServiceError codeCommit "EncryptionKeyNotFoundException"
-
-
--- | The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using @git diff@ or a diff tool.
---
---
-_TipsDivergenceExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_TipsDivergenceExceededException =
-  _MatchServiceError codeCommit "TipsDivergenceExceededException"
-
-
--- | One or more branch names specified for the trigger is not valid.
---
---
-_InvalidRepositoryTriggerBranchNameException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRepositoryTriggerBranchNameException =
-  _MatchServiceError codeCommit "InvalidRepositoryTriggerBranchNameException"
-
-
--- | The pull request status cannot be updated because it is already closed.
---
---
-_PullRequestAlreadyClosedException :: AsError a => Getting (First ServiceError) a ServiceError
-_PullRequestAlreadyClosedException =
-  _MatchServiceError codeCommit "PullRequestAlreadyClosedException"
-
-
--- | The custom data provided for the trigger is not valid.
---
---
-_InvalidRepositoryTriggerCustomDataException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRepositoryTriggerCustomDataException =
-  _MatchServiceError codeCommit "InvalidRepositoryTriggerCustomDataException"
-
-
--- | A file cannot be added to the repository because the specified path name has the same name as a file that already exists in this repository. Either provide a different name for the file, or specify a different path for the file.
---
---
-_DirectoryNameConflictsWithFileNameException :: AsError a => Getting (First ServiceError) a ServiceError
-_DirectoryNameConflictsWithFileNameException =
-  _MatchServiceError codeCommit "DirectoryNameConflictsWithFileNameException"
-
-
--- | The specified reference does not exist. You must provide a full commit ID.
---
---
-_ReferenceDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
-_ReferenceDoesNotExistException =
-  _MatchServiceError codeCommit "ReferenceDoesNotExistException"
-
-
--- | The specified Amazon Resource Name (ARN) does not exist in the AWS account.
---
---
-_ActorDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
-_ActorDoesNotExistException =
-  _MatchServiceError codeCommit "ActorDoesNotExistException"
-
-
--- | A pull request ID is required, but none was provided.
---
---
-_PullRequestIdRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_PullRequestIdRequiredException =
-  _MatchServiceError codeCommit "PullRequestIdRequiredException"
-
-
--- | The specified email address either contains one or more characters that are not allowed, or it exceeds the maximum number of characters allowed for an email address.
---
---
-_InvalidEmailException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidEmailException = _MatchServiceError codeCommit "InvalidEmailException"
-
-
--- | The commit message is too long. Provide a shorter string.
---
---
-_CommitMessageLengthExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_CommitMessageLengthExceededException =
-  _MatchServiceError codeCommit "CommitMessageLengthExceededException"
-
-
--- | The specified blob does not exist.
---
---
-_BlobIdDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
-_BlobIdDoesNotExistException =
-  _MatchServiceError codeCommit "BlobIdDoesNotExistException"
-
-
--- | The maximum number of allowed repository names was exceeded. Currently, this number is 25.
---
---
-_MaximumRepositoryNamesExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_MaximumRepositoryNamesExceededException =
-  _MatchServiceError codeCommit "MaximumRepositoryNamesExceededException"
-
-
--- | The specified repository description is not valid.
---
---
-_InvalidRepositoryDescriptionException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRepositoryDescriptionException =
-  _MatchServiceError codeCommit "InvalidRepositoryDescriptionException"
-
-
--- | The specified repository name already exists.
---
---
-_RepositoryNameExistsException :: AsError a => Getting (First ServiceError) a ServiceError
-_RepositoryNameExistsException =
-  _MatchServiceError codeCommit "RepositoryNameExistsException"
-
-
--- | A reference name is required, but none was provided.
---
---
-_ReferenceNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_ReferenceNameRequiredException =
-  _MatchServiceError codeCommit "ReferenceNameRequiredException"
-
-
--- | The number of triggers allowed for the repository was exceeded.
---
---
-_MaximumRepositoryTriggersExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_MaximumRepositoryTriggersExceededException =
-  _MatchServiceError codeCommit "MaximumRepositoryTriggersExceededException"
-
-
--- | The specified reference name is not valid.
---
---
-_InvalidBranchNameException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidBranchNameException =
-  _MatchServiceError codeCommit "InvalidBranchNameException"
-
-
--- | A branch name is required but was not specified.
---
---
-_BranchNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_BranchNameRequiredException =
-  _MatchServiceError codeCommit "BranchNameRequiredException"
-
-
--- | A merge option or stategy is required, and none was provided.
---
---
-_MergeOptionRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_MergeOptionRequiredException =
-  _MatchServiceError codeCommit "MergeOptionRequiredException"
-
-
--- | The location of the file is not valid. Make sure that you include the extension of the file as well as the file name.
---
---
-_InvalidFileLocationException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidFileLocationException =
-  _MatchServiceError codeCommit "InvalidFileLocationException"
-
-
--- | The before commit ID and the after commit ID are the same, which is not valid. The before commit ID and the after commit ID must be different commit IDs.
---
---
-_BeforeCommitIdAndAfterCommitIdAreSameException :: AsError a => Getting (First ServiceError) a ServiceError
-_BeforeCommitIdAndAfterCommitIdAreSameException =
-  _MatchServiceError codeCommit "BeforeCommitIdAndAfterCommitIdAreSameException"
-
-
--- | The list of triggers for the repository is required but was not specified.
---
---
-_RepositoryTriggersListRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_RepositoryTriggersListRequiredException =
-  _MatchServiceError codeCommit "RepositoryTriggersListRequiredException"
-
-
--- | The client request token is not valid. Either the token is not in a valid format, or the token has been used in a previous request and cannot be re-used.
---
---
-_IdempotencyParameterMismatchException :: AsError a => Getting (First ServiceError) a ServiceError
-_IdempotencyParameterMismatchException =
-  _MatchServiceError codeCommit "IdempotencyParameterMismatchException"
-
-
--- | The encryption key is not available.
---
---
-_EncryptionKeyUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError
-_EncryptionKeyUnavailableException =
-  _MatchServiceError codeCommit "EncryptionKeyUnavailableException"
-
-
--- | Either the enum is not in a valid format, or the specified file version enum is not valid in respect to the current file version.
---
---
-_InvalidRelativeFileVersionEnumException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRelativeFileVersionEnumException =
-  _MatchServiceError codeCommit "InvalidRelativeFileVersionEnumException"
-
-
--- | The Amazon Resource Name (ARN) for the trigger is not valid for the specified destination. The most common reason for this error is that the ARN does not meet the requirements for the service type.
---
---
-_InvalidRepositoryTriggerDestinationARNException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRepositoryTriggerDestinationARNException =
-  _MatchServiceError
-    codeCommit
-    "InvalidRepositoryTriggerDestinationArnException"
-
-
--- | A blob ID is required but was not specified.
---
---
-_BlobIdRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_BlobIdRequiredException =
-  _MatchServiceError codeCommit "BlobIdRequiredException"
-
-
--- | A repository names object is required but was not specified.
---
---
-_RepositoryNamesRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_RepositoryNamesRequiredException =
-  _MatchServiceError codeCommit "RepositoryNamesRequiredException"
-
-
--- | The Amazon Resource Name (ARN) is not valid. Make sure that you have provided the full ARN for the user who initiated the change for the pull request, and then try again.
---
---
-_InvalidActorARNException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidActorARNException =
-  _MatchServiceError codeCommit "InvalidActorArnException"
-
-
--- | The comment ID is not in a valid format. Make sure that you have provided the full comment ID.
---
---
-_InvalidCommentIdException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidCommentIdException =
-  _MatchServiceError codeCommit "InvalidCommentIdException"
-
-
--- | The pull request description is not valid. Descriptions are limited to 1,000 characters in length.
---
---
-_InvalidDescriptionException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidDescriptionException =
-  _MatchServiceError codeCommit "InvalidDescriptionException"
-
-
--- | The specified blob is not valid.
---
---
-_InvalidBlobIdException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidBlobIdException = _MatchServiceError codeCommit "InvalidBlobIdException"
-
-
--- | The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.
---
---
-_PullRequestDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
-_PullRequestDoesNotExistException =
-  _MatchServiceError codeCommit "PullRequestDoesNotExistException"
-
-
--- | The specified sort order is not valid.
---
---
-_InvalidOrderException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidOrderException = _MatchServiceError codeCommit "InvalidOrderException"
-
-
--- | The specified branch does not exist.
---
---
-_BranchDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
-_BranchDoesNotExistException =
-  _MatchServiceError codeCommit "BranchDoesNotExistException"
-
-
--- | The specified branch is the default branch for the repository, and cannot be deleted. To delete this branch, you must first set another branch as the default branch.
---
---
-_DefaultBranchCannotBeDeletedException :: AsError a => Getting (First ServiceError) a ServiceError
-_DefaultBranchCannotBeDeletedException =
-  _MatchServiceError codeCommit "DefaultBranchCannotBeDeletedException"
-
-
--- | The specified path is not valid.
---
---
-_InvalidPathException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidPathException = _MatchServiceError codeCommit "InvalidPathException"
-
-
--- | The filePath for a location cannot be empty or null.
---
---
-_PathRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_PathRequiredException = _MatchServiceError codeCommit "PathRequiredException"
-
-
--- | A name for the trigger is required but was not specified.
---
---
-_RepositoryTriggerNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_RepositoryTriggerNameRequiredException =
-  _MatchServiceError codeCommit "RepositoryTriggerNameRequiredException"
-
-
--- | The specified file mode permission is not valid. For a list of valid file mode permissions, see 'PutFile' .
---
---
-_InvalidFileModeException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidFileModeException =
-  _MatchServiceError codeCommit "InvalidFileModeException"
-
-
--- | The pull request status is not valid. The only valid values are @OPEN@ and @CLOSED@ .
---
---
-_InvalidPullRequestStatusException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidPullRequestStatusException =
-  _MatchServiceError codeCommit "InvalidPullRequestStatusException"
-
-
--- | A parent commit ID is required. To view the full commit ID of a branch in a repository, use 'GetBranch' or a Git command (for example, git pull or git log).
---
---
-_ParentCommitIdRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_ParentCommitIdRequiredException =
-  _MatchServiceError codeCommit "ParentCommitIdRequiredException"
-
-
--- | The source commit specifier is not valid. You must provide a valid branch name, tag, or full commit ID.
---
---
-_InvalidSourceCommitSpecifierException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidSourceCommitSpecifierException =
-  _MatchServiceError codeCommit "InvalidSourceCommitSpecifierException"
-
-
--- | The specified repository does not exist.
---
---
-_RepositoryDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
-_RepositoryDoesNotExistException =
-  _MatchServiceError codeCommit "RepositoryDoesNotExistException"
-
-
--- | The number of branches for the trigger was exceeded.
---
---
-_MaximumBranchesExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_MaximumBranchesExceededException =
-  _MatchServiceError codeCommit "MaximumBranchesExceededException"
-
-
--- | The title of the pull request is not valid. Pull request titles cannot exceed 100 characters in length.
---
---
-_InvalidTitleException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidTitleException = _MatchServiceError codeCommit "InvalidTitleException"
-
-
--- | The comment is too large. Comments are limited to 1,000 characters.
---
---
-_CommentContentSizeLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_CommentContentSizeLimitExceededException =
-  _MatchServiceError codeCommit "CommentContentSizeLimitExceededException"
-
-
--- | The parent commit ID is not valid. The commit ID cannot be empty, and must match the head commit ID for the branch of the repository where you want to add or update a file.
---
---
-_InvalidParentCommitIdException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidParentCommitIdException =
-  _MatchServiceError codeCommit "InvalidParentCommitIdException"
-
-
--- | The pull request event type is not valid.
---
---
-_InvalidPullRequestEventTypeException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidPullRequestEventTypeException =
-  _MatchServiceError codeCommit "InvalidPullRequestEventTypeException"
-
-
--- | The file cannot be added because it is empty. Empty files cannot be added to the repository with this API.
---
---
-_FileContentRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_FileContentRequiredException =
-  _MatchServiceError codeCommit "FileContentRequiredException"
-
-
--- | The source branch and the destination branch for the pull request are the same. You must specify different branches for the source and destination.
---
---
-_SourceAndDestinationAreSameException :: AsError a => Getting (First ServiceError) a ServiceError
-_SourceAndDestinationAreSameException =
-  _MatchServiceError codeCommit "SourceAndDestinationAreSameException"
-
-
--- | The specified path does not exist.
---
---
-_PathDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
-_PathDoesNotExistException =
-  _MatchServiceError codeCommit "PathDoesNotExistException"
-
-
--- | An encryption integrity check failed.
---
---
-_EncryptionIntegrityChecksFailedException :: AsError a => Getting (First ServiceError) a ServiceError
-_EncryptionIntegrityChecksFailedException =
-  _MatchServiceError codeCommit "EncryptionIntegrityChecksFailedException"
-
-
--- | The file could not be added because the provided parent commit ID is not the current tip of the specified branch. To view the full commit ID of the current head of the branch, use 'GetBranch' .
---
---
-_ParentCommitIdOutdatedException :: AsError a => Getting (First ServiceError) a ServiceError
-_ParentCommitIdOutdatedException =
-  _MatchServiceError codeCommit "ParentCommitIdOutdatedException"
-
-
--- | At least one event for the trigger is required but was not specified.
---
---
-_RepositoryTriggerEventsListRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_RepositoryTriggerEventsListRequiredException =
-  _MatchServiceError codeCommit "RepositoryTriggerEventsListRequiredException"
-
-
--- | The comment is empty. You must provide some content for a comment. The content cannot be null.
---
---
-_CommentContentRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_CommentContentRequiredException =
-  _MatchServiceError codeCommit "CommentContentRequiredException"
-
-
--- | The targets for the pull request is not valid or not in a valid format. Targets are a list of target objects. Each target object must contain the full values for the repository name, source branch, and destination branch for a pull request.
---
---
-_InvalidTargetsException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidTargetsException =
-  _MatchServiceError codeCommit "InvalidTargetsException"
-
-
--- | An encryption key could not be accessed.
---
---
-_EncryptionKeyAccessDeniedException :: AsError a => Getting (First ServiceError) a ServiceError
-_EncryptionKeyAccessDeniedException =
-  _MatchServiceError codeCommit "EncryptionKeyAccessDeniedException"
-
-
--- | The specified branch name already exists.
---
---
-_BranchNameExistsException :: AsError a => Getting (First ServiceError) a ServiceError
-_BranchNameExistsException =
-  _MatchServiceError codeCommit "BranchNameExistsException"
-
-
--- | The specified commit is not valid.
---
---
-_InvalidCommitException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidCommitException = _MatchServiceError codeCommit "InvalidCommitException"
-
-
--- | A pull request target is required. It cannot be empty or null. A pull request target must contain the full values for the repository name, source branch, and destination branch for the pull request.
---
---
-_TargetRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_TargetRequiredException =
-  _MatchServiceError codeCommit "TargetRequiredException"
-
-
--- | The destination commit specifier is not valid. You must provide a valid branch name, tag, or full commit ID.
---
---
-_InvalidDestinationCommitSpecifierException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidDestinationCommitSpecifierException =
-  _MatchServiceError codeCommit "InvalidDestinationCommitSpecifierException"
-
-
--- | No comment exists with the provided ID. Verify that you have provided the correct ID, and then try again.
---
---
-_CommentDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
-_CommentDoesNotExistException =
-  _MatchServiceError codeCommit "CommentDoesNotExistException"
-
-
--- | The specified reference is not a supported type.
---
---
-_ReferenceTypeNotSupportedException :: AsError a => Getting (First ServiceError) a ServiceError
-_ReferenceTypeNotSupportedException =
-  _MatchServiceError codeCommit "ReferenceTypeNotSupportedException"
-
-
--- | A file cannot be added to the repository because the specified file name has the same name as a directory in this repository. Either provide another name for the file, or add the file in a directory that does not match the file name.
---
---
-_FileNameConflictsWithDirectoryNameException :: AsError a => Getting (First ServiceError) a ServiceError
-_FileNameConflictsWithDirectoryNameException =
-  _MatchServiceError codeCommit "FileNameConflictsWithDirectoryNameException"
-
-
--- | The file name is not valid because it has exceeded the character limit for file names. File names, including the path to the file, cannot exceed the character limit.
---
---
-_NameLengthExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_NameLengthExceededException =
-  _MatchServiceError codeCommit "NameLengthExceededException"
-
-
--- | The specified sort by value is not valid.
---
---
-_InvalidSortByException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidSortByException = _MatchServiceError codeCommit "InvalidSortByException"
-
-
--- | The encryption key is disabled.
---
---
-_EncryptionKeyDisabledException :: AsError a => Getting (First ServiceError) a ServiceError
-_EncryptionKeyDisabledException =
-  _MatchServiceError codeCommit "EncryptionKeyDisabledException"
-
-
--- | A commit was not specified.
---
---
-_CommitRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_CommitRequiredException =
-  _MatchServiceError codeCommit "CommitRequiredException"
-
-
--- | You cannot create the pull request because the repository has too many open pull requests. The maximum number of open pull requests for a repository is 1,000. Close one or more open pull requests, and then try again.
---
---
-_MaximumOpenPullRequestsExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_MaximumOpenPullRequestsExceededException =
-  _MatchServiceError codeCommit "MaximumOpenPullRequestsExceededException"
-
-
--- | The target for the pull request is not valid. A target must contain the full values for the repository name, source branch, and destination branch for the pull request.
---
---
-_InvalidTargetException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidTargetException = _MatchServiceError codeCommit "InvalidTargetException"
-
-
--- | The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.
---
---
-_InvalidPullRequestIdException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidPullRequestIdException =
-  _MatchServiceError codeCommit "InvalidPullRequestIdException"
-
-
--- | You cannot modify or delete this comment. Only comment authors can modify or delete their comments.
---
---
-_CommentNotCreatedByCallerException :: AsError a => Getting (First ServiceError) a ServiceError
-_CommentNotCreatedByCallerException =
-  _MatchServiceError codeCommit "CommentNotCreatedByCallerException"
-
-
--- | The pull request status update is not valid. The only valid update is from @OPEN@ to @CLOSED@ .
---
---
-_InvalidPullRequestStatusUpdateException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidPullRequestStatusUpdateException =
-  _MatchServiceError codeCommit "InvalidPullRequestStatusUpdateException"
-
-
--- | The specified reference name format is not valid. Reference names must conform to the Git references format, for example refs/heads/master. For more information, see <https://git-scm.com/book/en/v2/Git-Internals-Git-References Git Internals - Git References> or consult your Git documentation.
---
---
-_InvalidReferenceNameException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidReferenceNameException =
-  _MatchServiceError codeCommit "InvalidReferenceNameException"
-
-
--- | The file was not added or updated because the content of the file is exactly the same as the content of that file in the repository and branch that you specified.
---
---
-_SameFileContentException :: AsError a => Getting (First ServiceError) a ServiceError
-_SameFileContentException =
-  _MatchServiceError codeCommit "SameFileContentException"
-
-
--- | A commit ID was not specified.
---
---
-_CommitIdRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_CommitIdRequiredException =
-  _MatchServiceError codeCommit "CommitIdRequiredException"
-
-
--- | The specified commit ID is not valid.
---
---
-_InvalidCommitIdException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidCommitIdException =
-  _MatchServiceError codeCommit "InvalidCommitIdException"
-
-
--- | The tip of the source branch in the destination repository does not match the tip of the source branch specified in your request. The pull request might have been updated. Make sure that you have the latest changes.
---
---
-_TipOfSourceReferenceIsDifferentException :: AsError a => Getting (First ServiceError) a ServiceError
-_TipOfSourceReferenceIsDifferentException =
-  _MatchServiceError codeCommit "TipOfSourceReferenceIsDifferentException"
-
-
--- | A destination ARN for the target service for the trigger is required but was not specified.
---
---
-_RepositoryTriggerDestinationARNRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_RepositoryTriggerDestinationARNRequiredException =
-  _MatchServiceError
-    codeCommit
-    "RepositoryTriggerDestinationArnRequiredException"
-
-
--- | The client request token is not valid.
---
---
-_InvalidClientRequestTokenException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidClientRequestTokenException =
-  _MatchServiceError codeCommit "InvalidClientRequestTokenException"
-
-
--- | The specified commit does not exist or no commit was specified, and the specified repository has no default branch.
---
---
-_CommitDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
-_CommitDoesNotExistException =
-  _MatchServiceError codeCommit "CommitDoesNotExistException"
-
-
--- | At least one branch name is required but was not specified in the trigger configuration.
---
---
-_RepositoryTriggerBranchNameListRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_RepositoryTriggerBranchNameListRequiredException =
-  _MatchServiceError
-    codeCommit
-    "RepositoryTriggerBranchNameListRequiredException"
-
-
--- | A client request token is required. A client request token is an unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
---
---
-_ClientRequestTokenRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_ClientRequestTokenRequiredException =
-  _MatchServiceError codeCommit "ClientRequestTokenRequiredException"
-
-
--- | The specified merge option is not valid. The only valid value is FAST_FORWARD_MERGE.
---
---
-_InvalidMergeOptionException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidMergeOptionException =
-  _MatchServiceError codeCommit "InvalidMergeOptionException"
-
-
--- | The comment ID is missing or null. A comment ID is required.
---
---
-_CommentIdRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_CommentIdRequiredException =
-  _MatchServiceError codeCommit "CommentIdRequiredException"
-
-
--- | The specified number of maximum results is not valid.
---
---
-_InvalidMaxResultsException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidMaxResultsException =
-  _MatchServiceError codeCommit "InvalidMaxResultsException"
-
-
--- | The specified file exceeds the file size limit for AWS CodeCommit. For more information about limits in AWS CodeCommit, see <http://docs.aws.amazon.com/codecommit/latest/userguide/limits.html AWS CodeCommit User Guide> .
---
---
-_FileTooLargeException :: AsError a => Getting (First ServiceError) a ServiceError
-_FileTooLargeException = _MatchServiceError codeCommit "FileTooLargeException"
-
-
--- | The specified commit ID does not exist.
---
---
-_CommitIdDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
-_CommitIdDoesNotExistException =
-  _MatchServiceError codeCommit "CommitIdDoesNotExistException"
-
-
--- | You cannot include more than one repository in a pull request. Make sure you have specified only one repository name in your request, and then try again.
---
---
-_MultipleRepositoriesInPullRequestException :: AsError a => Getting (First ServiceError) a ServiceError
-_MultipleRepositoriesInPullRequestException =
-  _MatchServiceError codeCommit "MultipleRepositoriesInPullRequestException"
-
-
--- | The file cannot be added because it is too large. The maximum file size that can be added using PutFile is 6 MB. For files larger than 6 MB but smaller than 2 GB, add them using a Git client.
---
---
-_FileContentSizeLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_FileContentSizeLimitExceededException =
-  _MatchServiceError codeCommit "FileContentSizeLimitExceededException"
-
-
--- | The name of the trigger is not valid.
---
---
-_InvalidRepositoryTriggerNameException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRepositoryTriggerNameException =
-  _MatchServiceError codeCommit "InvalidRepositoryTriggerNameException"
-
-
--- | A repository name is required but was not specified.
---
---
-_RepositoryNameRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_RepositoryNameRequiredException =
-  _MatchServiceError codeCommit "RepositoryNameRequiredException"
-
-
--- | A repository resource limit was exceeded.
---
---
-_RepositoryLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_RepositoryLimitExceededException =
-  _MatchServiceError codeCommit "RepositoryLimitExceededException"
-
-
--- | One or more events specified for the trigger is not valid. Check to make sure that all events specified match the requirements for allowed events.
---
---
-_InvalidRepositoryTriggerEventsException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRepositoryTriggerEventsException =
-  _MatchServiceError codeCommit "InvalidRepositoryTriggerEventsException"
-
-
--- | The specified branch name is not valid because it is a tag name. Type the name of a current branch in the repository. For a list of valid branch names, use 'ListBranches' .
---
---
-_BranchNameIsTagNameException :: AsError a => Getting (First ServiceError) a ServiceError
-_BranchNameIsTagNameException =
-  _MatchServiceError codeCommit "BranchNameIsTagNameException"
-
-
--- | At least one specified repository name is not valid.
---
---
-_InvalidRepositoryNameException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRepositoryNameException =
-  _MatchServiceError codeCommit "InvalidRepositoryNameException"
-
-
--- | The Amazon Resource Name (ARN) is not valid. Make sure that you have provided the full ARN for the author of the pull request, and then try again.
---
---
-_InvalidAuthorARNException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidAuthorARNException =
-  _MatchServiceError codeCommit "InvalidAuthorArnException"
-
-
--- | A pull request status is required, but none was provided.
---
---
-_PullRequestStatusRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_PullRequestStatusRequiredException =
-  _MatchServiceError codeCommit "PullRequestStatusRequiredException"
-
-
--- | The repository does not contain any pull requests with that pull request ID. Check to make sure you have provided the correct repository name for the pull request.
---
---
-_RepositoryNotAssociatedWithPullRequestException :: AsError a => Getting (First ServiceError) a ServiceError
-_RepositoryNotAssociatedWithPullRequestException =
-  _MatchServiceError
-    codeCommit
-    "RepositoryNotAssociatedWithPullRequestException"
-
-
--- | A pull request title is required. It cannot be empty or null.
---
---
-_TitleRequiredException :: AsError a => Getting (First ServiceError) a ServiceError
-_TitleRequiredException = _MatchServiceError codeCommit "TitleRequiredException"
-
-
--- | The position is not valid. Make sure that the line number exists in the version of the file you want to comment on.
---
---
-_InvalidFilePositionException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidFilePositionException =
-  _MatchServiceError codeCommit "InvalidFilePositionException"
-
-
--- | This comment has already been deleted. You cannot edit or delete a deleted comment.
---
---
-_CommentDeletedException :: AsError a => Getting (First ServiceError) a ServiceError
-_CommentDeletedException =
-  _MatchServiceError codeCommit "CommentDeletedException"
-
-
--- | The parent commit ID is not valid. The specified parent commit ID does not exist in the specified branch of the repository.
---
---
-_ParentCommitDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
-_ParentCommitDoesNotExistException =
-  _MatchServiceError codeCommit "ParentCommitDoesNotExistException"
-
-
--- | The specified Amazon Resource Name (ARN) does not exist in the AWS account.
---
---
-_AuthorDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
-_AuthorDoesNotExistException =
-  _MatchServiceError codeCommit "AuthorDoesNotExistException"
-
diff --git a/gen/Network/AWS/CodeCommit/Types/Product.hs b/gen/Network/AWS/CodeCommit/Types/Product.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/Types/Product.hs
+++ /dev/null
@@ -1,1511 +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.CodeCommit.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.CodeCommit.Types.Product where
-
-import Network.AWS.CodeCommit.Types.Sum
-import Network.AWS.Lens
-import Network.AWS.Prelude
-
--- | Returns information about a specific Git blob object.
---
---
---
--- /See:/ 'blobMetadata' smart constructor.
-data BlobMetadata = BlobMetadata'
-  { _bmPath   :: !(Maybe Text)
-  , _bmMode   :: !(Maybe Text)
-  , _bmBlobId :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BlobMetadata' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bmPath' - The path to the blob and any associated file name, if any.
---
--- * 'bmMode' - The file mode permissions of the blob. File mode permission codes include:     * @100644@ indicates read/write     * @100755@ indicates read/write/execute     * @160000@ indicates a submodule     * @120000@ indicates a symlink
---
--- * 'bmBlobId' - The full ID of the blob.
-blobMetadata
-    :: BlobMetadata
-blobMetadata =
-  BlobMetadata' {_bmPath = Nothing, _bmMode = Nothing, _bmBlobId = Nothing}
-
-
--- | The path to the blob and any associated file name, if any.
-bmPath :: Lens' BlobMetadata (Maybe Text)
-bmPath = lens _bmPath (\ s a -> s{_bmPath = a})
-
--- | The file mode permissions of the blob. File mode permission codes include:     * @100644@ indicates read/write     * @100755@ indicates read/write/execute     * @160000@ indicates a submodule     * @120000@ indicates a symlink
-bmMode :: Lens' BlobMetadata (Maybe Text)
-bmMode = lens _bmMode (\ s a -> s{_bmMode = a})
-
--- | The full ID of the blob.
-bmBlobId :: Lens' BlobMetadata (Maybe Text)
-bmBlobId = lens _bmBlobId (\ s a -> s{_bmBlobId = a})
-
-instance FromJSON BlobMetadata where
-        parseJSON
-          = withObject "BlobMetadata"
-              (\ x ->
-                 BlobMetadata' <$>
-                   (x .:? "path") <*> (x .:? "mode") <*>
-                     (x .:? "blobId"))
-
-instance Hashable BlobMetadata where
-
-instance NFData BlobMetadata where
-
--- | Returns information about a branch.
---
---
---
--- /See:/ 'branchInfo' smart constructor.
-data BranchInfo = BranchInfo'
-  { _biCommitId   :: !(Maybe Text)
-  , _biBranchName :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BranchInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'biCommitId' - The ID of the last commit made to the branch.
---
--- * 'biBranchName' - The name of the branch.
-branchInfo
-    :: BranchInfo
-branchInfo = BranchInfo' {_biCommitId = Nothing, _biBranchName = Nothing}
-
-
--- | The ID of the last commit made to the branch.
-biCommitId :: Lens' BranchInfo (Maybe Text)
-biCommitId = lens _biCommitId (\ s a -> s{_biCommitId = a})
-
--- | The name of the branch.
-biBranchName :: Lens' BranchInfo (Maybe Text)
-biBranchName = lens _biBranchName (\ s a -> s{_biBranchName = a})
-
-instance FromJSON BranchInfo where
-        parseJSON
-          = withObject "BranchInfo"
-              (\ x ->
-                 BranchInfo' <$>
-                   (x .:? "commitId") <*> (x .:? "branchName"))
-
-instance Hashable BranchInfo where
-
-instance NFData BranchInfo where
-
--- | Returns information about a specific comment.
---
---
---
--- /See:/ 'comment' smart constructor.
-data Comment = Comment'
-  { _cLastModifiedDate   :: !(Maybe POSIX)
-  , _cAuthorARN          :: !(Maybe Text)
-  , _cContent            :: !(Maybe Text)
-  , _cCreationDate       :: !(Maybe POSIX)
-  , _cDeleted            :: !(Maybe Bool)
-  , _cClientRequestToken :: !(Maybe Text)
-  , _cCommentId          :: !(Maybe Text)
-  , _cInReplyTo          :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Comment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cLastModifiedDate' - The date and time the comment was most recently modified, in timestamp format.
---
--- * 'cAuthorARN' - The Amazon Resource Name (ARN) of the person who posted the comment.
---
--- * 'cContent' - The content of the comment.
---
--- * 'cCreationDate' - The date and time the comment was created, in timestamp format.
---
--- * 'cDeleted' - A Boolean value indicating whether the comment has been deleted.
---
--- * 'cClientRequestToken' - A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
---
--- * 'cCommentId' - The system-generated comment ID.
---
--- * 'cInReplyTo' - The ID of the comment for which this comment is a reply, if any.
-comment
-    :: Comment
-comment =
-  Comment'
-    { _cLastModifiedDate = Nothing
-    , _cAuthorARN = Nothing
-    , _cContent = Nothing
-    , _cCreationDate = Nothing
-    , _cDeleted = Nothing
-    , _cClientRequestToken = Nothing
-    , _cCommentId = Nothing
-    , _cInReplyTo = Nothing
-    }
-
-
--- | The date and time the comment was most recently modified, in timestamp format.
-cLastModifiedDate :: Lens' Comment (Maybe UTCTime)
-cLastModifiedDate = lens _cLastModifiedDate (\ s a -> s{_cLastModifiedDate = a}) . mapping _Time
-
--- | The Amazon Resource Name (ARN) of the person who posted the comment.
-cAuthorARN :: Lens' Comment (Maybe Text)
-cAuthorARN = lens _cAuthorARN (\ s a -> s{_cAuthorARN = a})
-
--- | The content of the comment.
-cContent :: Lens' Comment (Maybe Text)
-cContent = lens _cContent (\ s a -> s{_cContent = a})
-
--- | The date and time the comment was created, in timestamp format.
-cCreationDate :: Lens' Comment (Maybe UTCTime)
-cCreationDate = lens _cCreationDate (\ s a -> s{_cCreationDate = a}) . mapping _Time
-
--- | A Boolean value indicating whether the comment has been deleted.
-cDeleted :: Lens' Comment (Maybe Bool)
-cDeleted = lens _cDeleted (\ s a -> s{_cDeleted = a})
-
--- | A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
-cClientRequestToken :: Lens' Comment (Maybe Text)
-cClientRequestToken = lens _cClientRequestToken (\ s a -> s{_cClientRequestToken = a})
-
--- | The system-generated comment ID.
-cCommentId :: Lens' Comment (Maybe Text)
-cCommentId = lens _cCommentId (\ s a -> s{_cCommentId = a})
-
--- | The ID of the comment for which this comment is a reply, if any.
-cInReplyTo :: Lens' Comment (Maybe Text)
-cInReplyTo = lens _cInReplyTo (\ s a -> s{_cInReplyTo = a})
-
-instance FromJSON Comment where
-        parseJSON
-          = withObject "Comment"
-              (\ x ->
-                 Comment' <$>
-                   (x .:? "lastModifiedDate") <*> (x .:? "authorArn")
-                     <*> (x .:? "content")
-                     <*> (x .:? "creationDate")
-                     <*> (x .:? "deleted")
-                     <*> (x .:? "clientRequestToken")
-                     <*> (x .:? "commentId")
-                     <*> (x .:? "inReplyTo"))
-
-instance Hashable Comment where
-
-instance NFData Comment where
-
--- | Returns information about comments on the comparison between two commits.
---
---
---
--- /See:/ 'commentsForComparedCommit' smart constructor.
-data CommentsForComparedCommit = CommentsForComparedCommit'
-  { _cfccBeforeBlobId   :: !(Maybe Text)
-  , _cfccLocation       :: !(Maybe Location)
-  , _cfccAfterCommitId  :: !(Maybe Text)
-  , _cfccAfterBlobId    :: !(Maybe Text)
-  , _cfccBeforeCommitId :: !(Maybe Text)
-  , _cfccRepositoryName :: !(Maybe Text)
-  , _cfccComments       :: !(Maybe [Comment])
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentsForComparedCommit' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cfccBeforeBlobId' - The full blob ID of the commit used to establish the 'before' of the comparison.
---
--- * 'cfccLocation' - Location information about the comment on the comparison, including the file name, line number, and whether the version of the file where the comment was made is 'BEFORE' or 'AFTER'.
---
--- * 'cfccAfterCommitId' - The full commit ID of the commit used to establish the 'after' of the comparison.
---
--- * 'cfccAfterBlobId' - The full blob ID of the commit used to establish the 'after' of the comparison.
---
--- * 'cfccBeforeCommitId' - The full commit ID of the commit used to establish the 'before' of the comparison.
---
--- * 'cfccRepositoryName' - The name of the repository that contains the compared commits.
---
--- * 'cfccComments' - An array of comment objects. Each comment object contains information about a comment on the comparison between commits.
-commentsForComparedCommit
-    :: CommentsForComparedCommit
-commentsForComparedCommit =
-  CommentsForComparedCommit'
-    { _cfccBeforeBlobId = Nothing
-    , _cfccLocation = Nothing
-    , _cfccAfterCommitId = Nothing
-    , _cfccAfterBlobId = Nothing
-    , _cfccBeforeCommitId = Nothing
-    , _cfccRepositoryName = Nothing
-    , _cfccComments = Nothing
-    }
-
-
--- | The full blob ID of the commit used to establish the 'before' of the comparison.
-cfccBeforeBlobId :: Lens' CommentsForComparedCommit (Maybe Text)
-cfccBeforeBlobId = lens _cfccBeforeBlobId (\ s a -> s{_cfccBeforeBlobId = a})
-
--- | Location information about the comment on the comparison, including the file name, line number, and whether the version of the file where the comment was made is 'BEFORE' or 'AFTER'.
-cfccLocation :: Lens' CommentsForComparedCommit (Maybe Location)
-cfccLocation = lens _cfccLocation (\ s a -> s{_cfccLocation = a})
-
--- | The full commit ID of the commit used to establish the 'after' of the comparison.
-cfccAfterCommitId :: Lens' CommentsForComparedCommit (Maybe Text)
-cfccAfterCommitId = lens _cfccAfterCommitId (\ s a -> s{_cfccAfterCommitId = a})
-
--- | The full blob ID of the commit used to establish the 'after' of the comparison.
-cfccAfterBlobId :: Lens' CommentsForComparedCommit (Maybe Text)
-cfccAfterBlobId = lens _cfccAfterBlobId (\ s a -> s{_cfccAfterBlobId = a})
-
--- | The full commit ID of the commit used to establish the 'before' of the comparison.
-cfccBeforeCommitId :: Lens' CommentsForComparedCommit (Maybe Text)
-cfccBeforeCommitId = lens _cfccBeforeCommitId (\ s a -> s{_cfccBeforeCommitId = a})
-
--- | The name of the repository that contains the compared commits.
-cfccRepositoryName :: Lens' CommentsForComparedCommit (Maybe Text)
-cfccRepositoryName = lens _cfccRepositoryName (\ s a -> s{_cfccRepositoryName = a})
-
--- | An array of comment objects. Each comment object contains information about a comment on the comparison between commits.
-cfccComments :: Lens' CommentsForComparedCommit [Comment]
-cfccComments = lens _cfccComments (\ s a -> s{_cfccComments = a}) . _Default . _Coerce
-
-instance FromJSON CommentsForComparedCommit where
-        parseJSON
-          = withObject "CommentsForComparedCommit"
-              (\ x ->
-                 CommentsForComparedCommit' <$>
-                   (x .:? "beforeBlobId") <*> (x .:? "location") <*>
-                     (x .:? "afterCommitId")
-                     <*> (x .:? "afterBlobId")
-                     <*> (x .:? "beforeCommitId")
-                     <*> (x .:? "repositoryName")
-                     <*> (x .:? "comments" .!= mempty))
-
-instance Hashable CommentsForComparedCommit where
-
-instance NFData CommentsForComparedCommit where
-
--- | Returns information about comments on a pull request.
---
---
---
--- /See:/ 'commentsForPullRequest' smart constructor.
-data CommentsForPullRequest = CommentsForPullRequest'
-  { _cfprBeforeBlobId   :: !(Maybe Text)
-  , _cfprLocation       :: !(Maybe Location)
-  , _cfprAfterCommitId  :: !(Maybe Text)
-  , _cfprPullRequestId  :: !(Maybe Text)
-  , _cfprAfterBlobId    :: !(Maybe Text)
-  , _cfprBeforeCommitId :: !(Maybe Text)
-  , _cfprRepositoryName :: !(Maybe Text)
-  , _cfprComments       :: !(Maybe [Comment])
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommentsForPullRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cfprBeforeBlobId' - The full blob ID of the file on which you want to comment on the destination commit.
---
--- * 'cfprLocation' - Location information about the comment on the pull request, including the file name, line number, and whether the version of the file where the comment was made is 'BEFORE' (destination branch) or 'AFTER' (source branch).
---
--- * 'cfprAfterCommitId' - he full commit ID of the commit that was the tip of the source branch at the time the comment was made.
---
--- * 'cfprPullRequestId' - The system-generated ID of the pull request.
---
--- * 'cfprAfterBlobId' - The full blob ID of the file on which you want to comment on the source commit.
---
--- * 'cfprBeforeCommitId' - The full commit ID of the commit that was the tip of the destination branch when the pull request was created. This commit will be superceded by the after commit in the source branch when and if you merge the source branch into the destination branch.
---
--- * 'cfprRepositoryName' - The name of the repository that contains the pull request.
---
--- * 'cfprComments' - An array of comment objects. Each comment object contains information about a comment on the pull request.
-commentsForPullRequest
-    :: CommentsForPullRequest
-commentsForPullRequest =
-  CommentsForPullRequest'
-    { _cfprBeforeBlobId = Nothing
-    , _cfprLocation = Nothing
-    , _cfprAfterCommitId = Nothing
-    , _cfprPullRequestId = Nothing
-    , _cfprAfterBlobId = Nothing
-    , _cfprBeforeCommitId = Nothing
-    , _cfprRepositoryName = Nothing
-    , _cfprComments = Nothing
-    }
-
-
--- | The full blob ID of the file on which you want to comment on the destination commit.
-cfprBeforeBlobId :: Lens' CommentsForPullRequest (Maybe Text)
-cfprBeforeBlobId = lens _cfprBeforeBlobId (\ s a -> s{_cfprBeforeBlobId = a})
-
--- | Location information about the comment on the pull request, including the file name, line number, and whether the version of the file where the comment was made is 'BEFORE' (destination branch) or 'AFTER' (source branch).
-cfprLocation :: Lens' CommentsForPullRequest (Maybe Location)
-cfprLocation = lens _cfprLocation (\ s a -> s{_cfprLocation = a})
-
--- | he full commit ID of the commit that was the tip of the source branch at the time the comment was made.
-cfprAfterCommitId :: Lens' CommentsForPullRequest (Maybe Text)
-cfprAfterCommitId = lens _cfprAfterCommitId (\ s a -> s{_cfprAfterCommitId = a})
-
--- | The system-generated ID of the pull request.
-cfprPullRequestId :: Lens' CommentsForPullRequest (Maybe Text)
-cfprPullRequestId = lens _cfprPullRequestId (\ s a -> s{_cfprPullRequestId = a})
-
--- | The full blob ID of the file on which you want to comment on the source commit.
-cfprAfterBlobId :: Lens' CommentsForPullRequest (Maybe Text)
-cfprAfterBlobId = lens _cfprAfterBlobId (\ s a -> s{_cfprAfterBlobId = a})
-
--- | The full commit ID of the commit that was the tip of the destination branch when the pull request was created. This commit will be superceded by the after commit in the source branch when and if you merge the source branch into the destination branch.
-cfprBeforeCommitId :: Lens' CommentsForPullRequest (Maybe Text)
-cfprBeforeCommitId = lens _cfprBeforeCommitId (\ s a -> s{_cfprBeforeCommitId = a})
-
--- | The name of the repository that contains the pull request.
-cfprRepositoryName :: Lens' CommentsForPullRequest (Maybe Text)
-cfprRepositoryName = lens _cfprRepositoryName (\ s a -> s{_cfprRepositoryName = a})
-
--- | An array of comment objects. Each comment object contains information about a comment on the pull request.
-cfprComments :: Lens' CommentsForPullRequest [Comment]
-cfprComments = lens _cfprComments (\ s a -> s{_cfprComments = a}) . _Default . _Coerce
-
-instance FromJSON CommentsForPullRequest where
-        parseJSON
-          = withObject "CommentsForPullRequest"
-              (\ x ->
-                 CommentsForPullRequest' <$>
-                   (x .:? "beforeBlobId") <*> (x .:? "location") <*>
-                     (x .:? "afterCommitId")
-                     <*> (x .:? "pullRequestId")
-                     <*> (x .:? "afterBlobId")
-                     <*> (x .:? "beforeCommitId")
-                     <*> (x .:? "repositoryName")
-                     <*> (x .:? "comments" .!= mempty))
-
-instance Hashable CommentsForPullRequest where
-
-instance NFData CommentsForPullRequest where
-
--- | Returns information about a specific commit.
---
---
---
--- /See:/ 'commit' smart constructor.
-data Commit = Commit'
-  { _cCommitId       :: !(Maybe Text)
-  , _cCommitter      :: !(Maybe UserInfo)
-  , _cTreeId         :: !(Maybe Text)
-  , _cAdditionalData :: !(Maybe Text)
-  , _cParents        :: !(Maybe [Text])
-  , _cAuthor         :: !(Maybe UserInfo)
-  , _cMessage        :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Commit' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cCommitId' - The full SHA of the specified commit.
---
--- * 'cCommitter' - Information about the person who committed the specified commit, also known as the committer. Information includes the date in timestamp format with GMT offset, the name of the committer, and the email address for the committer, as configured in Git. For more information about the difference between an author and a committer in Git, see <http://git-scm.com/book/ch2-3.html Viewing the Commit History> in Pro Git by Scott Chacon and Ben Straub.
---
--- * 'cTreeId' - Tree information for the specified commit.
---
--- * 'cAdditionalData' - Any additional data associated with the specified commit.
---
--- * 'cParents' - A list of parent commits for the specified commit. Each parent commit ID is the full commit ID.
---
--- * 'cAuthor' - Information about the author of the specified commit. Information includes the date in timestamp format with GMT offset, the name of the author, and the email address for the author, as configured in Git.
---
--- * 'cMessage' - The commit message associated with the specified commit.
-commit
-    :: Commit
-commit =
-  Commit'
-    { _cCommitId = Nothing
-    , _cCommitter = Nothing
-    , _cTreeId = Nothing
-    , _cAdditionalData = Nothing
-    , _cParents = Nothing
-    , _cAuthor = Nothing
-    , _cMessage = Nothing
-    }
-
-
--- | The full SHA of the specified commit.
-cCommitId :: Lens' Commit (Maybe Text)
-cCommitId = lens _cCommitId (\ s a -> s{_cCommitId = a})
-
--- | Information about the person who committed the specified commit, also known as the committer. Information includes the date in timestamp format with GMT offset, the name of the committer, and the email address for the committer, as configured in Git. For more information about the difference between an author and a committer in Git, see <http://git-scm.com/book/ch2-3.html Viewing the Commit History> in Pro Git by Scott Chacon and Ben Straub.
-cCommitter :: Lens' Commit (Maybe UserInfo)
-cCommitter = lens _cCommitter (\ s a -> s{_cCommitter = a})
-
--- | Tree information for the specified commit.
-cTreeId :: Lens' Commit (Maybe Text)
-cTreeId = lens _cTreeId (\ s a -> s{_cTreeId = a})
-
--- | Any additional data associated with the specified commit.
-cAdditionalData :: Lens' Commit (Maybe Text)
-cAdditionalData = lens _cAdditionalData (\ s a -> s{_cAdditionalData = a})
-
--- | A list of parent commits for the specified commit. Each parent commit ID is the full commit ID.
-cParents :: Lens' Commit [Text]
-cParents = lens _cParents (\ s a -> s{_cParents = a}) . _Default . _Coerce
-
--- | Information about the author of the specified commit. Information includes the date in timestamp format with GMT offset, the name of the author, and the email address for the author, as configured in Git.
-cAuthor :: Lens' Commit (Maybe UserInfo)
-cAuthor = lens _cAuthor (\ s a -> s{_cAuthor = a})
-
--- | The commit message associated with the specified commit.
-cMessage :: Lens' Commit (Maybe Text)
-cMessage = lens _cMessage (\ s a -> s{_cMessage = a})
-
-instance FromJSON Commit where
-        parseJSON
-          = withObject "Commit"
-              (\ x ->
-                 Commit' <$>
-                   (x .:? "commitId") <*> (x .:? "committer") <*>
-                     (x .:? "treeId")
-                     <*> (x .:? "additionalData")
-                     <*> (x .:? "parents" .!= mempty)
-                     <*> (x .:? "author")
-                     <*> (x .:? "message"))
-
-instance Hashable Commit where
-
-instance NFData Commit where
-
--- | Returns information about a set of differences for a commit specifier.
---
---
---
--- /See:/ 'difference' smart constructor.
-data Difference = Difference'
-  { _dAfterBlob  :: !(Maybe BlobMetadata)
-  , _dBeforeBlob :: !(Maybe BlobMetadata)
-  , _dChangeType :: !(Maybe ChangeTypeEnum)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Difference' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dAfterBlob' - Information about an @afterBlob@ data type object, including the ID, the file mode permission code, and the path.
---
--- * 'dBeforeBlob' - Information about a @beforeBlob@ data type object, including the ID, the file mode permission code, and the path.
---
--- * 'dChangeType' - Whether the change type of the difference is an addition (A), deletion (D), or modification (M).
-difference
-    :: Difference
-difference =
-  Difference'
-    {_dAfterBlob = Nothing, _dBeforeBlob = Nothing, _dChangeType = Nothing}
-
-
--- | Information about an @afterBlob@ data type object, including the ID, the file mode permission code, and the path.
-dAfterBlob :: Lens' Difference (Maybe BlobMetadata)
-dAfterBlob = lens _dAfterBlob (\ s a -> s{_dAfterBlob = a})
-
--- | Information about a @beforeBlob@ data type object, including the ID, the file mode permission code, and the path.
-dBeforeBlob :: Lens' Difference (Maybe BlobMetadata)
-dBeforeBlob = lens _dBeforeBlob (\ s a -> s{_dBeforeBlob = a})
-
--- | Whether the change type of the difference is an addition (A), deletion (D), or modification (M).
-dChangeType :: Lens' Difference (Maybe ChangeTypeEnum)
-dChangeType = lens _dChangeType (\ s a -> s{_dChangeType = a})
-
-instance FromJSON Difference where
-        parseJSON
-          = withObject "Difference"
-              (\ x ->
-                 Difference' <$>
-                   (x .:? "afterBlob") <*> (x .:? "beforeBlob") <*>
-                     (x .:? "changeType"))
-
-instance Hashable Difference where
-
-instance NFData Difference where
-
--- | Returns information about the location of a change or comment in the comparison between two commits or a pull request.
---
---
---
--- /See:/ 'location' smart constructor.
-data Location = Location'
-  { _lRelativeFileVersion :: !(Maybe RelativeFileVersionEnum)
-  , _lFilePath            :: !(Maybe Text)
-  , _lFilePosition        :: !(Maybe Integer)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Location' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lRelativeFileVersion' - In a comparison of commits or a pull request, whether the change is in the 'before' or 'after' of that comparison.
---
--- * 'lFilePath' - The name of the file being compared, including its extension and subdirectory, if any.
---
--- * 'lFilePosition' - The position of a change within a compared file, in line number format.
-location
-    :: Location
-location =
-  Location'
-    { _lRelativeFileVersion = Nothing
-    , _lFilePath = Nothing
-    , _lFilePosition = Nothing
-    }
-
-
--- | In a comparison of commits or a pull request, whether the change is in the 'before' or 'after' of that comparison.
-lRelativeFileVersion :: Lens' Location (Maybe RelativeFileVersionEnum)
-lRelativeFileVersion = lens _lRelativeFileVersion (\ s a -> s{_lRelativeFileVersion = a})
-
--- | The name of the file being compared, including its extension and subdirectory, if any.
-lFilePath :: Lens' Location (Maybe Text)
-lFilePath = lens _lFilePath (\ s a -> s{_lFilePath = a})
-
--- | The position of a change within a compared file, in line number format.
-lFilePosition :: Lens' Location (Maybe Integer)
-lFilePosition = lens _lFilePosition (\ s a -> s{_lFilePosition = a})
-
-instance FromJSON Location where
-        parseJSON
-          = withObject "Location"
-              (\ x ->
-                 Location' <$>
-                   (x .:? "relativeFileVersion") <*> (x .:? "filePath")
-                     <*> (x .:? "filePosition"))
-
-instance Hashable Location where
-
-instance NFData Location where
-
-instance ToJSON Location where
-        toJSON Location'{..}
-          = object
-              (catMaybes
-                 [("relativeFileVersion" .=) <$>
-                    _lRelativeFileVersion,
-                  ("filePath" .=) <$> _lFilePath,
-                  ("filePosition" .=) <$> _lFilePosition])
-
--- | Returns information about a merge or potential merge between a source reference and a destination reference in a pull request.
---
---
---
--- /See:/ 'mergeMetadata' smart constructor.
-data MergeMetadata = MergeMetadata'
-  { _mmMergedBy :: !(Maybe Text)
-  , _mmIsMerged :: !(Maybe Bool)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MergeMetadata' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mmMergedBy' - The Amazon Resource Name (ARN) of the user who merged the branches.
---
--- * 'mmIsMerged' - A Boolean value indicating whether the merge has been made.
-mergeMetadata
-    :: MergeMetadata
-mergeMetadata = MergeMetadata' {_mmMergedBy = Nothing, _mmIsMerged = Nothing}
-
-
--- | The Amazon Resource Name (ARN) of the user who merged the branches.
-mmMergedBy :: Lens' MergeMetadata (Maybe Text)
-mmMergedBy = lens _mmMergedBy (\ s a -> s{_mmMergedBy = a})
-
--- | A Boolean value indicating whether the merge has been made.
-mmIsMerged :: Lens' MergeMetadata (Maybe Bool)
-mmIsMerged = lens _mmIsMerged (\ s a -> s{_mmIsMerged = a})
-
-instance FromJSON MergeMetadata where
-        parseJSON
-          = withObject "MergeMetadata"
-              (\ x ->
-                 MergeMetadata' <$>
-                   (x .:? "mergedBy") <*> (x .:? "isMerged"))
-
-instance Hashable MergeMetadata where
-
-instance NFData MergeMetadata where
-
--- | Returns information about a pull request.
---
---
---
--- /See:/ 'pullRequest' smart constructor.
-data PullRequest = PullRequest'
-  { _prAuthorARN          :: !(Maybe Text)
-  , _prPullRequestId      :: !(Maybe Text)
-  , _prCreationDate       :: !(Maybe POSIX)
-  , _prPullRequestStatus  :: !(Maybe PullRequestStatusEnum)
-  , _prTitle              :: !(Maybe Text)
-  , _prClientRequestToken :: !(Maybe Text)
-  , _prLastActivityDate   :: !(Maybe POSIX)
-  , _prPullRequestTargets :: !(Maybe [PullRequestTarget])
-  , _prDescription        :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PullRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'prAuthorARN' - The Amazon Resource Name (ARN) of the user who created the pull request.
---
--- * 'prPullRequestId' - The system-generated ID of the pull request.
---
--- * 'prCreationDate' - The date and time the pull request was originally created, in timestamp format.
---
--- * 'prPullRequestStatus' - The status of the pull request. Pull request status can only change from @OPEN@ to @CLOSED@ .
---
--- * 'prTitle' - The user-defined title of the pull request. This title is displayed in the list of pull requests to other users of the repository.
---
--- * 'prClientRequestToken' - A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
---
--- * 'prLastActivityDate' - The day and time of the last user or system activity on the pull request, in timestamp format.
---
--- * 'prPullRequestTargets' - The targets of the pull request, including the source branch and destination branch for the pull request.
---
--- * 'prDescription' - The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request.
-pullRequest
-    :: PullRequest
-pullRequest =
-  PullRequest'
-    { _prAuthorARN = Nothing
-    , _prPullRequestId = Nothing
-    , _prCreationDate = Nothing
-    , _prPullRequestStatus = Nothing
-    , _prTitle = Nothing
-    , _prClientRequestToken = Nothing
-    , _prLastActivityDate = Nothing
-    , _prPullRequestTargets = Nothing
-    , _prDescription = Nothing
-    }
-
-
--- | The Amazon Resource Name (ARN) of the user who created the pull request.
-prAuthorARN :: Lens' PullRequest (Maybe Text)
-prAuthorARN = lens _prAuthorARN (\ s a -> s{_prAuthorARN = a})
-
--- | The system-generated ID of the pull request.
-prPullRequestId :: Lens' PullRequest (Maybe Text)
-prPullRequestId = lens _prPullRequestId (\ s a -> s{_prPullRequestId = a})
-
--- | The date and time the pull request was originally created, in timestamp format.
-prCreationDate :: Lens' PullRequest (Maybe UTCTime)
-prCreationDate = lens _prCreationDate (\ s a -> s{_prCreationDate = a}) . mapping _Time
-
--- | The status of the pull request. Pull request status can only change from @OPEN@ to @CLOSED@ .
-prPullRequestStatus :: Lens' PullRequest (Maybe PullRequestStatusEnum)
-prPullRequestStatus = lens _prPullRequestStatus (\ s a -> s{_prPullRequestStatus = a})
-
--- | The user-defined title of the pull request. This title is displayed in the list of pull requests to other users of the repository.
-prTitle :: Lens' PullRequest (Maybe Text)
-prTitle = lens _prTitle (\ s a -> s{_prTitle = a})
-
--- | A unique, client-generated idempotency token that when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request will return information about the initial request that used that token.
-prClientRequestToken :: Lens' PullRequest (Maybe Text)
-prClientRequestToken = lens _prClientRequestToken (\ s a -> s{_prClientRequestToken = a})
-
--- | The day and time of the last user or system activity on the pull request, in timestamp format.
-prLastActivityDate :: Lens' PullRequest (Maybe UTCTime)
-prLastActivityDate = lens _prLastActivityDate (\ s a -> s{_prLastActivityDate = a}) . mapping _Time
-
--- | The targets of the pull request, including the source branch and destination branch for the pull request.
-prPullRequestTargets :: Lens' PullRequest [PullRequestTarget]
-prPullRequestTargets = lens _prPullRequestTargets (\ s a -> s{_prPullRequestTargets = a}) . _Default . _Coerce
-
--- | The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request.
-prDescription :: Lens' PullRequest (Maybe Text)
-prDescription = lens _prDescription (\ s a -> s{_prDescription = a})
-
-instance FromJSON PullRequest where
-        parseJSON
-          = withObject "PullRequest"
-              (\ x ->
-                 PullRequest' <$>
-                   (x .:? "authorArn") <*> (x .:? "pullRequestId") <*>
-                     (x .:? "creationDate")
-                     <*> (x .:? "pullRequestStatus")
-                     <*> (x .:? "title")
-                     <*> (x .:? "clientRequestToken")
-                     <*> (x .:? "lastActivityDate")
-                     <*> (x .:? "pullRequestTargets" .!= mempty)
-                     <*> (x .:? "description"))
-
-instance Hashable PullRequest where
-
-instance NFData PullRequest where
-
--- | Returns information about a pull request event.
---
---
---
--- /See:/ 'pullRequestEvent' smart constructor.
-data PullRequestEvent = PullRequestEvent'
-  { _prePullRequestMergedStateChangedEventMetadata :: !(Maybe PullRequestMergedStateChangedEventMetadata)
-  , _prePullRequestEventType :: !(Maybe PullRequestEventType)
-  , _prePullRequestStatusChangedEventMetadata :: !(Maybe PullRequestStatusChangedEventMetadata)
-  , _preActorARN :: !(Maybe Text)
-  , _prePullRequestId :: !(Maybe Text)
-  , _preEventDate :: !(Maybe POSIX)
-  , _prePullRequestSourceReferenceUpdatedEventMetadata :: !(Maybe PullRequestSourceReferenceUpdatedEventMetadata)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PullRequestEvent' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'prePullRequestMergedStateChangedEventMetadata' - Information about the change in mergability state for the pull request event.
---
--- * 'prePullRequestEventType' - The type of the pull request event, for example a status change event (PULL_REQUEST_STATUS_CHANGED) or update event (PULL_REQUEST_SOURCE_REFERENCE_UPDATED).
---
--- * 'prePullRequestStatusChangedEventMetadata' - Information about the change in status for the pull request event.
---
--- * 'preActorARN' - The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with additional commits or changing the status of a pull request.
---
--- * 'prePullRequestId' - The system-generated ID of the pull request.
---
--- * 'preEventDate' - The day and time of the pull request event, in timestamp format.
---
--- * 'prePullRequestSourceReferenceUpdatedEventMetadata' - Information about the updated source branch for the pull request event.
-pullRequestEvent
-    :: PullRequestEvent
-pullRequestEvent =
-  PullRequestEvent'
-    { _prePullRequestMergedStateChangedEventMetadata = Nothing
-    , _prePullRequestEventType = Nothing
-    , _prePullRequestStatusChangedEventMetadata = Nothing
-    , _preActorARN = Nothing
-    , _prePullRequestId = Nothing
-    , _preEventDate = Nothing
-    , _prePullRequestSourceReferenceUpdatedEventMetadata = Nothing
-    }
-
-
--- | Information about the change in mergability state for the pull request event.
-prePullRequestMergedStateChangedEventMetadata :: Lens' PullRequestEvent (Maybe PullRequestMergedStateChangedEventMetadata)
-prePullRequestMergedStateChangedEventMetadata = lens _prePullRequestMergedStateChangedEventMetadata (\ s a -> s{_prePullRequestMergedStateChangedEventMetadata = a})
-
--- | The type of the pull request event, for example a status change event (PULL_REQUEST_STATUS_CHANGED) or update event (PULL_REQUEST_SOURCE_REFERENCE_UPDATED).
-prePullRequestEventType :: Lens' PullRequestEvent (Maybe PullRequestEventType)
-prePullRequestEventType = lens _prePullRequestEventType (\ s a -> s{_prePullRequestEventType = a})
-
--- | Information about the change in status for the pull request event.
-prePullRequestStatusChangedEventMetadata :: Lens' PullRequestEvent (Maybe PullRequestStatusChangedEventMetadata)
-prePullRequestStatusChangedEventMetadata = lens _prePullRequestStatusChangedEventMetadata (\ s a -> s{_prePullRequestStatusChangedEventMetadata = a})
-
--- | The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with additional commits or changing the status of a pull request.
-preActorARN :: Lens' PullRequestEvent (Maybe Text)
-preActorARN = lens _preActorARN (\ s a -> s{_preActorARN = a})
-
--- | The system-generated ID of the pull request.
-prePullRequestId :: Lens' PullRequestEvent (Maybe Text)
-prePullRequestId = lens _prePullRequestId (\ s a -> s{_prePullRequestId = a})
-
--- | The day and time of the pull request event, in timestamp format.
-preEventDate :: Lens' PullRequestEvent (Maybe UTCTime)
-preEventDate = lens _preEventDate (\ s a -> s{_preEventDate = a}) . mapping _Time
-
--- | Information about the updated source branch for the pull request event.
-prePullRequestSourceReferenceUpdatedEventMetadata :: Lens' PullRequestEvent (Maybe PullRequestSourceReferenceUpdatedEventMetadata)
-prePullRequestSourceReferenceUpdatedEventMetadata = lens _prePullRequestSourceReferenceUpdatedEventMetadata (\ s a -> s{_prePullRequestSourceReferenceUpdatedEventMetadata = a})
-
-instance FromJSON PullRequestEvent where
-        parseJSON
-          = withObject "PullRequestEvent"
-              (\ x ->
-                 PullRequestEvent' <$>
-                   (x .:? "pullRequestMergedStateChangedEventMetadata")
-                     <*> (x .:? "pullRequestEventType")
-                     <*> (x .:? "pullRequestStatusChangedEventMetadata")
-                     <*> (x .:? "actorArn")
-                     <*> (x .:? "pullRequestId")
-                     <*> (x .:? "eventDate")
-                     <*>
-                     (x .:?
-                        "pullRequestSourceReferenceUpdatedEventMetadata"))
-
-instance Hashable PullRequestEvent where
-
-instance NFData PullRequestEvent where
-
--- | Returns information about the change in the merge state for a pull request event.
---
---
---
--- /See:/ 'pullRequestMergedStateChangedEventMetadata' smart constructor.
-data PullRequestMergedStateChangedEventMetadata = PullRequestMergedStateChangedEventMetadata'
-  { _prmscemDestinationReference :: !(Maybe Text)
-  , _prmscemMergeMetadata        :: !(Maybe MergeMetadata)
-  , _prmscemRepositoryName       :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PullRequestMergedStateChangedEventMetadata' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'prmscemDestinationReference' - The name of the branch that the pull request will be merged into.
---
--- * 'prmscemMergeMetadata' - Information about the merge state change event.
---
--- * 'prmscemRepositoryName' - The name of the repository where the pull request was created.
-pullRequestMergedStateChangedEventMetadata
-    :: PullRequestMergedStateChangedEventMetadata
-pullRequestMergedStateChangedEventMetadata =
-  PullRequestMergedStateChangedEventMetadata'
-    { _prmscemDestinationReference = Nothing
-    , _prmscemMergeMetadata = Nothing
-    , _prmscemRepositoryName = Nothing
-    }
-
-
--- | The name of the branch that the pull request will be merged into.
-prmscemDestinationReference :: Lens' PullRequestMergedStateChangedEventMetadata (Maybe Text)
-prmscemDestinationReference = lens _prmscemDestinationReference (\ s a -> s{_prmscemDestinationReference = a})
-
--- | Information about the merge state change event.
-prmscemMergeMetadata :: Lens' PullRequestMergedStateChangedEventMetadata (Maybe MergeMetadata)
-prmscemMergeMetadata = lens _prmscemMergeMetadata (\ s a -> s{_prmscemMergeMetadata = a})
-
--- | The name of the repository where the pull request was created.
-prmscemRepositoryName :: Lens' PullRequestMergedStateChangedEventMetadata (Maybe Text)
-prmscemRepositoryName = lens _prmscemRepositoryName (\ s a -> s{_prmscemRepositoryName = a})
-
-instance FromJSON
-           PullRequestMergedStateChangedEventMetadata
-         where
-        parseJSON
-          = withObject
-              "PullRequestMergedStateChangedEventMetadata"
-              (\ x ->
-                 PullRequestMergedStateChangedEventMetadata' <$>
-                   (x .:? "destinationReference") <*>
-                     (x .:? "mergeMetadata")
-                     <*> (x .:? "repositoryName"))
-
-instance Hashable
-           PullRequestMergedStateChangedEventMetadata
-         where
-
-instance NFData
-           PullRequestMergedStateChangedEventMetadata
-         where
-
--- | Information about an update to the source branch of a pull request.
---
---
---
--- /See:/ 'pullRequestSourceReferenceUpdatedEventMetadata' smart constructor.
-data PullRequestSourceReferenceUpdatedEventMetadata = PullRequestSourceReferenceUpdatedEventMetadata'
-  { _prsruemAfterCommitId  :: !(Maybe Text)
-  , _prsruemBeforeCommitId :: !(Maybe Text)
-  , _prsruemRepositoryName :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PullRequestSourceReferenceUpdatedEventMetadata' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'prsruemAfterCommitId' - The full commit ID of the commit in the source branch that was the tip of the branch at the time the pull request was updated.
---
--- * 'prsruemBeforeCommitId' - The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was updated.
---
--- * 'prsruemRepositoryName' - The name of the repository where the pull request was updated.
-pullRequestSourceReferenceUpdatedEventMetadata
-    :: PullRequestSourceReferenceUpdatedEventMetadata
-pullRequestSourceReferenceUpdatedEventMetadata =
-  PullRequestSourceReferenceUpdatedEventMetadata'
-    { _prsruemAfterCommitId = Nothing
-    , _prsruemBeforeCommitId = Nothing
-    , _prsruemRepositoryName = Nothing
-    }
-
-
--- | The full commit ID of the commit in the source branch that was the tip of the branch at the time the pull request was updated.
-prsruemAfterCommitId :: Lens' PullRequestSourceReferenceUpdatedEventMetadata (Maybe Text)
-prsruemAfterCommitId = lens _prsruemAfterCommitId (\ s a -> s{_prsruemAfterCommitId = a})
-
--- | The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was updated.
-prsruemBeforeCommitId :: Lens' PullRequestSourceReferenceUpdatedEventMetadata (Maybe Text)
-prsruemBeforeCommitId = lens _prsruemBeforeCommitId (\ s a -> s{_prsruemBeforeCommitId = a})
-
--- | The name of the repository where the pull request was updated.
-prsruemRepositoryName :: Lens' PullRequestSourceReferenceUpdatedEventMetadata (Maybe Text)
-prsruemRepositoryName = lens _prsruemRepositoryName (\ s a -> s{_prsruemRepositoryName = a})
-
-instance FromJSON
-           PullRequestSourceReferenceUpdatedEventMetadata
-         where
-        parseJSON
-          = withObject
-              "PullRequestSourceReferenceUpdatedEventMetadata"
-              (\ x ->
-                 PullRequestSourceReferenceUpdatedEventMetadata' <$>
-                   (x .:? "afterCommitId") <*> (x .:? "beforeCommitId")
-                     <*> (x .:? "repositoryName"))
-
-instance Hashable
-           PullRequestSourceReferenceUpdatedEventMetadata
-         where
-
-instance NFData
-           PullRequestSourceReferenceUpdatedEventMetadata
-         where
-
--- | Information about a change to the status of a pull request.
---
---
---
--- /See:/ 'pullRequestStatusChangedEventMetadata' smart constructor.
-newtype PullRequestStatusChangedEventMetadata = PullRequestStatusChangedEventMetadata'
-  { _prscemPullRequestStatus :: Maybe PullRequestStatusEnum
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PullRequestStatusChangedEventMetadata' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'prscemPullRequestStatus' - The changed status of the pull request.
-pullRequestStatusChangedEventMetadata
-    :: PullRequestStatusChangedEventMetadata
-pullRequestStatusChangedEventMetadata =
-  PullRequestStatusChangedEventMetadata' {_prscemPullRequestStatus = Nothing}
-
-
--- | The changed status of the pull request.
-prscemPullRequestStatus :: Lens' PullRequestStatusChangedEventMetadata (Maybe PullRequestStatusEnum)
-prscemPullRequestStatus = lens _prscemPullRequestStatus (\ s a -> s{_prscemPullRequestStatus = a})
-
-instance FromJSON
-           PullRequestStatusChangedEventMetadata
-         where
-        parseJSON
-          = withObject "PullRequestStatusChangedEventMetadata"
-              (\ x ->
-                 PullRequestStatusChangedEventMetadata' <$>
-                   (x .:? "pullRequestStatus"))
-
-instance Hashable
-           PullRequestStatusChangedEventMetadata
-         where
-
-instance NFData PullRequestStatusChangedEventMetadata
-         where
-
--- | Returns information about a pull request target.
---
---
---
--- /See:/ 'pullRequestTarget' smart constructor.
-data PullRequestTarget = PullRequestTarget'
-  { _prtSourceCommit         :: !(Maybe Text)
-  , _prtDestinationReference :: !(Maybe Text)
-  , _prtMergeMetadata        :: !(Maybe MergeMetadata)
-  , _prtDestinationCommit    :: !(Maybe Text)
-  , _prtRepositoryName       :: !(Maybe Text)
-  , _prtSourceReference      :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PullRequestTarget' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'prtSourceCommit' - The full commit ID of the tip of the source branch used to create the pull request. If the pull request branch is updated by a push while the pull request is open, the commit ID will change to reflect the new tip of the branch.
---
--- * 'prtDestinationReference' - The branch of the repository where the pull request changes will be merged into. Also known as the destination branch.
---
--- * 'prtMergeMetadata' - Returns metadata about the state of the merge, including whether the merge has been made.
---
--- * 'prtDestinationCommit' - The full commit ID that is the tip of the destination branch. This is the commit where the pull request was or will be merged.
---
--- * 'prtRepositoryName' - The name of the repository that contains the pull request source and destination branches.
---
--- * 'prtSourceReference' - The branch of the repository that contains the changes for the pull request. Also known as the source branch.
-pullRequestTarget
-    :: PullRequestTarget
-pullRequestTarget =
-  PullRequestTarget'
-    { _prtSourceCommit = Nothing
-    , _prtDestinationReference = Nothing
-    , _prtMergeMetadata = Nothing
-    , _prtDestinationCommit = Nothing
-    , _prtRepositoryName = Nothing
-    , _prtSourceReference = Nothing
-    }
-
-
--- | The full commit ID of the tip of the source branch used to create the pull request. If the pull request branch is updated by a push while the pull request is open, the commit ID will change to reflect the new tip of the branch.
-prtSourceCommit :: Lens' PullRequestTarget (Maybe Text)
-prtSourceCommit = lens _prtSourceCommit (\ s a -> s{_prtSourceCommit = a})
-
--- | The branch of the repository where the pull request changes will be merged into. Also known as the destination branch.
-prtDestinationReference :: Lens' PullRequestTarget (Maybe Text)
-prtDestinationReference = lens _prtDestinationReference (\ s a -> s{_prtDestinationReference = a})
-
--- | Returns metadata about the state of the merge, including whether the merge has been made.
-prtMergeMetadata :: Lens' PullRequestTarget (Maybe MergeMetadata)
-prtMergeMetadata = lens _prtMergeMetadata (\ s a -> s{_prtMergeMetadata = a})
-
--- | The full commit ID that is the tip of the destination branch. This is the commit where the pull request was or will be merged.
-prtDestinationCommit :: Lens' PullRequestTarget (Maybe Text)
-prtDestinationCommit = lens _prtDestinationCommit (\ s a -> s{_prtDestinationCommit = a})
-
--- | The name of the repository that contains the pull request source and destination branches.
-prtRepositoryName :: Lens' PullRequestTarget (Maybe Text)
-prtRepositoryName = lens _prtRepositoryName (\ s a -> s{_prtRepositoryName = a})
-
--- | The branch of the repository that contains the changes for the pull request. Also known as the source branch.
-prtSourceReference :: Lens' PullRequestTarget (Maybe Text)
-prtSourceReference = lens _prtSourceReference (\ s a -> s{_prtSourceReference = a})
-
-instance FromJSON PullRequestTarget where
-        parseJSON
-          = withObject "PullRequestTarget"
-              (\ x ->
-                 PullRequestTarget' <$>
-                   (x .:? "sourceCommit") <*>
-                     (x .:? "destinationReference")
-                     <*> (x .:? "mergeMetadata")
-                     <*> (x .:? "destinationCommit")
-                     <*> (x .:? "repositoryName")
-                     <*> (x .:? "sourceReference"))
-
-instance Hashable PullRequestTarget where
-
-instance NFData PullRequestTarget where
-
--- | Information about a repository.
---
---
---
--- /See:/ 'repositoryMetadata' smart constructor.
-data RepositoryMetadata = RepositoryMetadata'
-  { _rmRepositoryDescription :: !(Maybe Text)
-  , _rmLastModifiedDate      :: !(Maybe POSIX)
-  , _rmARN                   :: !(Maybe Text)
-  , _rmCloneURLHTTP          :: !(Maybe Text)
-  , _rmAccountId             :: !(Maybe Text)
-  , _rmDefaultBranch         :: !(Maybe Text)
-  , _rmRepositoryId          :: !(Maybe Text)
-  , _rmRepositoryName        :: !(Maybe Text)
-  , _rmCreationDate          :: !(Maybe POSIX)
-  , _rmCloneURLSSH           :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RepositoryMetadata' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rmRepositoryDescription' - A comment or description about the repository.
---
--- * 'rmLastModifiedDate' - The date and time the repository was last modified, in timestamp format.
---
--- * 'rmARN' - The Amazon Resource Name (ARN) of the repository.
---
--- * 'rmCloneURLHTTP' - The URL to use for cloning the repository over HTTPS.
---
--- * 'rmAccountId' - The ID of the AWS account associated with the repository.
---
--- * 'rmDefaultBranch' - The repository's default branch name.
---
--- * 'rmRepositoryId' - The ID of the repository.
---
--- * 'rmRepositoryName' - The repository's name.
---
--- * 'rmCreationDate' - The date and time the repository was created, in timestamp format.
---
--- * 'rmCloneURLSSH' - The URL to use for cloning the repository over SSH.
-repositoryMetadata
-    :: RepositoryMetadata
-repositoryMetadata =
-  RepositoryMetadata'
-    { _rmRepositoryDescription = Nothing
-    , _rmLastModifiedDate = Nothing
-    , _rmARN = Nothing
-    , _rmCloneURLHTTP = Nothing
-    , _rmAccountId = Nothing
-    , _rmDefaultBranch = Nothing
-    , _rmRepositoryId = Nothing
-    , _rmRepositoryName = Nothing
-    , _rmCreationDate = Nothing
-    , _rmCloneURLSSH = Nothing
-    }
-
-
--- | A comment or description about the repository.
-rmRepositoryDescription :: Lens' RepositoryMetadata (Maybe Text)
-rmRepositoryDescription = lens _rmRepositoryDescription (\ s a -> s{_rmRepositoryDescription = a})
-
--- | The date and time the repository was last modified, in timestamp format.
-rmLastModifiedDate :: Lens' RepositoryMetadata (Maybe UTCTime)
-rmLastModifiedDate = lens _rmLastModifiedDate (\ s a -> s{_rmLastModifiedDate = a}) . mapping _Time
-
--- | The Amazon Resource Name (ARN) of the repository.
-rmARN :: Lens' RepositoryMetadata (Maybe Text)
-rmARN = lens _rmARN (\ s a -> s{_rmARN = a})
-
--- | The URL to use for cloning the repository over HTTPS.
-rmCloneURLHTTP :: Lens' RepositoryMetadata (Maybe Text)
-rmCloneURLHTTP = lens _rmCloneURLHTTP (\ s a -> s{_rmCloneURLHTTP = a})
-
--- | The ID of the AWS account associated with the repository.
-rmAccountId :: Lens' RepositoryMetadata (Maybe Text)
-rmAccountId = lens _rmAccountId (\ s a -> s{_rmAccountId = a})
-
--- | The repository's default branch name.
-rmDefaultBranch :: Lens' RepositoryMetadata (Maybe Text)
-rmDefaultBranch = lens _rmDefaultBranch (\ s a -> s{_rmDefaultBranch = a})
-
--- | The ID of the repository.
-rmRepositoryId :: Lens' RepositoryMetadata (Maybe Text)
-rmRepositoryId = lens _rmRepositoryId (\ s a -> s{_rmRepositoryId = a})
-
--- | The repository's name.
-rmRepositoryName :: Lens' RepositoryMetadata (Maybe Text)
-rmRepositoryName = lens _rmRepositoryName (\ s a -> s{_rmRepositoryName = a})
-
--- | The date and time the repository was created, in timestamp format.
-rmCreationDate :: Lens' RepositoryMetadata (Maybe UTCTime)
-rmCreationDate = lens _rmCreationDate (\ s a -> s{_rmCreationDate = a}) . mapping _Time
-
--- | The URL to use for cloning the repository over SSH.
-rmCloneURLSSH :: Lens' RepositoryMetadata (Maybe Text)
-rmCloneURLSSH = lens _rmCloneURLSSH (\ s a -> s{_rmCloneURLSSH = a})
-
-instance FromJSON RepositoryMetadata where
-        parseJSON
-          = withObject "RepositoryMetadata"
-              (\ x ->
-                 RepositoryMetadata' <$>
-                   (x .:? "repositoryDescription") <*>
-                     (x .:? "lastModifiedDate")
-                     <*> (x .:? "Arn")
-                     <*> (x .:? "cloneUrlHttp")
-                     <*> (x .:? "accountId")
-                     <*> (x .:? "defaultBranch")
-                     <*> (x .:? "repositoryId")
-                     <*> (x .:? "repositoryName")
-                     <*> (x .:? "creationDate")
-                     <*> (x .:? "cloneUrlSsh"))
-
-instance Hashable RepositoryMetadata where
-
-instance NFData RepositoryMetadata where
-
--- | Information about a repository name and ID.
---
---
---
--- /See:/ 'repositoryNameIdPair' smart constructor.
-data RepositoryNameIdPair = RepositoryNameIdPair'
-  { _rnipRepositoryId   :: !(Maybe Text)
-  , _rnipRepositoryName :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RepositoryNameIdPair' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rnipRepositoryId' - The ID associated with the repository.
---
--- * 'rnipRepositoryName' - The name associated with the repository.
-repositoryNameIdPair
-    :: RepositoryNameIdPair
-repositoryNameIdPair =
-  RepositoryNameIdPair'
-    {_rnipRepositoryId = Nothing, _rnipRepositoryName = Nothing}
-
-
--- | The ID associated with the repository.
-rnipRepositoryId :: Lens' RepositoryNameIdPair (Maybe Text)
-rnipRepositoryId = lens _rnipRepositoryId (\ s a -> s{_rnipRepositoryId = a})
-
--- | The name associated with the repository.
-rnipRepositoryName :: Lens' RepositoryNameIdPair (Maybe Text)
-rnipRepositoryName = lens _rnipRepositoryName (\ s a -> s{_rnipRepositoryName = a})
-
-instance FromJSON RepositoryNameIdPair where
-        parseJSON
-          = withObject "RepositoryNameIdPair"
-              (\ x ->
-                 RepositoryNameIdPair' <$>
-                   (x .:? "repositoryId") <*> (x .:? "repositoryName"))
-
-instance Hashable RepositoryNameIdPair where
-
-instance NFData RepositoryNameIdPair where
-
--- | Information about a trigger for a repository.
---
---
---
--- /See:/ 'repositoryTrigger' smart constructor.
-data RepositoryTrigger = RepositoryTrigger'
-  { _rtBranches       :: !(Maybe [Text])
-  , _rtCustomData     :: !(Maybe Text)
-  , _rtName           :: !Text
-  , _rtDestinationARN :: !Text
-  , _rtEvents         :: ![RepositoryTriggerEventEnum]
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RepositoryTrigger' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rtBranches' - The branches that will be included in the trigger configuration. If you specify an empty array, the trigger will apply to all branches.
---
--- * 'rtCustomData' - Any custom data associated with the trigger that will be included in the information sent to the target of the trigger.
---
--- * 'rtName' - The name of the trigger.
---
--- * 'rtDestinationARN' - The ARN of the resource that is the target for a trigger. For example, the ARN of a topic in Amazon Simple Notification Service (SNS).
---
--- * 'rtEvents' - The repository events that will cause the trigger to run actions in another service, such as sending a notification through Amazon Simple Notification Service (SNS).
-repositoryTrigger
-    :: Text -- ^ 'rtName'
-    -> Text -- ^ 'rtDestinationARN'
-    -> RepositoryTrigger
-repositoryTrigger pName_ pDestinationARN_ =
-  RepositoryTrigger'
-    { _rtBranches = Nothing
-    , _rtCustomData = Nothing
-    , _rtName = pName_
-    , _rtDestinationARN = pDestinationARN_
-    , _rtEvents = mempty
-    }
-
-
--- | The branches that will be included in the trigger configuration. If you specify an empty array, the trigger will apply to all branches.
-rtBranches :: Lens' RepositoryTrigger [Text]
-rtBranches = lens _rtBranches (\ s a -> s{_rtBranches = a}) . _Default . _Coerce
-
--- | Any custom data associated with the trigger that will be included in the information sent to the target of the trigger.
-rtCustomData :: Lens' RepositoryTrigger (Maybe Text)
-rtCustomData = lens _rtCustomData (\ s a -> s{_rtCustomData = a})
-
--- | The name of the trigger.
-rtName :: Lens' RepositoryTrigger Text
-rtName = lens _rtName (\ s a -> s{_rtName = a})
-
--- | The ARN of the resource that is the target for a trigger. For example, the ARN of a topic in Amazon Simple Notification Service (SNS).
-rtDestinationARN :: Lens' RepositoryTrigger Text
-rtDestinationARN = lens _rtDestinationARN (\ s a -> s{_rtDestinationARN = a})
-
--- | The repository events that will cause the trigger to run actions in another service, such as sending a notification through Amazon Simple Notification Service (SNS).
-rtEvents :: Lens' RepositoryTrigger [RepositoryTriggerEventEnum]
-rtEvents = lens _rtEvents (\ s a -> s{_rtEvents = a}) . _Coerce
-
-instance FromJSON RepositoryTrigger where
-        parseJSON
-          = withObject "RepositoryTrigger"
-              (\ x ->
-                 RepositoryTrigger' <$>
-                   (x .:? "branches" .!= mempty) <*>
-                     (x .:? "customData")
-                     <*> (x .: "name")
-                     <*> (x .: "destinationArn")
-                     <*> (x .:? "events" .!= mempty))
-
-instance Hashable RepositoryTrigger where
-
-instance NFData RepositoryTrigger where
-
-instance ToJSON RepositoryTrigger where
-        toJSON RepositoryTrigger'{..}
-          = object
-              (catMaybes
-                 [("branches" .=) <$> _rtBranches,
-                  ("customData" .=) <$> _rtCustomData,
-                  Just ("name" .= _rtName),
-                  Just ("destinationArn" .= _rtDestinationARN),
-                  Just ("events" .= _rtEvents)])
-
--- | A trigger failed to run.
---
---
---
--- /See:/ 'repositoryTriggerExecutionFailure' smart constructor.
-data RepositoryTriggerExecutionFailure = RepositoryTriggerExecutionFailure'
-  { _rtefFailureMessage :: !(Maybe Text)
-  , _rtefTrigger        :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RepositoryTriggerExecutionFailure' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rtefFailureMessage' - Additional message information about the trigger that did not run.
---
--- * 'rtefTrigger' - The name of the trigger that did not run.
-repositoryTriggerExecutionFailure
-    :: RepositoryTriggerExecutionFailure
-repositoryTriggerExecutionFailure =
-  RepositoryTriggerExecutionFailure'
-    {_rtefFailureMessage = Nothing, _rtefTrigger = Nothing}
-
-
--- | Additional message information about the trigger that did not run.
-rtefFailureMessage :: Lens' RepositoryTriggerExecutionFailure (Maybe Text)
-rtefFailureMessage = lens _rtefFailureMessage (\ s a -> s{_rtefFailureMessage = a})
-
--- | The name of the trigger that did not run.
-rtefTrigger :: Lens' RepositoryTriggerExecutionFailure (Maybe Text)
-rtefTrigger = lens _rtefTrigger (\ s a -> s{_rtefTrigger = a})
-
-instance FromJSON RepositoryTriggerExecutionFailure
-         where
-        parseJSON
-          = withObject "RepositoryTriggerExecutionFailure"
-              (\ x ->
-                 RepositoryTriggerExecutionFailure' <$>
-                   (x .:? "failureMessage") <*> (x .:? "trigger"))
-
-instance Hashable RepositoryTriggerExecutionFailure
-         where
-
-instance NFData RepositoryTriggerExecutionFailure
-         where
-
--- | Returns information about a target for a pull request.
---
---
---
--- /See:/ 'target' smart constructor.
-data Target = Target'
-  { _tDestinationReference :: !(Maybe Text)
-  , _tRepositoryName       :: !Text
-  , _tSourceReference      :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Target' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tDestinationReference' - The branch of the repository where the pull request changes will be merged into. Also known as the destination branch.
---
--- * 'tRepositoryName' - The name of the repository that contains the pull request.
---
--- * 'tSourceReference' - The branch of the repository that contains the changes for the pull request. Also known as the source branch.
-target
-    :: Text -- ^ 'tRepositoryName'
-    -> Text -- ^ 'tSourceReference'
-    -> Target
-target pRepositoryName_ pSourceReference_ =
-  Target'
-    { _tDestinationReference = Nothing
-    , _tRepositoryName = pRepositoryName_
-    , _tSourceReference = pSourceReference_
-    }
-
-
--- | The branch of the repository where the pull request changes will be merged into. Also known as the destination branch.
-tDestinationReference :: Lens' Target (Maybe Text)
-tDestinationReference = lens _tDestinationReference (\ s a -> s{_tDestinationReference = a})
-
--- | The name of the repository that contains the pull request.
-tRepositoryName :: Lens' Target Text
-tRepositoryName = lens _tRepositoryName (\ s a -> s{_tRepositoryName = a})
-
--- | The branch of the repository that contains the changes for the pull request. Also known as the source branch.
-tSourceReference :: Lens' Target Text
-tSourceReference = lens _tSourceReference (\ s a -> s{_tSourceReference = a})
-
-instance Hashable Target where
-
-instance NFData Target where
-
-instance ToJSON Target where
-        toJSON Target'{..}
-          = object
-              (catMaybes
-                 [("destinationReference" .=) <$>
-                    _tDestinationReference,
-                  Just ("repositoryName" .= _tRepositoryName),
-                  Just ("sourceReference" .= _tSourceReference)])
-
--- | Information about the user who made a specified commit.
---
---
---
--- /See:/ 'userInfo' smart constructor.
-data UserInfo = UserInfo'
-  { _uiEmail :: !(Maybe Text)
-  , _uiDate  :: !(Maybe Text)
-  , _uiName  :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UserInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uiEmail' - The email address associated with the user who made the commit, if any.
---
--- * 'uiDate' - The date when the specified commit was commited, in timestamp format with GMT offset.
---
--- * 'uiName' - The name of the user who made the specified commit.
-userInfo
-    :: UserInfo
-userInfo = UserInfo' {_uiEmail = Nothing, _uiDate = Nothing, _uiName = Nothing}
-
-
--- | The email address associated with the user who made the commit, if any.
-uiEmail :: Lens' UserInfo (Maybe Text)
-uiEmail = lens _uiEmail (\ s a -> s{_uiEmail = a})
-
--- | The date when the specified commit was commited, in timestamp format with GMT offset.
-uiDate :: Lens' UserInfo (Maybe Text)
-uiDate = lens _uiDate (\ s a -> s{_uiDate = a})
-
--- | The name of the user who made the specified commit.
-uiName :: Lens' UserInfo (Maybe Text)
-uiName = lens _uiName (\ s a -> s{_uiName = a})
-
-instance FromJSON UserInfo where
-        parseJSON
-          = withObject "UserInfo"
-              (\ x ->
-                 UserInfo' <$>
-                   (x .:? "email") <*> (x .:? "date") <*>
-                     (x .:? "name"))
-
-instance Hashable UserInfo where
-
-instance NFData UserInfo where
diff --git a/gen/Network/AWS/CodeCommit/Types/Sum.hs b/gen/Network/AWS/CodeCommit/Types/Sum.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/Types/Sum.hs
+++ /dev/null
@@ -1,290 +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.CodeCommit.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.CodeCommit.Types.Sum where
-
-import Network.AWS.Prelude
-
-data ChangeTypeEnum
-  = A
-  | D
-  | M
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText ChangeTypeEnum where
-    parser = takeLowerText >>= \case
-        "a" -> pure A
-        "d" -> pure D
-        "m" -> pure M
-        e -> fromTextError $ "Failure parsing ChangeTypeEnum from value: '" <> e
-           <> "'. Accepted values: a, d, m"
-
-instance ToText ChangeTypeEnum where
-    toText = \case
-        A -> "A"
-        D -> "D"
-        M -> "M"
-
-instance Hashable     ChangeTypeEnum
-instance NFData       ChangeTypeEnum
-instance ToByteString ChangeTypeEnum
-instance ToQuery      ChangeTypeEnum
-instance ToHeader     ChangeTypeEnum
-
-instance FromJSON ChangeTypeEnum where
-    parseJSON = parseJSONText "ChangeTypeEnum"
-
-data FileModeTypeEnum
-  = Executable
-  | Normal
-  | Symlink
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText FileModeTypeEnum where
-    parser = takeLowerText >>= \case
-        "executable" -> pure Executable
-        "normal" -> pure Normal
-        "symlink" -> pure Symlink
-        e -> fromTextError $ "Failure parsing FileModeTypeEnum from value: '" <> e
-           <> "'. Accepted values: executable, normal, symlink"
-
-instance ToText FileModeTypeEnum where
-    toText = \case
-        Executable -> "EXECUTABLE"
-        Normal -> "NORMAL"
-        Symlink -> "SYMLINK"
-
-instance Hashable     FileModeTypeEnum
-instance NFData       FileModeTypeEnum
-instance ToByteString FileModeTypeEnum
-instance ToQuery      FileModeTypeEnum
-instance ToHeader     FileModeTypeEnum
-
-instance ToJSON FileModeTypeEnum where
-    toJSON = toJSONText
-
-data MergeOptionTypeEnum =
-  FastForwardMerge
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText MergeOptionTypeEnum where
-    parser = takeLowerText >>= \case
-        "fast_forward_merge" -> pure FastForwardMerge
-        e -> fromTextError $ "Failure parsing MergeOptionTypeEnum from value: '" <> e
-           <> "'. Accepted values: fast_forward_merge"
-
-instance ToText MergeOptionTypeEnum where
-    toText = \case
-        FastForwardMerge -> "FAST_FORWARD_MERGE"
-
-instance Hashable     MergeOptionTypeEnum
-instance NFData       MergeOptionTypeEnum
-instance ToByteString MergeOptionTypeEnum
-instance ToQuery      MergeOptionTypeEnum
-instance ToHeader     MergeOptionTypeEnum
-
-instance ToJSON MergeOptionTypeEnum where
-    toJSON = toJSONText
-
-data OrderEnum
-  = Ascending
-  | Descending
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText OrderEnum where
-    parser = takeLowerText >>= \case
-        "ascending" -> pure Ascending
-        "descending" -> pure Descending
-        e -> fromTextError $ "Failure parsing OrderEnum from value: '" <> e
-           <> "'. Accepted values: ascending, descending"
-
-instance ToText OrderEnum where
-    toText = \case
-        Ascending -> "ascending"
-        Descending -> "descending"
-
-instance Hashable     OrderEnum
-instance NFData       OrderEnum
-instance ToByteString OrderEnum
-instance ToQuery      OrderEnum
-instance ToHeader     OrderEnum
-
-instance ToJSON OrderEnum where
-    toJSON = toJSONText
-
-data PullRequestEventType
-  = PullRequestCreated
-  | PullRequestMergeStateChanged
-  | PullRequestSourceReferenceUpdated
-  | PullRequestStatusChanged
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText PullRequestEventType where
-    parser = takeLowerText >>= \case
-        "pull_request_created" -> pure PullRequestCreated
-        "pull_request_merge_state_changed" -> pure PullRequestMergeStateChanged
-        "pull_request_source_reference_updated" -> pure PullRequestSourceReferenceUpdated
-        "pull_request_status_changed" -> pure PullRequestStatusChanged
-        e -> fromTextError $ "Failure parsing PullRequestEventType from value: '" <> e
-           <> "'. Accepted values: pull_request_created, pull_request_merge_state_changed, pull_request_source_reference_updated, pull_request_status_changed"
-
-instance ToText PullRequestEventType where
-    toText = \case
-        PullRequestCreated -> "PULL_REQUEST_CREATED"
-        PullRequestMergeStateChanged -> "PULL_REQUEST_MERGE_STATE_CHANGED"
-        PullRequestSourceReferenceUpdated -> "PULL_REQUEST_SOURCE_REFERENCE_UPDATED"
-        PullRequestStatusChanged -> "PULL_REQUEST_STATUS_CHANGED"
-
-instance Hashable     PullRequestEventType
-instance NFData       PullRequestEventType
-instance ToByteString PullRequestEventType
-instance ToQuery      PullRequestEventType
-instance ToHeader     PullRequestEventType
-
-instance ToJSON PullRequestEventType where
-    toJSON = toJSONText
-
-instance FromJSON PullRequestEventType where
-    parseJSON = parseJSONText "PullRequestEventType"
-
-data PullRequestStatusEnum
-  = Closed
-  | Open
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText PullRequestStatusEnum where
-    parser = takeLowerText >>= \case
-        "closed" -> pure Closed
-        "open" -> pure Open
-        e -> fromTextError $ "Failure parsing PullRequestStatusEnum from value: '" <> e
-           <> "'. Accepted values: closed, open"
-
-instance ToText PullRequestStatusEnum where
-    toText = \case
-        Closed -> "CLOSED"
-        Open -> "OPEN"
-
-instance Hashable     PullRequestStatusEnum
-instance NFData       PullRequestStatusEnum
-instance ToByteString PullRequestStatusEnum
-instance ToQuery      PullRequestStatusEnum
-instance ToHeader     PullRequestStatusEnum
-
-instance ToJSON PullRequestStatusEnum where
-    toJSON = toJSONText
-
-instance FromJSON PullRequestStatusEnum where
-    parseJSON = parseJSONText "PullRequestStatusEnum"
-
-data RelativeFileVersionEnum
-  = After
-  | Before
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText RelativeFileVersionEnum where
-    parser = takeLowerText >>= \case
-        "after" -> pure After
-        "before" -> pure Before
-        e -> fromTextError $ "Failure parsing RelativeFileVersionEnum from value: '" <> e
-           <> "'. Accepted values: after, before"
-
-instance ToText RelativeFileVersionEnum where
-    toText = \case
-        After -> "AFTER"
-        Before -> "BEFORE"
-
-instance Hashable     RelativeFileVersionEnum
-instance NFData       RelativeFileVersionEnum
-instance ToByteString RelativeFileVersionEnum
-instance ToQuery      RelativeFileVersionEnum
-instance ToHeader     RelativeFileVersionEnum
-
-instance ToJSON RelativeFileVersionEnum where
-    toJSON = toJSONText
-
-instance FromJSON RelativeFileVersionEnum where
-    parseJSON = parseJSONText "RelativeFileVersionEnum"
-
-data RepositoryTriggerEventEnum
-  = All
-  | CreateReference
-  | DeleteReference
-  | UpdateReference
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText RepositoryTriggerEventEnum where
-    parser = takeLowerText >>= \case
-        "all" -> pure All
-        "createreference" -> pure CreateReference
-        "deletereference" -> pure DeleteReference
-        "updatereference" -> pure UpdateReference
-        e -> fromTextError $ "Failure parsing RepositoryTriggerEventEnum from value: '" <> e
-           <> "'. Accepted values: all, createreference, deletereference, updatereference"
-
-instance ToText RepositoryTriggerEventEnum where
-    toText = \case
-        All -> "all"
-        CreateReference -> "createReference"
-        DeleteReference -> "deleteReference"
-        UpdateReference -> "updateReference"
-
-instance Hashable     RepositoryTriggerEventEnum
-instance NFData       RepositoryTriggerEventEnum
-instance ToByteString RepositoryTriggerEventEnum
-instance ToQuery      RepositoryTriggerEventEnum
-instance ToHeader     RepositoryTriggerEventEnum
-
-instance ToJSON RepositoryTriggerEventEnum where
-    toJSON = toJSONText
-
-instance FromJSON RepositoryTriggerEventEnum where
-    parseJSON = parseJSONText "RepositoryTriggerEventEnum"
-
-data SortByEnum
-  = LastModifiedDate
-  | RepositoryName
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText SortByEnum where
-    parser = takeLowerText >>= \case
-        "lastmodifieddate" -> pure LastModifiedDate
-        "repositoryname" -> pure RepositoryName
-        e -> fromTextError $ "Failure parsing SortByEnum from value: '" <> e
-           <> "'. Accepted values: lastmodifieddate, repositoryname"
-
-instance ToText SortByEnum where
-    toText = \case
-        LastModifiedDate -> "lastModifiedDate"
-        RepositoryName -> "repositoryName"
-
-instance Hashable     SortByEnum
-instance NFData       SortByEnum
-instance ToByteString SortByEnum
-instance ToQuery      SortByEnum
-instance ToHeader     SortByEnum
-
-instance ToJSON SortByEnum where
-    toJSON = toJSONText
diff --git a/gen/Network/AWS/CodeCommit/UpdateComment.hs b/gen/Network/AWS/CodeCommit/UpdateComment.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/UpdateComment.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.CodeCommit.UpdateComment
--- 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)
---
--- Replaces the contents of a comment.
---
---
-module Network.AWS.CodeCommit.UpdateComment
-    (
-    -- * Creating a Request
-      updateComment
-    , UpdateComment
-    -- * Request Lenses
-    , ucCommentId
-    , ucContent
-
-    -- * Destructuring the Response
-    , updateCommentResponse
-    , UpdateCommentResponse
-    -- * Response Lenses
-    , ucrsComment
-    , ucrsResponseStatus
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'updateComment' smart constructor.
-data UpdateComment = UpdateComment'
-  { _ucCommentId :: !Text
-  , _ucContent   :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateComment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ucCommentId' - The system-generated ID of the comment you want to update. To get this ID, use 'GetCommentsForComparedCommit' or 'GetCommentsForPullRequest' .
---
--- * 'ucContent' - The updated content with which you want to replace the existing content of the comment.
-updateComment
-    :: Text -- ^ 'ucCommentId'
-    -> Text -- ^ 'ucContent'
-    -> UpdateComment
-updateComment pCommentId_ pContent_ =
-  UpdateComment' {_ucCommentId = pCommentId_, _ucContent = pContent_}
-
-
--- | The system-generated ID of the comment you want to update. To get this ID, use 'GetCommentsForComparedCommit' or 'GetCommentsForPullRequest' .
-ucCommentId :: Lens' UpdateComment Text
-ucCommentId = lens _ucCommentId (\ s a -> s{_ucCommentId = a})
-
--- | The updated content with which you want to replace the existing content of the comment.
-ucContent :: Lens' UpdateComment Text
-ucContent = lens _ucContent (\ s a -> s{_ucContent = a})
-
-instance AWSRequest UpdateComment where
-        type Rs UpdateComment = UpdateCommentResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 UpdateCommentResponse' <$>
-                   (x .?> "comment") <*> (pure (fromEnum s)))
-
-instance Hashable UpdateComment where
-
-instance NFData UpdateComment where
-
-instance ToHeaders UpdateComment where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.UpdateComment" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdateComment where
-        toJSON UpdateComment'{..}
-          = object
-              (catMaybes
-                 [Just ("commentId" .= _ucCommentId),
-                  Just ("content" .= _ucContent)])
-
-instance ToPath UpdateComment where
-        toPath = const "/"
-
-instance ToQuery UpdateComment where
-        toQuery = const mempty
-
--- | /See:/ 'updateCommentResponse' smart constructor.
-data UpdateCommentResponse = UpdateCommentResponse'
-  { _ucrsComment        :: !(Maybe Comment)
-  , _ucrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateCommentResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ucrsComment' - Information about the updated comment.
---
--- * 'ucrsResponseStatus' - -- | The response status code.
-updateCommentResponse
-    :: Int -- ^ 'ucrsResponseStatus'
-    -> UpdateCommentResponse
-updateCommentResponse pResponseStatus_ =
-  UpdateCommentResponse'
-    {_ucrsComment = Nothing, _ucrsResponseStatus = pResponseStatus_}
-
-
--- | Information about the updated comment.
-ucrsComment :: Lens' UpdateCommentResponse (Maybe Comment)
-ucrsComment = lens _ucrsComment (\ s a -> s{_ucrsComment = a})
-
--- | -- | The response status code.
-ucrsResponseStatus :: Lens' UpdateCommentResponse Int
-ucrsResponseStatus = lens _ucrsResponseStatus (\ s a -> s{_ucrsResponseStatus = a})
-
-instance NFData UpdateCommentResponse where
diff --git a/gen/Network/AWS/CodeCommit/UpdateDefaultBranch.hs b/gen/Network/AWS/CodeCommit/UpdateDefaultBranch.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/UpdateDefaultBranch.hs
+++ /dev/null
@@ -1,128 +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.CodeCommit.UpdateDefaultBranch
--- 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)
---
--- Sets or changes the default branch name for the specified repository.
---
---
-module Network.AWS.CodeCommit.UpdateDefaultBranch
-    (
-    -- * Creating a Request
-      updateDefaultBranch
-    , UpdateDefaultBranch
-    -- * Request Lenses
-    , udbRepositoryName
-    , udbDefaultBranchName
-
-    -- * Destructuring the Response
-    , updateDefaultBranchResponse
-    , UpdateDefaultBranchResponse
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of an update default branch operation.
---
---
---
--- /See:/ 'updateDefaultBranch' smart constructor.
-data UpdateDefaultBranch = UpdateDefaultBranch'
-  { _udbRepositoryName    :: !Text
-  , _udbDefaultBranchName :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateDefaultBranch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'udbRepositoryName' - The name of the repository to set or change the default branch for.
---
--- * 'udbDefaultBranchName' - The name of the branch to set as the default.
-updateDefaultBranch
-    :: Text -- ^ 'udbRepositoryName'
-    -> Text -- ^ 'udbDefaultBranchName'
-    -> UpdateDefaultBranch
-updateDefaultBranch pRepositoryName_ pDefaultBranchName_ =
-  UpdateDefaultBranch'
-    { _udbRepositoryName = pRepositoryName_
-    , _udbDefaultBranchName = pDefaultBranchName_
-    }
-
-
--- | The name of the repository to set or change the default branch for.
-udbRepositoryName :: Lens' UpdateDefaultBranch Text
-udbRepositoryName = lens _udbRepositoryName (\ s a -> s{_udbRepositoryName = a})
-
--- | The name of the branch to set as the default.
-udbDefaultBranchName :: Lens' UpdateDefaultBranch Text
-udbDefaultBranchName = lens _udbDefaultBranchName (\ s a -> s{_udbDefaultBranchName = a})
-
-instance AWSRequest UpdateDefaultBranch where
-        type Rs UpdateDefaultBranch =
-             UpdateDefaultBranchResponse
-        request = postJSON codeCommit
-        response = receiveNull UpdateDefaultBranchResponse'
-
-instance Hashable UpdateDefaultBranch where
-
-instance NFData UpdateDefaultBranch where
-
-instance ToHeaders UpdateDefaultBranch where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.UpdateDefaultBranch" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdateDefaultBranch where
-        toJSON UpdateDefaultBranch'{..}
-          = object
-              (catMaybes
-                 [Just ("repositoryName" .= _udbRepositoryName),
-                  Just ("defaultBranchName" .= _udbDefaultBranchName)])
-
-instance ToPath UpdateDefaultBranch where
-        toPath = const "/"
-
-instance ToQuery UpdateDefaultBranch where
-        toQuery = const mempty
-
--- | /See:/ 'updateDefaultBranchResponse' smart constructor.
-data UpdateDefaultBranchResponse =
-  UpdateDefaultBranchResponse'
-  deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateDefaultBranchResponse' with the minimum fields required to make a request.
---
-updateDefaultBranchResponse
-    :: UpdateDefaultBranchResponse
-updateDefaultBranchResponse = UpdateDefaultBranchResponse'
-
-
-instance NFData UpdateDefaultBranchResponse where
diff --git a/gen/Network/AWS/CodeCommit/UpdatePullRequestDescription.hs b/gen/Network/AWS/CodeCommit/UpdatePullRequestDescription.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/UpdatePullRequestDescription.hs
+++ /dev/null
@@ -1,151 +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.CodeCommit.UpdatePullRequestDescription
--- 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)
---
--- Replaces the contents of the description of a pull request.
---
---
-module Network.AWS.CodeCommit.UpdatePullRequestDescription
-    (
-    -- * Creating a Request
-      updatePullRequestDescription
-    , UpdatePullRequestDescription
-    -- * Request Lenses
-    , uprdPullRequestId
-    , uprdDescription
-
-    -- * Destructuring the Response
-    , updatePullRequestDescriptionResponse
-    , UpdatePullRequestDescriptionResponse
-    -- * Response Lenses
-    , uprdrsResponseStatus
-    , uprdrsPullRequest
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'updatePullRequestDescription' smart constructor.
-data UpdatePullRequestDescription = UpdatePullRequestDescription'
-  { _uprdPullRequestId :: !Text
-  , _uprdDescription   :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdatePullRequestDescription' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uprdPullRequestId' - The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
---
--- * 'uprdDescription' - The updated content of the description for the pull request. This content will replace the existing description.
-updatePullRequestDescription
-    :: Text -- ^ 'uprdPullRequestId'
-    -> Text -- ^ 'uprdDescription'
-    -> UpdatePullRequestDescription
-updatePullRequestDescription pPullRequestId_ pDescription_ =
-  UpdatePullRequestDescription'
-    {_uprdPullRequestId = pPullRequestId_, _uprdDescription = pDescription_}
-
-
--- | The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
-uprdPullRequestId :: Lens' UpdatePullRequestDescription Text
-uprdPullRequestId = lens _uprdPullRequestId (\ s a -> s{_uprdPullRequestId = a})
-
--- | The updated content of the description for the pull request. This content will replace the existing description.
-uprdDescription :: Lens' UpdatePullRequestDescription Text
-uprdDescription = lens _uprdDescription (\ s a -> s{_uprdDescription = a})
-
-instance AWSRequest UpdatePullRequestDescription
-         where
-        type Rs UpdatePullRequestDescription =
-             UpdatePullRequestDescriptionResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 UpdatePullRequestDescriptionResponse' <$>
-                   (pure (fromEnum s)) <*> (x .:> "pullRequest"))
-
-instance Hashable UpdatePullRequestDescription where
-
-instance NFData UpdatePullRequestDescription where
-
-instance ToHeaders UpdatePullRequestDescription where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.UpdatePullRequestDescription"
-                       :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdatePullRequestDescription where
-        toJSON UpdatePullRequestDescription'{..}
-          = object
-              (catMaybes
-                 [Just ("pullRequestId" .= _uprdPullRequestId),
-                  Just ("description" .= _uprdDescription)])
-
-instance ToPath UpdatePullRequestDescription where
-        toPath = const "/"
-
-instance ToQuery UpdatePullRequestDescription where
-        toQuery = const mempty
-
--- | /See:/ 'updatePullRequestDescriptionResponse' smart constructor.
-data UpdatePullRequestDescriptionResponse = UpdatePullRequestDescriptionResponse'
-  { _uprdrsResponseStatus :: !Int
-  , _uprdrsPullRequest    :: !PullRequest
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdatePullRequestDescriptionResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uprdrsResponseStatus' - -- | The response status code.
---
--- * 'uprdrsPullRequest' - Information about the updated pull request.
-updatePullRequestDescriptionResponse
-    :: Int -- ^ 'uprdrsResponseStatus'
-    -> PullRequest -- ^ 'uprdrsPullRequest'
-    -> UpdatePullRequestDescriptionResponse
-updatePullRequestDescriptionResponse pResponseStatus_ pPullRequest_ =
-  UpdatePullRequestDescriptionResponse'
-    { _uprdrsResponseStatus = pResponseStatus_
-    , _uprdrsPullRequest = pPullRequest_
-    }
-
-
--- | -- | The response status code.
-uprdrsResponseStatus :: Lens' UpdatePullRequestDescriptionResponse Int
-uprdrsResponseStatus = lens _uprdrsResponseStatus (\ s a -> s{_uprdrsResponseStatus = a})
-
--- | Information about the updated pull request.
-uprdrsPullRequest :: Lens' UpdatePullRequestDescriptionResponse PullRequest
-uprdrsPullRequest = lens _uprdrsPullRequest (\ s a -> s{_uprdrsPullRequest = a})
-
-instance NFData UpdatePullRequestDescriptionResponse
-         where
diff --git a/gen/Network/AWS/CodeCommit/UpdatePullRequestStatus.hs b/gen/Network/AWS/CodeCommit/UpdatePullRequestStatus.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/UpdatePullRequestStatus.hs
+++ /dev/null
@@ -1,152 +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.CodeCommit.UpdatePullRequestStatus
--- 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 status of a pull request.
---
---
-module Network.AWS.CodeCommit.UpdatePullRequestStatus
-    (
-    -- * Creating a Request
-      updatePullRequestStatus
-    , UpdatePullRequestStatus
-    -- * Request Lenses
-    , uprsPullRequestId
-    , uprsPullRequestStatus
-
-    -- * Destructuring the Response
-    , updatePullRequestStatusResponse
-    , UpdatePullRequestStatusResponse
-    -- * Response Lenses
-    , uprsrsResponseStatus
-    , uprsrsPullRequest
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'updatePullRequestStatus' smart constructor.
-data UpdatePullRequestStatus = UpdatePullRequestStatus'
-  { _uprsPullRequestId     :: !Text
-  , _uprsPullRequestStatus :: !PullRequestStatusEnum
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdatePullRequestStatus' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uprsPullRequestId' - The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
---
--- * 'uprsPullRequestStatus' - The status of the pull request. The only valid operations are to update the status from @OPEN@ to @OPEN@ , @OPEN@ to @CLOSED@ or from from @CLOSED@ to @CLOSED@ .
-updatePullRequestStatus
-    :: Text -- ^ 'uprsPullRequestId'
-    -> PullRequestStatusEnum -- ^ 'uprsPullRequestStatus'
-    -> UpdatePullRequestStatus
-updatePullRequestStatus pPullRequestId_ pPullRequestStatus_ =
-  UpdatePullRequestStatus'
-    { _uprsPullRequestId = pPullRequestId_
-    , _uprsPullRequestStatus = pPullRequestStatus_
-    }
-
-
--- | The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
-uprsPullRequestId :: Lens' UpdatePullRequestStatus Text
-uprsPullRequestId = lens _uprsPullRequestId (\ s a -> s{_uprsPullRequestId = a})
-
--- | The status of the pull request. The only valid operations are to update the status from @OPEN@ to @OPEN@ , @OPEN@ to @CLOSED@ or from from @CLOSED@ to @CLOSED@ .
-uprsPullRequestStatus :: Lens' UpdatePullRequestStatus PullRequestStatusEnum
-uprsPullRequestStatus = lens _uprsPullRequestStatus (\ s a -> s{_uprsPullRequestStatus = a})
-
-instance AWSRequest UpdatePullRequestStatus where
-        type Rs UpdatePullRequestStatus =
-             UpdatePullRequestStatusResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 UpdatePullRequestStatusResponse' <$>
-                   (pure (fromEnum s)) <*> (x .:> "pullRequest"))
-
-instance Hashable UpdatePullRequestStatus where
-
-instance NFData UpdatePullRequestStatus where
-
-instance ToHeaders UpdatePullRequestStatus where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.UpdatePullRequestStatus" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdatePullRequestStatus where
-        toJSON UpdatePullRequestStatus'{..}
-          = object
-              (catMaybes
-                 [Just ("pullRequestId" .= _uprsPullRequestId),
-                  Just
-                    ("pullRequestStatus" .= _uprsPullRequestStatus)])
-
-instance ToPath UpdatePullRequestStatus where
-        toPath = const "/"
-
-instance ToQuery UpdatePullRequestStatus where
-        toQuery = const mempty
-
--- | /See:/ 'updatePullRequestStatusResponse' smart constructor.
-data UpdatePullRequestStatusResponse = UpdatePullRequestStatusResponse'
-  { _uprsrsResponseStatus :: !Int
-  , _uprsrsPullRequest    :: !PullRequest
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdatePullRequestStatusResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uprsrsResponseStatus' - -- | The response status code.
---
--- * 'uprsrsPullRequest' - Information about the pull request.
-updatePullRequestStatusResponse
-    :: Int -- ^ 'uprsrsResponseStatus'
-    -> PullRequest -- ^ 'uprsrsPullRequest'
-    -> UpdatePullRequestStatusResponse
-updatePullRequestStatusResponse pResponseStatus_ pPullRequest_ =
-  UpdatePullRequestStatusResponse'
-    { _uprsrsResponseStatus = pResponseStatus_
-    , _uprsrsPullRequest = pPullRequest_
-    }
-
-
--- | -- | The response status code.
-uprsrsResponseStatus :: Lens' UpdatePullRequestStatusResponse Int
-uprsrsResponseStatus = lens _uprsrsResponseStatus (\ s a -> s{_uprsrsResponseStatus = a})
-
--- | Information about the pull request.
-uprsrsPullRequest :: Lens' UpdatePullRequestStatusResponse PullRequest
-uprsrsPullRequest = lens _uprsrsPullRequest (\ s a -> s{_uprsrsPullRequest = a})
-
-instance NFData UpdatePullRequestStatusResponse where
diff --git a/gen/Network/AWS/CodeCommit/UpdatePullRequestTitle.hs b/gen/Network/AWS/CodeCommit/UpdatePullRequestTitle.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/UpdatePullRequestTitle.hs
+++ /dev/null
@@ -1,149 +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.CodeCommit.UpdatePullRequestTitle
--- 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)
---
--- Replaces the title of a pull request.
---
---
-module Network.AWS.CodeCommit.UpdatePullRequestTitle
-    (
-    -- * Creating a Request
-      updatePullRequestTitle
-    , UpdatePullRequestTitle
-    -- * Request Lenses
-    , uprtPullRequestId
-    , uprtTitle
-
-    -- * Destructuring the Response
-    , updatePullRequestTitleResponse
-    , UpdatePullRequestTitleResponse
-    -- * Response Lenses
-    , uprtrsResponseStatus
-    , uprtrsPullRequest
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'updatePullRequestTitle' smart constructor.
-data UpdatePullRequestTitle = UpdatePullRequestTitle'
-  { _uprtPullRequestId :: !Text
-  , _uprtTitle         :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdatePullRequestTitle' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uprtPullRequestId' - The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
---
--- * 'uprtTitle' - The updated title of the pull request. This will replace the existing title.
-updatePullRequestTitle
-    :: Text -- ^ 'uprtPullRequestId'
-    -> Text -- ^ 'uprtTitle'
-    -> UpdatePullRequestTitle
-updatePullRequestTitle pPullRequestId_ pTitle_ =
-  UpdatePullRequestTitle'
-    {_uprtPullRequestId = pPullRequestId_, _uprtTitle = pTitle_}
-
-
--- | The system-generated ID of the pull request. To get this ID, use 'ListPullRequests' .
-uprtPullRequestId :: Lens' UpdatePullRequestTitle Text
-uprtPullRequestId = lens _uprtPullRequestId (\ s a -> s{_uprtPullRequestId = a})
-
--- | The updated title of the pull request. This will replace the existing title.
-uprtTitle :: Lens' UpdatePullRequestTitle Text
-uprtTitle = lens _uprtTitle (\ s a -> s{_uprtTitle = a})
-
-instance AWSRequest UpdatePullRequestTitle where
-        type Rs UpdatePullRequestTitle =
-             UpdatePullRequestTitleResponse
-        request = postJSON codeCommit
-        response
-          = receiveJSON
-              (\ s h x ->
-                 UpdatePullRequestTitleResponse' <$>
-                   (pure (fromEnum s)) <*> (x .:> "pullRequest"))
-
-instance Hashable UpdatePullRequestTitle where
-
-instance NFData UpdatePullRequestTitle where
-
-instance ToHeaders UpdatePullRequestTitle where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.UpdatePullRequestTitle" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdatePullRequestTitle where
-        toJSON UpdatePullRequestTitle'{..}
-          = object
-              (catMaybes
-                 [Just ("pullRequestId" .= _uprtPullRequestId),
-                  Just ("title" .= _uprtTitle)])
-
-instance ToPath UpdatePullRequestTitle where
-        toPath = const "/"
-
-instance ToQuery UpdatePullRequestTitle where
-        toQuery = const mempty
-
--- | /See:/ 'updatePullRequestTitleResponse' smart constructor.
-data UpdatePullRequestTitleResponse = UpdatePullRequestTitleResponse'
-  { _uprtrsResponseStatus :: !Int
-  , _uprtrsPullRequest    :: !PullRequest
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdatePullRequestTitleResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uprtrsResponseStatus' - -- | The response status code.
---
--- * 'uprtrsPullRequest' - Information about the updated pull request.
-updatePullRequestTitleResponse
-    :: Int -- ^ 'uprtrsResponseStatus'
-    -> PullRequest -- ^ 'uprtrsPullRequest'
-    -> UpdatePullRequestTitleResponse
-updatePullRequestTitleResponse pResponseStatus_ pPullRequest_ =
-  UpdatePullRequestTitleResponse'
-    { _uprtrsResponseStatus = pResponseStatus_
-    , _uprtrsPullRequest = pPullRequest_
-    }
-
-
--- | -- | The response status code.
-uprtrsResponseStatus :: Lens' UpdatePullRequestTitleResponse Int
-uprtrsResponseStatus = lens _uprtrsResponseStatus (\ s a -> s{_uprtrsResponseStatus = a})
-
--- | Information about the updated pull request.
-uprtrsPullRequest :: Lens' UpdatePullRequestTitleResponse PullRequest
-uprtrsPullRequest = lens _uprtrsPullRequest (\ s a -> s{_uprtrsPullRequest = a})
-
-instance NFData UpdatePullRequestTitleResponse where
diff --git a/gen/Network/AWS/CodeCommit/UpdateRepositoryDescription.hs b/gen/Network/AWS/CodeCommit/UpdateRepositoryDescription.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/UpdateRepositoryDescription.hs
+++ /dev/null
@@ -1,128 +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.CodeCommit.UpdateRepositoryDescription
--- 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)
---
--- Sets or changes the comment or description for a repository.
---
---
-module Network.AWS.CodeCommit.UpdateRepositoryDescription
-    (
-    -- * Creating a Request
-      updateRepositoryDescription
-    , UpdateRepositoryDescription
-    -- * Request Lenses
-    , urdRepositoryDescription
-    , urdRepositoryName
-
-    -- * Destructuring the Response
-    , updateRepositoryDescriptionResponse
-    , UpdateRepositoryDescriptionResponse
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of an update repository description operation.
---
---
---
--- /See:/ 'updateRepositoryDescription' smart constructor.
-data UpdateRepositoryDescription = UpdateRepositoryDescription'
-  { _urdRepositoryDescription :: !(Maybe Text)
-  , _urdRepositoryName        :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateRepositoryDescription' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'urdRepositoryDescription' - The new comment or description for the specified repository. Repository descriptions are limited to 1,000 characters.
---
--- * 'urdRepositoryName' - The name of the repository to set or change the comment or description for.
-updateRepositoryDescription
-    :: Text -- ^ 'urdRepositoryName'
-    -> UpdateRepositoryDescription
-updateRepositoryDescription pRepositoryName_ =
-  UpdateRepositoryDescription'
-    {_urdRepositoryDescription = Nothing, _urdRepositoryName = pRepositoryName_}
-
-
--- | The new comment or description for the specified repository. Repository descriptions are limited to 1,000 characters.
-urdRepositoryDescription :: Lens' UpdateRepositoryDescription (Maybe Text)
-urdRepositoryDescription = lens _urdRepositoryDescription (\ s a -> s{_urdRepositoryDescription = a})
-
--- | The name of the repository to set or change the comment or description for.
-urdRepositoryName :: Lens' UpdateRepositoryDescription Text
-urdRepositoryName = lens _urdRepositoryName (\ s a -> s{_urdRepositoryName = a})
-
-instance AWSRequest UpdateRepositoryDescription where
-        type Rs UpdateRepositoryDescription =
-             UpdateRepositoryDescriptionResponse
-        request = postJSON codeCommit
-        response
-          = receiveNull UpdateRepositoryDescriptionResponse'
-
-instance Hashable UpdateRepositoryDescription where
-
-instance NFData UpdateRepositoryDescription where
-
-instance ToHeaders UpdateRepositoryDescription where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.UpdateRepositoryDescription" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdateRepositoryDescription where
-        toJSON UpdateRepositoryDescription'{..}
-          = object
-              (catMaybes
-                 [("repositoryDescription" .=) <$>
-                    _urdRepositoryDescription,
-                  Just ("repositoryName" .= _urdRepositoryName)])
-
-instance ToPath UpdateRepositoryDescription where
-        toPath = const "/"
-
-instance ToQuery UpdateRepositoryDescription where
-        toQuery = const mempty
-
--- | /See:/ 'updateRepositoryDescriptionResponse' smart constructor.
-data UpdateRepositoryDescriptionResponse =
-  UpdateRepositoryDescriptionResponse'
-  deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateRepositoryDescriptionResponse' with the minimum fields required to make a request.
---
-updateRepositoryDescriptionResponse
-    :: UpdateRepositoryDescriptionResponse
-updateRepositoryDescriptionResponse = UpdateRepositoryDescriptionResponse'
-
-
-instance NFData UpdateRepositoryDescriptionResponse
-         where
diff --git a/gen/Network/AWS/CodeCommit/UpdateRepositoryName.hs b/gen/Network/AWS/CodeCommit/UpdateRepositoryName.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/UpdateRepositoryName.hs
+++ /dev/null
@@ -1,125 +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.CodeCommit.UpdateRepositoryName
--- 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)
---
--- Renames a repository. The repository name must be unique across the calling AWS account. In addition, repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. The suffix ".git" is prohibited. For a full description of the limits on repository names, see <http://docs.aws.amazon.com/codecommit/latest/userguide/limits.html Limits> in the AWS CodeCommit User Guide.
---
---
-module Network.AWS.CodeCommit.UpdateRepositoryName
-    (
-    -- * Creating a Request
-      updateRepositoryName
-    , UpdateRepositoryName
-    -- * Request Lenses
-    , urnOldName
-    , urnNewName
-
-    -- * Destructuring the Response
-    , updateRepositoryNameResponse
-    , UpdateRepositoryNameResponse
-    ) where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.CodeCommit.Types.Product
-import Network.AWS.Lens
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Represents the input of an update repository description operation.
---
---
---
--- /See:/ 'updateRepositoryName' smart constructor.
-data UpdateRepositoryName = UpdateRepositoryName'
-  { _urnOldName :: !Text
-  , _urnNewName :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateRepositoryName' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'urnOldName' - The existing name of the repository.
---
--- * 'urnNewName' - The new name for the repository.
-updateRepositoryName
-    :: Text -- ^ 'urnOldName'
-    -> Text -- ^ 'urnNewName'
-    -> UpdateRepositoryName
-updateRepositoryName pOldName_ pNewName_ =
-  UpdateRepositoryName' {_urnOldName = pOldName_, _urnNewName = pNewName_}
-
-
--- | The existing name of the repository.
-urnOldName :: Lens' UpdateRepositoryName Text
-urnOldName = lens _urnOldName (\ s a -> s{_urnOldName = a})
-
--- | The new name for the repository.
-urnNewName :: Lens' UpdateRepositoryName Text
-urnNewName = lens _urnNewName (\ s a -> s{_urnNewName = a})
-
-instance AWSRequest UpdateRepositoryName where
-        type Rs UpdateRepositoryName =
-             UpdateRepositoryNameResponse
-        request = postJSON codeCommit
-        response = receiveNull UpdateRepositoryNameResponse'
-
-instance Hashable UpdateRepositoryName where
-
-instance NFData UpdateRepositoryName where
-
-instance ToHeaders UpdateRepositoryName where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("CodeCommit_20150413.UpdateRepositoryName" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdateRepositoryName where
-        toJSON UpdateRepositoryName'{..}
-          = object
-              (catMaybes
-                 [Just ("oldName" .= _urnOldName),
-                  Just ("newName" .= _urnNewName)])
-
-instance ToPath UpdateRepositoryName where
-        toPath = const "/"
-
-instance ToQuery UpdateRepositoryName where
-        toQuery = const mempty
-
--- | /See:/ 'updateRepositoryNameResponse' smart constructor.
-data UpdateRepositoryNameResponse =
-  UpdateRepositoryNameResponse'
-  deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateRepositoryNameResponse' with the minimum fields required to make a request.
---
-updateRepositoryNameResponse
-    :: UpdateRepositoryNameResponse
-updateRepositoryNameResponse = UpdateRepositoryNameResponse'
-
-
-instance NFData UpdateRepositoryNameResponse where
diff --git a/gen/Network/AWS/CodeCommit/Waiters.hs b/gen/Network/AWS/CodeCommit/Waiters.hs
deleted file mode 100644
--- a/gen/Network/AWS/CodeCommit/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.CodeCommit.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.CodeCommit.Waiters where
-
-import Network.AWS.CodeCommit.Types
-import Network.AWS.Lens
-import Network.AWS.Prelude
-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.CodeCommit
+import Test.Amazonka.CodeCommit.Internal
 import Test.Tasty
-import Test.AWS.CodeCommit
-import Test.AWS.CodeCommit.Internal
 
 main :: IO ()
-main = defaultMain $ testGroup "CodeCommit"
-    [ testGroup "tests"    tests
-    , testGroup "fixtures" fixtures
-    ]
+main =
+  defaultMain $
+    testGroup
+      "CodeCommit"
+      [ testGroup "tests" tests,
+        testGroup "fixtures" fixtures
+      ]
diff --git a/test/Test/AWS/CodeCommit.hs b/test/Test/AWS/CodeCommit.hs
deleted file mode 100644
--- a/test/Test/AWS/CodeCommit.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-
--- Module      : Test.AWS.CodeCommit
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
--- Portability : non-portable (GHC extensions)
-
-module Test.AWS.CodeCommit
-    ( tests
-    , fixtures
-    ) where
-
-import           Network.AWS.CodeCommit
-import           Test.AWS.Gen.CodeCommit
-import           Test.Tasty
-
-tests :: [TestTree]
-tests = []
-
-fixtures :: [TestTree]
-fixtures = []
diff --git a/test/Test/AWS/CodeCommit/Internal.hs b/test/Test/AWS/CodeCommit/Internal.hs
deleted file mode 100644
--- a/test/Test/AWS/CodeCommit/Internal.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- Module      : Test.AWS.CodeCommit.Internal
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
--- Portability : non-portable (GHC extensions)
-
-module Test.AWS.CodeCommit.Internal where
-
-import           Test.AWS.Prelude
diff --git a/test/Test/AWS/Gen/CodeCommit.hs b/test/Test/AWS/Gen/CodeCommit.hs
deleted file mode 100644
--- a/test/Test/AWS/Gen/CodeCommit.hs
+++ /dev/null
@@ -1,687 +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.CodeCommit
--- 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.CodeCommit where
-
-import Data.Proxy
-import Network.AWS.CodeCommit
-import Test.AWS.CodeCommit.Internal
-import Test.AWS.Fixture
-import Test.AWS.Prelude
-import Test.Tasty
-
--- Auto-generated: the actual test selection needs to be manually placed into
--- the top-level so that real test data can be incrementally added.
---
--- This commented snippet is what the entire set should look like:
-
--- fixtures :: TestTree
--- fixtures =
---     [ testGroup "request"
---         [ requestMergePullRequestByFastForward $
---             mergePullRequestByFastForward
---
---         , requestUpdateRepositoryName $
---             updateRepositoryName
---
---         , requestPostCommentForPullRequest $
---             postCommentForPullRequest
---
---         , requestGetCommit $
---             getCommit
---
---         , requestGetBranch $
---             getBranch
---
---         , requestGetDifferences $
---             getDifferences
---
---         , requestGetPullRequest $
---             getPullRequest
---
---         , requestListPullRequests $
---             listPullRequests
---
---         , requestGetComment $
---             getComment
---
---         , requestDeleteBranch $
---             deleteBranch
---
---         , requestUpdateRepositoryDescription $
---             updateRepositoryDescription
---
---         , requestCreateBranch $
---             createBranch
---
---         , requestCreatePullRequest $
---             createPullRequest
---
---         , requestListBranches $
---             listBranches
---
---         , requestUpdatePullRequestDescription $
---             updatePullRequestDescription
---
---         , requestListRepositories $
---             listRepositories
---
---         , requestCreateRepository $
---             createRepository
---
---         , requestUpdateDefaultBranch $
---             updateDefaultBranch
---
---         , requestPostCommentReply $
---             postCommentReply
---
---         , requestGetRepository $
---             getRepository
---
---         , requestGetRepositoryTriggers $
---             getRepositoryTriggers
---
---         , requestPutFile $
---             putFile
---
---         , requestGetCommentsForComparedCommit $
---             getCommentsForComparedCommit
---
---         , requestTestRepositoryTriggers $
---             testRepositoryTriggers
---
---         , requestUpdateComment $
---             updateComment
---
---         , requestPostCommentForComparedCommit $
---             postCommentForComparedCommit
---
---         , requestUpdatePullRequestTitle $
---             updatePullRequestTitle
---
---         , requestGetBlob $
---             getBlob
---
---         , requestPutRepositoryTriggers $
---             putRepositoryTriggers
---
---         , requestGetMergeConflicts $
---             getMergeConflicts
---
---         , requestDeleteRepository $
---             deleteRepository
---
---         , requestDeleteCommentContent $
---             deleteCommentContent
---
---         , requestDescribePullRequestEvents $
---             describePullRequestEvents
---
---         , requestBatchGetRepositories $
---             batchGetRepositories
---
---         , requestGetCommentsForPullRequest $
---             getCommentsForPullRequest
---
---         , requestUpdatePullRequestStatus $
---             updatePullRequestStatus
---
---           ]
-
---     , testGroup "response"
---         [ responseMergePullRequestByFastForward $
---             mergePullRequestByFastForwardResponse
---
---         , responseUpdateRepositoryName $
---             updateRepositoryNameResponse
---
---         , responsePostCommentForPullRequest $
---             postCommentForPullRequestResponse
---
---         , responseGetCommit $
---             getCommitResponse
---
---         , responseGetBranch $
---             getBranchResponse
---
---         , responseGetDifferences $
---             getDifferencesResponse
---
---         , responseGetPullRequest $
---             getPullRequestResponse
---
---         , responseListPullRequests $
---             listPullRequestsResponse
---
---         , responseGetComment $
---             getCommentResponse
---
---         , responseDeleteBranch $
---             deleteBranchResponse
---
---         , responseUpdateRepositoryDescription $
---             updateRepositoryDescriptionResponse
---
---         , responseCreateBranch $
---             createBranchResponse
---
---         , responseCreatePullRequest $
---             createPullRequestResponse
---
---         , responseListBranches $
---             listBranchesResponse
---
---         , responseUpdatePullRequestDescription $
---             updatePullRequestDescriptionResponse
---
---         , responseListRepositories $
---             listRepositoriesResponse
---
---         , responseCreateRepository $
---             createRepositoryResponse
---
---         , responseUpdateDefaultBranch $
---             updateDefaultBranchResponse
---
---         , responsePostCommentReply $
---             postCommentReplyResponse
---
---         , responseGetRepository $
---             getRepositoryResponse
---
---         , responseGetRepositoryTriggers $
---             getRepositoryTriggersResponse
---
---         , responsePutFile $
---             putFileResponse
---
---         , responseGetCommentsForComparedCommit $
---             getCommentsForComparedCommitResponse
---
---         , responseTestRepositoryTriggers $
---             testRepositoryTriggersResponse
---
---         , responseUpdateComment $
---             updateCommentResponse
---
---         , responsePostCommentForComparedCommit $
---             postCommentForComparedCommitResponse
---
---         , responseUpdatePullRequestTitle $
---             updatePullRequestTitleResponse
---
---         , responseGetBlob $
---             getBlobResponse
---
---         , responsePutRepositoryTriggers $
---             putRepositoryTriggersResponse
---
---         , responseGetMergeConflicts $
---             getMergeConflictsResponse
---
---         , responseDeleteRepository $
---             deleteRepositoryResponse
---
---         , responseDeleteCommentContent $
---             deleteCommentContentResponse
---
---         , responseDescribePullRequestEvents $
---             describePullRequestEventsResponse
---
---         , responseBatchGetRepositories $
---             batchGetRepositoriesResponse
---
---         , responseGetCommentsForPullRequest $
---             getCommentsForPullRequestResponse
---
---         , responseUpdatePullRequestStatus $
---             updatePullRequestStatusResponse
---
---           ]
---     ]
-
--- Requests
-
-requestMergePullRequestByFastForward :: MergePullRequestByFastForward -> TestTree
-requestMergePullRequestByFastForward = req
-    "MergePullRequestByFastForward"
-    "fixture/MergePullRequestByFastForward.yaml"
-
-requestUpdateRepositoryName :: UpdateRepositoryName -> TestTree
-requestUpdateRepositoryName = req
-    "UpdateRepositoryName"
-    "fixture/UpdateRepositoryName.yaml"
-
-requestPostCommentForPullRequest :: PostCommentForPullRequest -> TestTree
-requestPostCommentForPullRequest = req
-    "PostCommentForPullRequest"
-    "fixture/PostCommentForPullRequest.yaml"
-
-requestGetCommit :: GetCommit -> TestTree
-requestGetCommit = req
-    "GetCommit"
-    "fixture/GetCommit.yaml"
-
-requestGetBranch :: GetBranch -> TestTree
-requestGetBranch = req
-    "GetBranch"
-    "fixture/GetBranch.yaml"
-
-requestGetDifferences :: GetDifferences -> TestTree
-requestGetDifferences = req
-    "GetDifferences"
-    "fixture/GetDifferences.yaml"
-
-requestGetPullRequest :: GetPullRequest -> TestTree
-requestGetPullRequest = req
-    "GetPullRequest"
-    "fixture/GetPullRequest.yaml"
-
-requestListPullRequests :: ListPullRequests -> TestTree
-requestListPullRequests = req
-    "ListPullRequests"
-    "fixture/ListPullRequests.yaml"
-
-requestGetComment :: GetComment -> TestTree
-requestGetComment = req
-    "GetComment"
-    "fixture/GetComment.yaml"
-
-requestDeleteBranch :: DeleteBranch -> TestTree
-requestDeleteBranch = req
-    "DeleteBranch"
-    "fixture/DeleteBranch.yaml"
-
-requestUpdateRepositoryDescription :: UpdateRepositoryDescription -> TestTree
-requestUpdateRepositoryDescription = req
-    "UpdateRepositoryDescription"
-    "fixture/UpdateRepositoryDescription.yaml"
-
-requestCreateBranch :: CreateBranch -> TestTree
-requestCreateBranch = req
-    "CreateBranch"
-    "fixture/CreateBranch.yaml"
-
-requestCreatePullRequest :: CreatePullRequest -> TestTree
-requestCreatePullRequest = req
-    "CreatePullRequest"
-    "fixture/CreatePullRequest.yaml"
-
-requestListBranches :: ListBranches -> TestTree
-requestListBranches = req
-    "ListBranches"
-    "fixture/ListBranches.yaml"
-
-requestUpdatePullRequestDescription :: UpdatePullRequestDescription -> TestTree
-requestUpdatePullRequestDescription = req
-    "UpdatePullRequestDescription"
-    "fixture/UpdatePullRequestDescription.yaml"
-
-requestListRepositories :: ListRepositories -> TestTree
-requestListRepositories = req
-    "ListRepositories"
-    "fixture/ListRepositories.yaml"
-
-requestCreateRepository :: CreateRepository -> TestTree
-requestCreateRepository = req
-    "CreateRepository"
-    "fixture/CreateRepository.yaml"
-
-requestUpdateDefaultBranch :: UpdateDefaultBranch -> TestTree
-requestUpdateDefaultBranch = req
-    "UpdateDefaultBranch"
-    "fixture/UpdateDefaultBranch.yaml"
-
-requestPostCommentReply :: PostCommentReply -> TestTree
-requestPostCommentReply = req
-    "PostCommentReply"
-    "fixture/PostCommentReply.yaml"
-
-requestGetRepository :: GetRepository -> TestTree
-requestGetRepository = req
-    "GetRepository"
-    "fixture/GetRepository.yaml"
-
-requestGetRepositoryTriggers :: GetRepositoryTriggers -> TestTree
-requestGetRepositoryTriggers = req
-    "GetRepositoryTriggers"
-    "fixture/GetRepositoryTriggers.yaml"
-
-requestPutFile :: PutFile -> TestTree
-requestPutFile = req
-    "PutFile"
-    "fixture/PutFile.yaml"
-
-requestGetCommentsForComparedCommit :: GetCommentsForComparedCommit -> TestTree
-requestGetCommentsForComparedCommit = req
-    "GetCommentsForComparedCommit"
-    "fixture/GetCommentsForComparedCommit.yaml"
-
-requestTestRepositoryTriggers :: TestRepositoryTriggers -> TestTree
-requestTestRepositoryTriggers = req
-    "TestRepositoryTriggers"
-    "fixture/TestRepositoryTriggers.yaml"
-
-requestUpdateComment :: UpdateComment -> TestTree
-requestUpdateComment = req
-    "UpdateComment"
-    "fixture/UpdateComment.yaml"
-
-requestPostCommentForComparedCommit :: PostCommentForComparedCommit -> TestTree
-requestPostCommentForComparedCommit = req
-    "PostCommentForComparedCommit"
-    "fixture/PostCommentForComparedCommit.yaml"
-
-requestUpdatePullRequestTitle :: UpdatePullRequestTitle -> TestTree
-requestUpdatePullRequestTitle = req
-    "UpdatePullRequestTitle"
-    "fixture/UpdatePullRequestTitle.yaml"
-
-requestGetBlob :: GetBlob -> TestTree
-requestGetBlob = req
-    "GetBlob"
-    "fixture/GetBlob.yaml"
-
-requestPutRepositoryTriggers :: PutRepositoryTriggers -> TestTree
-requestPutRepositoryTriggers = req
-    "PutRepositoryTriggers"
-    "fixture/PutRepositoryTriggers.yaml"
-
-requestGetMergeConflicts :: GetMergeConflicts -> TestTree
-requestGetMergeConflicts = req
-    "GetMergeConflicts"
-    "fixture/GetMergeConflicts.yaml"
-
-requestDeleteRepository :: DeleteRepository -> TestTree
-requestDeleteRepository = req
-    "DeleteRepository"
-    "fixture/DeleteRepository.yaml"
-
-requestDeleteCommentContent :: DeleteCommentContent -> TestTree
-requestDeleteCommentContent = req
-    "DeleteCommentContent"
-    "fixture/DeleteCommentContent.yaml"
-
-requestDescribePullRequestEvents :: DescribePullRequestEvents -> TestTree
-requestDescribePullRequestEvents = req
-    "DescribePullRequestEvents"
-    "fixture/DescribePullRequestEvents.yaml"
-
-requestBatchGetRepositories :: BatchGetRepositories -> TestTree
-requestBatchGetRepositories = req
-    "BatchGetRepositories"
-    "fixture/BatchGetRepositories.yaml"
-
-requestGetCommentsForPullRequest :: GetCommentsForPullRequest -> TestTree
-requestGetCommentsForPullRequest = req
-    "GetCommentsForPullRequest"
-    "fixture/GetCommentsForPullRequest.yaml"
-
-requestUpdatePullRequestStatus :: UpdatePullRequestStatus -> TestTree
-requestUpdatePullRequestStatus = req
-    "UpdatePullRequestStatus"
-    "fixture/UpdatePullRequestStatus.yaml"
-
--- Responses
-
-responseMergePullRequestByFastForward :: MergePullRequestByFastForwardResponse -> TestTree
-responseMergePullRequestByFastForward = res
-    "MergePullRequestByFastForwardResponse"
-    "fixture/MergePullRequestByFastForwardResponse.proto"
-    codeCommit
-    (Proxy :: Proxy MergePullRequestByFastForward)
-
-responseUpdateRepositoryName :: UpdateRepositoryNameResponse -> TestTree
-responseUpdateRepositoryName = res
-    "UpdateRepositoryNameResponse"
-    "fixture/UpdateRepositoryNameResponse.proto"
-    codeCommit
-    (Proxy :: Proxy UpdateRepositoryName)
-
-responsePostCommentForPullRequest :: PostCommentForPullRequestResponse -> TestTree
-responsePostCommentForPullRequest = res
-    "PostCommentForPullRequestResponse"
-    "fixture/PostCommentForPullRequestResponse.proto"
-    codeCommit
-    (Proxy :: Proxy PostCommentForPullRequest)
-
-responseGetCommit :: GetCommitResponse -> TestTree
-responseGetCommit = res
-    "GetCommitResponse"
-    "fixture/GetCommitResponse.proto"
-    codeCommit
-    (Proxy :: Proxy GetCommit)
-
-responseGetBranch :: GetBranchResponse -> TestTree
-responseGetBranch = res
-    "GetBranchResponse"
-    "fixture/GetBranchResponse.proto"
-    codeCommit
-    (Proxy :: Proxy GetBranch)
-
-responseGetDifferences :: GetDifferencesResponse -> TestTree
-responseGetDifferences = res
-    "GetDifferencesResponse"
-    "fixture/GetDifferencesResponse.proto"
-    codeCommit
-    (Proxy :: Proxy GetDifferences)
-
-responseGetPullRequest :: GetPullRequestResponse -> TestTree
-responseGetPullRequest = res
-    "GetPullRequestResponse"
-    "fixture/GetPullRequestResponse.proto"
-    codeCommit
-    (Proxy :: Proxy GetPullRequest)
-
-responseListPullRequests :: ListPullRequestsResponse -> TestTree
-responseListPullRequests = res
-    "ListPullRequestsResponse"
-    "fixture/ListPullRequestsResponse.proto"
-    codeCommit
-    (Proxy :: Proxy ListPullRequests)
-
-responseGetComment :: GetCommentResponse -> TestTree
-responseGetComment = res
-    "GetCommentResponse"
-    "fixture/GetCommentResponse.proto"
-    codeCommit
-    (Proxy :: Proxy GetComment)
-
-responseDeleteBranch :: DeleteBranchResponse -> TestTree
-responseDeleteBranch = res
-    "DeleteBranchResponse"
-    "fixture/DeleteBranchResponse.proto"
-    codeCommit
-    (Proxy :: Proxy DeleteBranch)
-
-responseUpdateRepositoryDescription :: UpdateRepositoryDescriptionResponse -> TestTree
-responseUpdateRepositoryDescription = res
-    "UpdateRepositoryDescriptionResponse"
-    "fixture/UpdateRepositoryDescriptionResponse.proto"
-    codeCommit
-    (Proxy :: Proxy UpdateRepositoryDescription)
-
-responseCreateBranch :: CreateBranchResponse -> TestTree
-responseCreateBranch = res
-    "CreateBranchResponse"
-    "fixture/CreateBranchResponse.proto"
-    codeCommit
-    (Proxy :: Proxy CreateBranch)
-
-responseCreatePullRequest :: CreatePullRequestResponse -> TestTree
-responseCreatePullRequest = res
-    "CreatePullRequestResponse"
-    "fixture/CreatePullRequestResponse.proto"
-    codeCommit
-    (Proxy :: Proxy CreatePullRequest)
-
-responseListBranches :: ListBranchesResponse -> TestTree
-responseListBranches = res
-    "ListBranchesResponse"
-    "fixture/ListBranchesResponse.proto"
-    codeCommit
-    (Proxy :: Proxy ListBranches)
-
-responseUpdatePullRequestDescription :: UpdatePullRequestDescriptionResponse -> TestTree
-responseUpdatePullRequestDescription = res
-    "UpdatePullRequestDescriptionResponse"
-    "fixture/UpdatePullRequestDescriptionResponse.proto"
-    codeCommit
-    (Proxy :: Proxy UpdatePullRequestDescription)
-
-responseListRepositories :: ListRepositoriesResponse -> TestTree
-responseListRepositories = res
-    "ListRepositoriesResponse"
-    "fixture/ListRepositoriesResponse.proto"
-    codeCommit
-    (Proxy :: Proxy ListRepositories)
-
-responseCreateRepository :: CreateRepositoryResponse -> TestTree
-responseCreateRepository = res
-    "CreateRepositoryResponse"
-    "fixture/CreateRepositoryResponse.proto"
-    codeCommit
-    (Proxy :: Proxy CreateRepository)
-
-responseUpdateDefaultBranch :: UpdateDefaultBranchResponse -> TestTree
-responseUpdateDefaultBranch = res
-    "UpdateDefaultBranchResponse"
-    "fixture/UpdateDefaultBranchResponse.proto"
-    codeCommit
-    (Proxy :: Proxy UpdateDefaultBranch)
-
-responsePostCommentReply :: PostCommentReplyResponse -> TestTree
-responsePostCommentReply = res
-    "PostCommentReplyResponse"
-    "fixture/PostCommentReplyResponse.proto"
-    codeCommit
-    (Proxy :: Proxy PostCommentReply)
-
-responseGetRepository :: GetRepositoryResponse -> TestTree
-responseGetRepository = res
-    "GetRepositoryResponse"
-    "fixture/GetRepositoryResponse.proto"
-    codeCommit
-    (Proxy :: Proxy GetRepository)
-
-responseGetRepositoryTriggers :: GetRepositoryTriggersResponse -> TestTree
-responseGetRepositoryTriggers = res
-    "GetRepositoryTriggersResponse"
-    "fixture/GetRepositoryTriggersResponse.proto"
-    codeCommit
-    (Proxy :: Proxy GetRepositoryTriggers)
-
-responsePutFile :: PutFileResponse -> TestTree
-responsePutFile = res
-    "PutFileResponse"
-    "fixture/PutFileResponse.proto"
-    codeCommit
-    (Proxy :: Proxy PutFile)
-
-responseGetCommentsForComparedCommit :: GetCommentsForComparedCommitResponse -> TestTree
-responseGetCommentsForComparedCommit = res
-    "GetCommentsForComparedCommitResponse"
-    "fixture/GetCommentsForComparedCommitResponse.proto"
-    codeCommit
-    (Proxy :: Proxy GetCommentsForComparedCommit)
-
-responseTestRepositoryTriggers :: TestRepositoryTriggersResponse -> TestTree
-responseTestRepositoryTriggers = res
-    "TestRepositoryTriggersResponse"
-    "fixture/TestRepositoryTriggersResponse.proto"
-    codeCommit
-    (Proxy :: Proxy TestRepositoryTriggers)
-
-responseUpdateComment :: UpdateCommentResponse -> TestTree
-responseUpdateComment = res
-    "UpdateCommentResponse"
-    "fixture/UpdateCommentResponse.proto"
-    codeCommit
-    (Proxy :: Proxy UpdateComment)
-
-responsePostCommentForComparedCommit :: PostCommentForComparedCommitResponse -> TestTree
-responsePostCommentForComparedCommit = res
-    "PostCommentForComparedCommitResponse"
-    "fixture/PostCommentForComparedCommitResponse.proto"
-    codeCommit
-    (Proxy :: Proxy PostCommentForComparedCommit)
-
-responseUpdatePullRequestTitle :: UpdatePullRequestTitleResponse -> TestTree
-responseUpdatePullRequestTitle = res
-    "UpdatePullRequestTitleResponse"
-    "fixture/UpdatePullRequestTitleResponse.proto"
-    codeCommit
-    (Proxy :: Proxy UpdatePullRequestTitle)
-
-responseGetBlob :: GetBlobResponse -> TestTree
-responseGetBlob = res
-    "GetBlobResponse"
-    "fixture/GetBlobResponse.proto"
-    codeCommit
-    (Proxy :: Proxy GetBlob)
-
-responsePutRepositoryTriggers :: PutRepositoryTriggersResponse -> TestTree
-responsePutRepositoryTriggers = res
-    "PutRepositoryTriggersResponse"
-    "fixture/PutRepositoryTriggersResponse.proto"
-    codeCommit
-    (Proxy :: Proxy PutRepositoryTriggers)
-
-responseGetMergeConflicts :: GetMergeConflictsResponse -> TestTree
-responseGetMergeConflicts = res
-    "GetMergeConflictsResponse"
-    "fixture/GetMergeConflictsResponse.proto"
-    codeCommit
-    (Proxy :: Proxy GetMergeConflicts)
-
-responseDeleteRepository :: DeleteRepositoryResponse -> TestTree
-responseDeleteRepository = res
-    "DeleteRepositoryResponse"
-    "fixture/DeleteRepositoryResponse.proto"
-    codeCommit
-    (Proxy :: Proxy DeleteRepository)
-
-responseDeleteCommentContent :: DeleteCommentContentResponse -> TestTree
-responseDeleteCommentContent = res
-    "DeleteCommentContentResponse"
-    "fixture/DeleteCommentContentResponse.proto"
-    codeCommit
-    (Proxy :: Proxy DeleteCommentContent)
-
-responseDescribePullRequestEvents :: DescribePullRequestEventsResponse -> TestTree
-responseDescribePullRequestEvents = res
-    "DescribePullRequestEventsResponse"
-    "fixture/DescribePullRequestEventsResponse.proto"
-    codeCommit
-    (Proxy :: Proxy DescribePullRequestEvents)
-
-responseBatchGetRepositories :: BatchGetRepositoriesResponse -> TestTree
-responseBatchGetRepositories = res
-    "BatchGetRepositoriesResponse"
-    "fixture/BatchGetRepositoriesResponse.proto"
-    codeCommit
-    (Proxy :: Proxy BatchGetRepositories)
-
-responseGetCommentsForPullRequest :: GetCommentsForPullRequestResponse -> TestTree
-responseGetCommentsForPullRequest = res
-    "GetCommentsForPullRequestResponse"
-    "fixture/GetCommentsForPullRequestResponse.proto"
-    codeCommit
-    (Proxy :: Proxy GetCommentsForPullRequest)
-
-responseUpdatePullRequestStatus :: UpdatePullRequestStatusResponse -> TestTree
-responseUpdatePullRequestStatus = res
-    "UpdatePullRequestStatusResponse"
-    "fixture/UpdatePullRequestStatusResponse.proto"
-    codeCommit
-    (Proxy :: Proxy UpdatePullRequestStatus)
diff --git a/test/Test/Amazonka/CodeCommit.hs b/test/Test/Amazonka/CodeCommit.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/CodeCommit.hs
@@ -0,0 +1,20 @@
+-- |
+-- Module      : Test.Amazonka.CodeCommit
+-- Copyright   : (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.CodeCommit
+  ( tests,
+    fixtures,
+  )
+where
+
+import Test.Tasty (TestTree)
+
+tests :: [TestTree]
+tests = []
+
+fixtures :: [TestTree]
+fixtures = []
diff --git a/test/Test/Amazonka/CodeCommit/Internal.hs b/test/Test/Amazonka/CodeCommit/Internal.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/CodeCommit/Internal.hs
@@ -0,0 +1,8 @@
+-- |
+-- Module      : Test.Amazonka.CodeCommit.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.CodeCommit.Internal where
diff --git a/test/Test/Amazonka/Gen/CodeCommit.hs b/test/Test/Amazonka/Gen/CodeCommit.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/Gen/CodeCommit.hs
@@ -0,0 +1,1578 @@
+{-# 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.CodeCommit
+-- Copyright   : (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.CodeCommit where
+
+import Amazonka.CodeCommit
+import qualified Data.Proxy as Proxy
+import Test.Amazonka.CodeCommit.Internal
+import Test.Amazonka.Fixture
+import Test.Amazonka.Prelude
+import Test.Tasty
+
+-- Auto-generated: the actual test selection needs to be manually placed into
+-- the top-level so that real test data can be incrementally added.
+--
+-- This commented snippet is what the entire set should look like:
+
+-- fixtures :: TestTree
+-- fixtures =
+--     [ testGroup "request"
+--         [ requestAssociateApprovalRuleTemplateWithRepository $
+--             newAssociateApprovalRuleTemplateWithRepository
+--
+--         , requestBatchAssociateApprovalRuleTemplateWithRepositories $
+--             newBatchAssociateApprovalRuleTemplateWithRepositories
+--
+--         , requestBatchDescribeMergeConflicts $
+--             newBatchDescribeMergeConflicts
+--
+--         , requestBatchDisassociateApprovalRuleTemplateFromRepositories $
+--             newBatchDisassociateApprovalRuleTemplateFromRepositories
+--
+--         , requestBatchGetCommits $
+--             newBatchGetCommits
+--
+--         , requestBatchGetRepositories $
+--             newBatchGetRepositories
+--
+--         , requestCreateApprovalRuleTemplate $
+--             newCreateApprovalRuleTemplate
+--
+--         , requestCreateBranch $
+--             newCreateBranch
+--
+--         , requestCreateCommit $
+--             newCreateCommit
+--
+--         , requestCreatePullRequest $
+--             newCreatePullRequest
+--
+--         , requestCreatePullRequestApprovalRule $
+--             newCreatePullRequestApprovalRule
+--
+--         , requestCreateRepository $
+--             newCreateRepository
+--
+--         , requestCreateUnreferencedMergeCommit $
+--             newCreateUnreferencedMergeCommit
+--
+--         , requestDeleteApprovalRuleTemplate $
+--             newDeleteApprovalRuleTemplate
+--
+--         , requestDeleteBranch $
+--             newDeleteBranch
+--
+--         , requestDeleteCommentContent $
+--             newDeleteCommentContent
+--
+--         , requestDeleteFile $
+--             newDeleteFile
+--
+--         , requestDeletePullRequestApprovalRule $
+--             newDeletePullRequestApprovalRule
+--
+--         , requestDeleteRepository $
+--             newDeleteRepository
+--
+--         , requestDescribeMergeConflicts $
+--             newDescribeMergeConflicts
+--
+--         , requestDescribePullRequestEvents $
+--             newDescribePullRequestEvents
+--
+--         , requestDisassociateApprovalRuleTemplateFromRepository $
+--             newDisassociateApprovalRuleTemplateFromRepository
+--
+--         , requestEvaluatePullRequestApprovalRules $
+--             newEvaluatePullRequestApprovalRules
+--
+--         , requestGetApprovalRuleTemplate $
+--             newGetApprovalRuleTemplate
+--
+--         , requestGetBlob $
+--             newGetBlob
+--
+--         , requestGetBranch $
+--             newGetBranch
+--
+--         , requestGetComment $
+--             newGetComment
+--
+--         , requestGetCommentReactions $
+--             newGetCommentReactions
+--
+--         , requestGetCommentsForComparedCommit $
+--             newGetCommentsForComparedCommit
+--
+--         , requestGetCommentsForPullRequest $
+--             newGetCommentsForPullRequest
+--
+--         , requestGetCommit $
+--             newGetCommit
+--
+--         , requestGetDifferences $
+--             newGetDifferences
+--
+--         , requestGetFile $
+--             newGetFile
+--
+--         , requestGetFolder $
+--             newGetFolder
+--
+--         , requestGetMergeCommit $
+--             newGetMergeCommit
+--
+--         , requestGetMergeConflicts $
+--             newGetMergeConflicts
+--
+--         , requestGetMergeOptions $
+--             newGetMergeOptions
+--
+--         , requestGetPullRequest $
+--             newGetPullRequest
+--
+--         , requestGetPullRequestApprovalStates $
+--             newGetPullRequestApprovalStates
+--
+--         , requestGetPullRequestOverrideState $
+--             newGetPullRequestOverrideState
+--
+--         , requestGetRepository $
+--             newGetRepository
+--
+--         , requestGetRepositoryTriggers $
+--             newGetRepositoryTriggers
+--
+--         , requestListApprovalRuleTemplates $
+--             newListApprovalRuleTemplates
+--
+--         , requestListAssociatedApprovalRuleTemplatesForRepository $
+--             newListAssociatedApprovalRuleTemplatesForRepository
+--
+--         , requestListBranches $
+--             newListBranches
+--
+--         , requestListPullRequests $
+--             newListPullRequests
+--
+--         , requestListRepositories $
+--             newListRepositories
+--
+--         , requestListRepositoriesForApprovalRuleTemplate $
+--             newListRepositoriesForApprovalRuleTemplate
+--
+--         , requestListTagsForResource $
+--             newListTagsForResource
+--
+--         , requestMergeBranchesByFastForward $
+--             newMergeBranchesByFastForward
+--
+--         , requestMergeBranchesBySquash $
+--             newMergeBranchesBySquash
+--
+--         , requestMergeBranchesByThreeWay $
+--             newMergeBranchesByThreeWay
+--
+--         , requestMergePullRequestByFastForward $
+--             newMergePullRequestByFastForward
+--
+--         , requestMergePullRequestBySquash $
+--             newMergePullRequestBySquash
+--
+--         , requestMergePullRequestByThreeWay $
+--             newMergePullRequestByThreeWay
+--
+--         , requestOverridePullRequestApprovalRules $
+--             newOverridePullRequestApprovalRules
+--
+--         , requestPostCommentForComparedCommit $
+--             newPostCommentForComparedCommit
+--
+--         , requestPostCommentForPullRequest $
+--             newPostCommentForPullRequest
+--
+--         , requestPostCommentReply $
+--             newPostCommentReply
+--
+--         , requestPutCommentReaction $
+--             newPutCommentReaction
+--
+--         , requestPutFile $
+--             newPutFile
+--
+--         , requestPutRepositoryTriggers $
+--             newPutRepositoryTriggers
+--
+--         , requestTagResource $
+--             newTagResource
+--
+--         , requestTestRepositoryTriggers $
+--             newTestRepositoryTriggers
+--
+--         , requestUntagResource $
+--             newUntagResource
+--
+--         , requestUpdateApprovalRuleTemplateContent $
+--             newUpdateApprovalRuleTemplateContent
+--
+--         , requestUpdateApprovalRuleTemplateDescription $
+--             newUpdateApprovalRuleTemplateDescription
+--
+--         , requestUpdateApprovalRuleTemplateName $
+--             newUpdateApprovalRuleTemplateName
+--
+--         , requestUpdateComment $
+--             newUpdateComment
+--
+--         , requestUpdateDefaultBranch $
+--             newUpdateDefaultBranch
+--
+--         , requestUpdatePullRequestApprovalRuleContent $
+--             newUpdatePullRequestApprovalRuleContent
+--
+--         , requestUpdatePullRequestApprovalState $
+--             newUpdatePullRequestApprovalState
+--
+--         , requestUpdatePullRequestDescription $
+--             newUpdatePullRequestDescription
+--
+--         , requestUpdatePullRequestStatus $
+--             newUpdatePullRequestStatus
+--
+--         , requestUpdatePullRequestTitle $
+--             newUpdatePullRequestTitle
+--
+--         , requestUpdateRepositoryDescription $
+--             newUpdateRepositoryDescription
+--
+--         , requestUpdateRepositoryName $
+--             newUpdateRepositoryName
+--
+--           ]
+
+--     , testGroup "response"
+--         [ responseAssociateApprovalRuleTemplateWithRepository $
+--             newAssociateApprovalRuleTemplateWithRepositoryResponse
+--
+--         , responseBatchAssociateApprovalRuleTemplateWithRepositories $
+--             newBatchAssociateApprovalRuleTemplateWithRepositoriesResponse
+--
+--         , responseBatchDescribeMergeConflicts $
+--             newBatchDescribeMergeConflictsResponse
+--
+--         , responseBatchDisassociateApprovalRuleTemplateFromRepositories $
+--             newBatchDisassociateApprovalRuleTemplateFromRepositoriesResponse
+--
+--         , responseBatchGetCommits $
+--             newBatchGetCommitsResponse
+--
+--         , responseBatchGetRepositories $
+--             newBatchGetRepositoriesResponse
+--
+--         , responseCreateApprovalRuleTemplate $
+--             newCreateApprovalRuleTemplateResponse
+--
+--         , responseCreateBranch $
+--             newCreateBranchResponse
+--
+--         , responseCreateCommit $
+--             newCreateCommitResponse
+--
+--         , responseCreatePullRequest $
+--             newCreatePullRequestResponse
+--
+--         , responseCreatePullRequestApprovalRule $
+--             newCreatePullRequestApprovalRuleResponse
+--
+--         , responseCreateRepository $
+--             newCreateRepositoryResponse
+--
+--         , responseCreateUnreferencedMergeCommit $
+--             newCreateUnreferencedMergeCommitResponse
+--
+--         , responseDeleteApprovalRuleTemplate $
+--             newDeleteApprovalRuleTemplateResponse
+--
+--         , responseDeleteBranch $
+--             newDeleteBranchResponse
+--
+--         , responseDeleteCommentContent $
+--             newDeleteCommentContentResponse
+--
+--         , responseDeleteFile $
+--             newDeleteFileResponse
+--
+--         , responseDeletePullRequestApprovalRule $
+--             newDeletePullRequestApprovalRuleResponse
+--
+--         , responseDeleteRepository $
+--             newDeleteRepositoryResponse
+--
+--         , responseDescribeMergeConflicts $
+--             newDescribeMergeConflictsResponse
+--
+--         , responseDescribePullRequestEvents $
+--             newDescribePullRequestEventsResponse
+--
+--         , responseDisassociateApprovalRuleTemplateFromRepository $
+--             newDisassociateApprovalRuleTemplateFromRepositoryResponse
+--
+--         , responseEvaluatePullRequestApprovalRules $
+--             newEvaluatePullRequestApprovalRulesResponse
+--
+--         , responseGetApprovalRuleTemplate $
+--             newGetApprovalRuleTemplateResponse
+--
+--         , responseGetBlob $
+--             newGetBlobResponse
+--
+--         , responseGetBranch $
+--             newGetBranchResponse
+--
+--         , responseGetComment $
+--             newGetCommentResponse
+--
+--         , responseGetCommentReactions $
+--             newGetCommentReactionsResponse
+--
+--         , responseGetCommentsForComparedCommit $
+--             newGetCommentsForComparedCommitResponse
+--
+--         , responseGetCommentsForPullRequest $
+--             newGetCommentsForPullRequestResponse
+--
+--         , responseGetCommit $
+--             newGetCommitResponse
+--
+--         , responseGetDifferences $
+--             newGetDifferencesResponse
+--
+--         , responseGetFile $
+--             newGetFileResponse
+--
+--         , responseGetFolder $
+--             newGetFolderResponse
+--
+--         , responseGetMergeCommit $
+--             newGetMergeCommitResponse
+--
+--         , responseGetMergeConflicts $
+--             newGetMergeConflictsResponse
+--
+--         , responseGetMergeOptions $
+--             newGetMergeOptionsResponse
+--
+--         , responseGetPullRequest $
+--             newGetPullRequestResponse
+--
+--         , responseGetPullRequestApprovalStates $
+--             newGetPullRequestApprovalStatesResponse
+--
+--         , responseGetPullRequestOverrideState $
+--             newGetPullRequestOverrideStateResponse
+--
+--         , responseGetRepository $
+--             newGetRepositoryResponse
+--
+--         , responseGetRepositoryTriggers $
+--             newGetRepositoryTriggersResponse
+--
+--         , responseListApprovalRuleTemplates $
+--             newListApprovalRuleTemplatesResponse
+--
+--         , responseListAssociatedApprovalRuleTemplatesForRepository $
+--             newListAssociatedApprovalRuleTemplatesForRepositoryResponse
+--
+--         , responseListBranches $
+--             newListBranchesResponse
+--
+--         , responseListPullRequests $
+--             newListPullRequestsResponse
+--
+--         , responseListRepositories $
+--             newListRepositoriesResponse
+--
+--         , responseListRepositoriesForApprovalRuleTemplate $
+--             newListRepositoriesForApprovalRuleTemplateResponse
+--
+--         , responseListTagsForResource $
+--             newListTagsForResourceResponse
+--
+--         , responseMergeBranchesByFastForward $
+--             newMergeBranchesByFastForwardResponse
+--
+--         , responseMergeBranchesBySquash $
+--             newMergeBranchesBySquashResponse
+--
+--         , responseMergeBranchesByThreeWay $
+--             newMergeBranchesByThreeWayResponse
+--
+--         , responseMergePullRequestByFastForward $
+--             newMergePullRequestByFastForwardResponse
+--
+--         , responseMergePullRequestBySquash $
+--             newMergePullRequestBySquashResponse
+--
+--         , responseMergePullRequestByThreeWay $
+--             newMergePullRequestByThreeWayResponse
+--
+--         , responseOverridePullRequestApprovalRules $
+--             newOverridePullRequestApprovalRulesResponse
+--
+--         , responsePostCommentForComparedCommit $
+--             newPostCommentForComparedCommitResponse
+--
+--         , responsePostCommentForPullRequest $
+--             newPostCommentForPullRequestResponse
+--
+--         , responsePostCommentReply $
+--             newPostCommentReplyResponse
+--
+--         , responsePutCommentReaction $
+--             newPutCommentReactionResponse
+--
+--         , responsePutFile $
+--             newPutFileResponse
+--
+--         , responsePutRepositoryTriggers $
+--             newPutRepositoryTriggersResponse
+--
+--         , responseTagResource $
+--             newTagResourceResponse
+--
+--         , responseTestRepositoryTriggers $
+--             newTestRepositoryTriggersResponse
+--
+--         , responseUntagResource $
+--             newUntagResourceResponse
+--
+--         , responseUpdateApprovalRuleTemplateContent $
+--             newUpdateApprovalRuleTemplateContentResponse
+--
+--         , responseUpdateApprovalRuleTemplateDescription $
+--             newUpdateApprovalRuleTemplateDescriptionResponse
+--
+--         , responseUpdateApprovalRuleTemplateName $
+--             newUpdateApprovalRuleTemplateNameResponse
+--
+--         , responseUpdateComment $
+--             newUpdateCommentResponse
+--
+--         , responseUpdateDefaultBranch $
+--             newUpdateDefaultBranchResponse
+--
+--         , responseUpdatePullRequestApprovalRuleContent $
+--             newUpdatePullRequestApprovalRuleContentResponse
+--
+--         , responseUpdatePullRequestApprovalState $
+--             newUpdatePullRequestApprovalStateResponse
+--
+--         , responseUpdatePullRequestDescription $
+--             newUpdatePullRequestDescriptionResponse
+--
+--         , responseUpdatePullRequestStatus $
+--             newUpdatePullRequestStatusResponse
+--
+--         , responseUpdatePullRequestTitle $
+--             newUpdatePullRequestTitleResponse
+--
+--         , responseUpdateRepositoryDescription $
+--             newUpdateRepositoryDescriptionResponse
+--
+--         , responseUpdateRepositoryName $
+--             newUpdateRepositoryNameResponse
+--
+--           ]
+--     ]
+
+-- Requests
+
+requestAssociateApprovalRuleTemplateWithRepository :: AssociateApprovalRuleTemplateWithRepository -> TestTree
+requestAssociateApprovalRuleTemplateWithRepository =
+  req
+    "AssociateApprovalRuleTemplateWithRepository"
+    "fixture/AssociateApprovalRuleTemplateWithRepository.yaml"
+
+requestBatchAssociateApprovalRuleTemplateWithRepositories :: BatchAssociateApprovalRuleTemplateWithRepositories -> TestTree
+requestBatchAssociateApprovalRuleTemplateWithRepositories =
+  req
+    "BatchAssociateApprovalRuleTemplateWithRepositories"
+    "fixture/BatchAssociateApprovalRuleTemplateWithRepositories.yaml"
+
+requestBatchDescribeMergeConflicts :: BatchDescribeMergeConflicts -> TestTree
+requestBatchDescribeMergeConflicts =
+  req
+    "BatchDescribeMergeConflicts"
+    "fixture/BatchDescribeMergeConflicts.yaml"
+
+requestBatchDisassociateApprovalRuleTemplateFromRepositories :: BatchDisassociateApprovalRuleTemplateFromRepositories -> TestTree
+requestBatchDisassociateApprovalRuleTemplateFromRepositories =
+  req
+    "BatchDisassociateApprovalRuleTemplateFromRepositories"
+    "fixture/BatchDisassociateApprovalRuleTemplateFromRepositories.yaml"
+
+requestBatchGetCommits :: BatchGetCommits -> TestTree
+requestBatchGetCommits =
+  req
+    "BatchGetCommits"
+    "fixture/BatchGetCommits.yaml"
+
+requestBatchGetRepositories :: BatchGetRepositories -> TestTree
+requestBatchGetRepositories =
+  req
+    "BatchGetRepositories"
+    "fixture/BatchGetRepositories.yaml"
+
+requestCreateApprovalRuleTemplate :: CreateApprovalRuleTemplate -> TestTree
+requestCreateApprovalRuleTemplate =
+  req
+    "CreateApprovalRuleTemplate"
+    "fixture/CreateApprovalRuleTemplate.yaml"
+
+requestCreateBranch :: CreateBranch -> TestTree
+requestCreateBranch =
+  req
+    "CreateBranch"
+    "fixture/CreateBranch.yaml"
+
+requestCreateCommit :: CreateCommit -> TestTree
+requestCreateCommit =
+  req
+    "CreateCommit"
+    "fixture/CreateCommit.yaml"
+
+requestCreatePullRequest :: CreatePullRequest -> TestTree
+requestCreatePullRequest =
+  req
+    "CreatePullRequest"
+    "fixture/CreatePullRequest.yaml"
+
+requestCreatePullRequestApprovalRule :: CreatePullRequestApprovalRule -> TestTree
+requestCreatePullRequestApprovalRule =
+  req
+    "CreatePullRequestApprovalRule"
+    "fixture/CreatePullRequestApprovalRule.yaml"
+
+requestCreateRepository :: CreateRepository -> TestTree
+requestCreateRepository =
+  req
+    "CreateRepository"
+    "fixture/CreateRepository.yaml"
+
+requestCreateUnreferencedMergeCommit :: CreateUnreferencedMergeCommit -> TestTree
+requestCreateUnreferencedMergeCommit =
+  req
+    "CreateUnreferencedMergeCommit"
+    "fixture/CreateUnreferencedMergeCommit.yaml"
+
+requestDeleteApprovalRuleTemplate :: DeleteApprovalRuleTemplate -> TestTree
+requestDeleteApprovalRuleTemplate =
+  req
+    "DeleteApprovalRuleTemplate"
+    "fixture/DeleteApprovalRuleTemplate.yaml"
+
+requestDeleteBranch :: DeleteBranch -> TestTree
+requestDeleteBranch =
+  req
+    "DeleteBranch"
+    "fixture/DeleteBranch.yaml"
+
+requestDeleteCommentContent :: DeleteCommentContent -> TestTree
+requestDeleteCommentContent =
+  req
+    "DeleteCommentContent"
+    "fixture/DeleteCommentContent.yaml"
+
+requestDeleteFile :: DeleteFile -> TestTree
+requestDeleteFile =
+  req
+    "DeleteFile"
+    "fixture/DeleteFile.yaml"
+
+requestDeletePullRequestApprovalRule :: DeletePullRequestApprovalRule -> TestTree
+requestDeletePullRequestApprovalRule =
+  req
+    "DeletePullRequestApprovalRule"
+    "fixture/DeletePullRequestApprovalRule.yaml"
+
+requestDeleteRepository :: DeleteRepository -> TestTree
+requestDeleteRepository =
+  req
+    "DeleteRepository"
+    "fixture/DeleteRepository.yaml"
+
+requestDescribeMergeConflicts :: DescribeMergeConflicts -> TestTree
+requestDescribeMergeConflicts =
+  req
+    "DescribeMergeConflicts"
+    "fixture/DescribeMergeConflicts.yaml"
+
+requestDescribePullRequestEvents :: DescribePullRequestEvents -> TestTree
+requestDescribePullRequestEvents =
+  req
+    "DescribePullRequestEvents"
+    "fixture/DescribePullRequestEvents.yaml"
+
+requestDisassociateApprovalRuleTemplateFromRepository :: DisassociateApprovalRuleTemplateFromRepository -> TestTree
+requestDisassociateApprovalRuleTemplateFromRepository =
+  req
+    "DisassociateApprovalRuleTemplateFromRepository"
+    "fixture/DisassociateApprovalRuleTemplateFromRepository.yaml"
+
+requestEvaluatePullRequestApprovalRules :: EvaluatePullRequestApprovalRules -> TestTree
+requestEvaluatePullRequestApprovalRules =
+  req
+    "EvaluatePullRequestApprovalRules"
+    "fixture/EvaluatePullRequestApprovalRules.yaml"
+
+requestGetApprovalRuleTemplate :: GetApprovalRuleTemplate -> TestTree
+requestGetApprovalRuleTemplate =
+  req
+    "GetApprovalRuleTemplate"
+    "fixture/GetApprovalRuleTemplate.yaml"
+
+requestGetBlob :: GetBlob -> TestTree
+requestGetBlob =
+  req
+    "GetBlob"
+    "fixture/GetBlob.yaml"
+
+requestGetBranch :: GetBranch -> TestTree
+requestGetBranch =
+  req
+    "GetBranch"
+    "fixture/GetBranch.yaml"
+
+requestGetComment :: GetComment -> TestTree
+requestGetComment =
+  req
+    "GetComment"
+    "fixture/GetComment.yaml"
+
+requestGetCommentReactions :: GetCommentReactions -> TestTree
+requestGetCommentReactions =
+  req
+    "GetCommentReactions"
+    "fixture/GetCommentReactions.yaml"
+
+requestGetCommentsForComparedCommit :: GetCommentsForComparedCommit -> TestTree
+requestGetCommentsForComparedCommit =
+  req
+    "GetCommentsForComparedCommit"
+    "fixture/GetCommentsForComparedCommit.yaml"
+
+requestGetCommentsForPullRequest :: GetCommentsForPullRequest -> TestTree
+requestGetCommentsForPullRequest =
+  req
+    "GetCommentsForPullRequest"
+    "fixture/GetCommentsForPullRequest.yaml"
+
+requestGetCommit :: GetCommit -> TestTree
+requestGetCommit =
+  req
+    "GetCommit"
+    "fixture/GetCommit.yaml"
+
+requestGetDifferences :: GetDifferences -> TestTree
+requestGetDifferences =
+  req
+    "GetDifferences"
+    "fixture/GetDifferences.yaml"
+
+requestGetFile :: GetFile -> TestTree
+requestGetFile =
+  req
+    "GetFile"
+    "fixture/GetFile.yaml"
+
+requestGetFolder :: GetFolder -> TestTree
+requestGetFolder =
+  req
+    "GetFolder"
+    "fixture/GetFolder.yaml"
+
+requestGetMergeCommit :: GetMergeCommit -> TestTree
+requestGetMergeCommit =
+  req
+    "GetMergeCommit"
+    "fixture/GetMergeCommit.yaml"
+
+requestGetMergeConflicts :: GetMergeConflicts -> TestTree
+requestGetMergeConflicts =
+  req
+    "GetMergeConflicts"
+    "fixture/GetMergeConflicts.yaml"
+
+requestGetMergeOptions :: GetMergeOptions -> TestTree
+requestGetMergeOptions =
+  req
+    "GetMergeOptions"
+    "fixture/GetMergeOptions.yaml"
+
+requestGetPullRequest :: GetPullRequest -> TestTree
+requestGetPullRequest =
+  req
+    "GetPullRequest"
+    "fixture/GetPullRequest.yaml"
+
+requestGetPullRequestApprovalStates :: GetPullRequestApprovalStates -> TestTree
+requestGetPullRequestApprovalStates =
+  req
+    "GetPullRequestApprovalStates"
+    "fixture/GetPullRequestApprovalStates.yaml"
+
+requestGetPullRequestOverrideState :: GetPullRequestOverrideState -> TestTree
+requestGetPullRequestOverrideState =
+  req
+    "GetPullRequestOverrideState"
+    "fixture/GetPullRequestOverrideState.yaml"
+
+requestGetRepository :: GetRepository -> TestTree
+requestGetRepository =
+  req
+    "GetRepository"
+    "fixture/GetRepository.yaml"
+
+requestGetRepositoryTriggers :: GetRepositoryTriggers -> TestTree
+requestGetRepositoryTriggers =
+  req
+    "GetRepositoryTriggers"
+    "fixture/GetRepositoryTriggers.yaml"
+
+requestListApprovalRuleTemplates :: ListApprovalRuleTemplates -> TestTree
+requestListApprovalRuleTemplates =
+  req
+    "ListApprovalRuleTemplates"
+    "fixture/ListApprovalRuleTemplates.yaml"
+
+requestListAssociatedApprovalRuleTemplatesForRepository :: ListAssociatedApprovalRuleTemplatesForRepository -> TestTree
+requestListAssociatedApprovalRuleTemplatesForRepository =
+  req
+    "ListAssociatedApprovalRuleTemplatesForRepository"
+    "fixture/ListAssociatedApprovalRuleTemplatesForRepository.yaml"
+
+requestListBranches :: ListBranches -> TestTree
+requestListBranches =
+  req
+    "ListBranches"
+    "fixture/ListBranches.yaml"
+
+requestListPullRequests :: ListPullRequests -> TestTree
+requestListPullRequests =
+  req
+    "ListPullRequests"
+    "fixture/ListPullRequests.yaml"
+
+requestListRepositories :: ListRepositories -> TestTree
+requestListRepositories =
+  req
+    "ListRepositories"
+    "fixture/ListRepositories.yaml"
+
+requestListRepositoriesForApprovalRuleTemplate :: ListRepositoriesForApprovalRuleTemplate -> TestTree
+requestListRepositoriesForApprovalRuleTemplate =
+  req
+    "ListRepositoriesForApprovalRuleTemplate"
+    "fixture/ListRepositoriesForApprovalRuleTemplate.yaml"
+
+requestListTagsForResource :: ListTagsForResource -> TestTree
+requestListTagsForResource =
+  req
+    "ListTagsForResource"
+    "fixture/ListTagsForResource.yaml"
+
+requestMergeBranchesByFastForward :: MergeBranchesByFastForward -> TestTree
+requestMergeBranchesByFastForward =
+  req
+    "MergeBranchesByFastForward"
+    "fixture/MergeBranchesByFastForward.yaml"
+
+requestMergeBranchesBySquash :: MergeBranchesBySquash -> TestTree
+requestMergeBranchesBySquash =
+  req
+    "MergeBranchesBySquash"
+    "fixture/MergeBranchesBySquash.yaml"
+
+requestMergeBranchesByThreeWay :: MergeBranchesByThreeWay -> TestTree
+requestMergeBranchesByThreeWay =
+  req
+    "MergeBranchesByThreeWay"
+    "fixture/MergeBranchesByThreeWay.yaml"
+
+requestMergePullRequestByFastForward :: MergePullRequestByFastForward -> TestTree
+requestMergePullRequestByFastForward =
+  req
+    "MergePullRequestByFastForward"
+    "fixture/MergePullRequestByFastForward.yaml"
+
+requestMergePullRequestBySquash :: MergePullRequestBySquash -> TestTree
+requestMergePullRequestBySquash =
+  req
+    "MergePullRequestBySquash"
+    "fixture/MergePullRequestBySquash.yaml"
+
+requestMergePullRequestByThreeWay :: MergePullRequestByThreeWay -> TestTree
+requestMergePullRequestByThreeWay =
+  req
+    "MergePullRequestByThreeWay"
+    "fixture/MergePullRequestByThreeWay.yaml"
+
+requestOverridePullRequestApprovalRules :: OverridePullRequestApprovalRules -> TestTree
+requestOverridePullRequestApprovalRules =
+  req
+    "OverridePullRequestApprovalRules"
+    "fixture/OverridePullRequestApprovalRules.yaml"
+
+requestPostCommentForComparedCommit :: PostCommentForComparedCommit -> TestTree
+requestPostCommentForComparedCommit =
+  req
+    "PostCommentForComparedCommit"
+    "fixture/PostCommentForComparedCommit.yaml"
+
+requestPostCommentForPullRequest :: PostCommentForPullRequest -> TestTree
+requestPostCommentForPullRequest =
+  req
+    "PostCommentForPullRequest"
+    "fixture/PostCommentForPullRequest.yaml"
+
+requestPostCommentReply :: PostCommentReply -> TestTree
+requestPostCommentReply =
+  req
+    "PostCommentReply"
+    "fixture/PostCommentReply.yaml"
+
+requestPutCommentReaction :: PutCommentReaction -> TestTree
+requestPutCommentReaction =
+  req
+    "PutCommentReaction"
+    "fixture/PutCommentReaction.yaml"
+
+requestPutFile :: PutFile -> TestTree
+requestPutFile =
+  req
+    "PutFile"
+    "fixture/PutFile.yaml"
+
+requestPutRepositoryTriggers :: PutRepositoryTriggers -> TestTree
+requestPutRepositoryTriggers =
+  req
+    "PutRepositoryTriggers"
+    "fixture/PutRepositoryTriggers.yaml"
+
+requestTagResource :: TagResource -> TestTree
+requestTagResource =
+  req
+    "TagResource"
+    "fixture/TagResource.yaml"
+
+requestTestRepositoryTriggers :: TestRepositoryTriggers -> TestTree
+requestTestRepositoryTriggers =
+  req
+    "TestRepositoryTriggers"
+    "fixture/TestRepositoryTriggers.yaml"
+
+requestUntagResource :: UntagResource -> TestTree
+requestUntagResource =
+  req
+    "UntagResource"
+    "fixture/UntagResource.yaml"
+
+requestUpdateApprovalRuleTemplateContent :: UpdateApprovalRuleTemplateContent -> TestTree
+requestUpdateApprovalRuleTemplateContent =
+  req
+    "UpdateApprovalRuleTemplateContent"
+    "fixture/UpdateApprovalRuleTemplateContent.yaml"
+
+requestUpdateApprovalRuleTemplateDescription :: UpdateApprovalRuleTemplateDescription -> TestTree
+requestUpdateApprovalRuleTemplateDescription =
+  req
+    "UpdateApprovalRuleTemplateDescription"
+    "fixture/UpdateApprovalRuleTemplateDescription.yaml"
+
+requestUpdateApprovalRuleTemplateName :: UpdateApprovalRuleTemplateName -> TestTree
+requestUpdateApprovalRuleTemplateName =
+  req
+    "UpdateApprovalRuleTemplateName"
+    "fixture/UpdateApprovalRuleTemplateName.yaml"
+
+requestUpdateComment :: UpdateComment -> TestTree
+requestUpdateComment =
+  req
+    "UpdateComment"
+    "fixture/UpdateComment.yaml"
+
+requestUpdateDefaultBranch :: UpdateDefaultBranch -> TestTree
+requestUpdateDefaultBranch =
+  req
+    "UpdateDefaultBranch"
+    "fixture/UpdateDefaultBranch.yaml"
+
+requestUpdatePullRequestApprovalRuleContent :: UpdatePullRequestApprovalRuleContent -> TestTree
+requestUpdatePullRequestApprovalRuleContent =
+  req
+    "UpdatePullRequestApprovalRuleContent"
+    "fixture/UpdatePullRequestApprovalRuleContent.yaml"
+
+requestUpdatePullRequestApprovalState :: UpdatePullRequestApprovalState -> TestTree
+requestUpdatePullRequestApprovalState =
+  req
+    "UpdatePullRequestApprovalState"
+    "fixture/UpdatePullRequestApprovalState.yaml"
+
+requestUpdatePullRequestDescription :: UpdatePullRequestDescription -> TestTree
+requestUpdatePullRequestDescription =
+  req
+    "UpdatePullRequestDescription"
+    "fixture/UpdatePullRequestDescription.yaml"
+
+requestUpdatePullRequestStatus :: UpdatePullRequestStatus -> TestTree
+requestUpdatePullRequestStatus =
+  req
+    "UpdatePullRequestStatus"
+    "fixture/UpdatePullRequestStatus.yaml"
+
+requestUpdatePullRequestTitle :: UpdatePullRequestTitle -> TestTree
+requestUpdatePullRequestTitle =
+  req
+    "UpdatePullRequestTitle"
+    "fixture/UpdatePullRequestTitle.yaml"
+
+requestUpdateRepositoryDescription :: UpdateRepositoryDescription -> TestTree
+requestUpdateRepositoryDescription =
+  req
+    "UpdateRepositoryDescription"
+    "fixture/UpdateRepositoryDescription.yaml"
+
+requestUpdateRepositoryName :: UpdateRepositoryName -> TestTree
+requestUpdateRepositoryName =
+  req
+    "UpdateRepositoryName"
+    "fixture/UpdateRepositoryName.yaml"
+
+-- Responses
+
+responseAssociateApprovalRuleTemplateWithRepository :: AssociateApprovalRuleTemplateWithRepositoryResponse -> TestTree
+responseAssociateApprovalRuleTemplateWithRepository =
+  res
+    "AssociateApprovalRuleTemplateWithRepositoryResponse"
+    "fixture/AssociateApprovalRuleTemplateWithRepositoryResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy AssociateApprovalRuleTemplateWithRepository)
+
+responseBatchAssociateApprovalRuleTemplateWithRepositories :: BatchAssociateApprovalRuleTemplateWithRepositoriesResponse -> TestTree
+responseBatchAssociateApprovalRuleTemplateWithRepositories =
+  res
+    "BatchAssociateApprovalRuleTemplateWithRepositoriesResponse"
+    "fixture/BatchAssociateApprovalRuleTemplateWithRepositoriesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy BatchAssociateApprovalRuleTemplateWithRepositories)
+
+responseBatchDescribeMergeConflicts :: BatchDescribeMergeConflictsResponse -> TestTree
+responseBatchDescribeMergeConflicts =
+  res
+    "BatchDescribeMergeConflictsResponse"
+    "fixture/BatchDescribeMergeConflictsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy BatchDescribeMergeConflicts)
+
+responseBatchDisassociateApprovalRuleTemplateFromRepositories :: BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse -> TestTree
+responseBatchDisassociateApprovalRuleTemplateFromRepositories =
+  res
+    "BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse"
+    "fixture/BatchDisassociateApprovalRuleTemplateFromRepositoriesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy BatchDisassociateApprovalRuleTemplateFromRepositories)
+
+responseBatchGetCommits :: BatchGetCommitsResponse -> TestTree
+responseBatchGetCommits =
+  res
+    "BatchGetCommitsResponse"
+    "fixture/BatchGetCommitsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy BatchGetCommits)
+
+responseBatchGetRepositories :: BatchGetRepositoriesResponse -> TestTree
+responseBatchGetRepositories =
+  res
+    "BatchGetRepositoriesResponse"
+    "fixture/BatchGetRepositoriesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy BatchGetRepositories)
+
+responseCreateApprovalRuleTemplate :: CreateApprovalRuleTemplateResponse -> TestTree
+responseCreateApprovalRuleTemplate =
+  res
+    "CreateApprovalRuleTemplateResponse"
+    "fixture/CreateApprovalRuleTemplateResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateApprovalRuleTemplate)
+
+responseCreateBranch :: CreateBranchResponse -> TestTree
+responseCreateBranch =
+  res
+    "CreateBranchResponse"
+    "fixture/CreateBranchResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateBranch)
+
+responseCreateCommit :: CreateCommitResponse -> TestTree
+responseCreateCommit =
+  res
+    "CreateCommitResponse"
+    "fixture/CreateCommitResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateCommit)
+
+responseCreatePullRequest :: CreatePullRequestResponse -> TestTree
+responseCreatePullRequest =
+  res
+    "CreatePullRequestResponse"
+    "fixture/CreatePullRequestResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreatePullRequest)
+
+responseCreatePullRequestApprovalRule :: CreatePullRequestApprovalRuleResponse -> TestTree
+responseCreatePullRequestApprovalRule =
+  res
+    "CreatePullRequestApprovalRuleResponse"
+    "fixture/CreatePullRequestApprovalRuleResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreatePullRequestApprovalRule)
+
+responseCreateRepository :: CreateRepositoryResponse -> TestTree
+responseCreateRepository =
+  res
+    "CreateRepositoryResponse"
+    "fixture/CreateRepositoryResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateRepository)
+
+responseCreateUnreferencedMergeCommit :: CreateUnreferencedMergeCommitResponse -> TestTree
+responseCreateUnreferencedMergeCommit =
+  res
+    "CreateUnreferencedMergeCommitResponse"
+    "fixture/CreateUnreferencedMergeCommitResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateUnreferencedMergeCommit)
+
+responseDeleteApprovalRuleTemplate :: DeleteApprovalRuleTemplateResponse -> TestTree
+responseDeleteApprovalRuleTemplate =
+  res
+    "DeleteApprovalRuleTemplateResponse"
+    "fixture/DeleteApprovalRuleTemplateResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteApprovalRuleTemplate)
+
+responseDeleteBranch :: DeleteBranchResponse -> TestTree
+responseDeleteBranch =
+  res
+    "DeleteBranchResponse"
+    "fixture/DeleteBranchResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteBranch)
+
+responseDeleteCommentContent :: DeleteCommentContentResponse -> TestTree
+responseDeleteCommentContent =
+  res
+    "DeleteCommentContentResponse"
+    "fixture/DeleteCommentContentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteCommentContent)
+
+responseDeleteFile :: DeleteFileResponse -> TestTree
+responseDeleteFile =
+  res
+    "DeleteFileResponse"
+    "fixture/DeleteFileResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteFile)
+
+responseDeletePullRequestApprovalRule :: DeletePullRequestApprovalRuleResponse -> TestTree
+responseDeletePullRequestApprovalRule =
+  res
+    "DeletePullRequestApprovalRuleResponse"
+    "fixture/DeletePullRequestApprovalRuleResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeletePullRequestApprovalRule)
+
+responseDeleteRepository :: DeleteRepositoryResponse -> TestTree
+responseDeleteRepository =
+  res
+    "DeleteRepositoryResponse"
+    "fixture/DeleteRepositoryResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteRepository)
+
+responseDescribeMergeConflicts :: DescribeMergeConflictsResponse -> TestTree
+responseDescribeMergeConflicts =
+  res
+    "DescribeMergeConflictsResponse"
+    "fixture/DescribeMergeConflictsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeMergeConflicts)
+
+responseDescribePullRequestEvents :: DescribePullRequestEventsResponse -> TestTree
+responseDescribePullRequestEvents =
+  res
+    "DescribePullRequestEventsResponse"
+    "fixture/DescribePullRequestEventsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribePullRequestEvents)
+
+responseDisassociateApprovalRuleTemplateFromRepository :: DisassociateApprovalRuleTemplateFromRepositoryResponse -> TestTree
+responseDisassociateApprovalRuleTemplateFromRepository =
+  res
+    "DisassociateApprovalRuleTemplateFromRepositoryResponse"
+    "fixture/DisassociateApprovalRuleTemplateFromRepositoryResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DisassociateApprovalRuleTemplateFromRepository)
+
+responseEvaluatePullRequestApprovalRules :: EvaluatePullRequestApprovalRulesResponse -> TestTree
+responseEvaluatePullRequestApprovalRules =
+  res
+    "EvaluatePullRequestApprovalRulesResponse"
+    "fixture/EvaluatePullRequestApprovalRulesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy EvaluatePullRequestApprovalRules)
+
+responseGetApprovalRuleTemplate :: GetApprovalRuleTemplateResponse -> TestTree
+responseGetApprovalRuleTemplate =
+  res
+    "GetApprovalRuleTemplateResponse"
+    "fixture/GetApprovalRuleTemplateResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetApprovalRuleTemplate)
+
+responseGetBlob :: GetBlobResponse -> TestTree
+responseGetBlob =
+  res
+    "GetBlobResponse"
+    "fixture/GetBlobResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetBlob)
+
+responseGetBranch :: GetBranchResponse -> TestTree
+responseGetBranch =
+  res
+    "GetBranchResponse"
+    "fixture/GetBranchResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetBranch)
+
+responseGetComment :: GetCommentResponse -> TestTree
+responseGetComment =
+  res
+    "GetCommentResponse"
+    "fixture/GetCommentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetComment)
+
+responseGetCommentReactions :: GetCommentReactionsResponse -> TestTree
+responseGetCommentReactions =
+  res
+    "GetCommentReactionsResponse"
+    "fixture/GetCommentReactionsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetCommentReactions)
+
+responseGetCommentsForComparedCommit :: GetCommentsForComparedCommitResponse -> TestTree
+responseGetCommentsForComparedCommit =
+  res
+    "GetCommentsForComparedCommitResponse"
+    "fixture/GetCommentsForComparedCommitResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetCommentsForComparedCommit)
+
+responseGetCommentsForPullRequest :: GetCommentsForPullRequestResponse -> TestTree
+responseGetCommentsForPullRequest =
+  res
+    "GetCommentsForPullRequestResponse"
+    "fixture/GetCommentsForPullRequestResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetCommentsForPullRequest)
+
+responseGetCommit :: GetCommitResponse -> TestTree
+responseGetCommit =
+  res
+    "GetCommitResponse"
+    "fixture/GetCommitResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetCommit)
+
+responseGetDifferences :: GetDifferencesResponse -> TestTree
+responseGetDifferences =
+  res
+    "GetDifferencesResponse"
+    "fixture/GetDifferencesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetDifferences)
+
+responseGetFile :: GetFileResponse -> TestTree
+responseGetFile =
+  res
+    "GetFileResponse"
+    "fixture/GetFileResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetFile)
+
+responseGetFolder :: GetFolderResponse -> TestTree
+responseGetFolder =
+  res
+    "GetFolderResponse"
+    "fixture/GetFolderResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetFolder)
+
+responseGetMergeCommit :: GetMergeCommitResponse -> TestTree
+responseGetMergeCommit =
+  res
+    "GetMergeCommitResponse"
+    "fixture/GetMergeCommitResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetMergeCommit)
+
+responseGetMergeConflicts :: GetMergeConflictsResponse -> TestTree
+responseGetMergeConflicts =
+  res
+    "GetMergeConflictsResponse"
+    "fixture/GetMergeConflictsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetMergeConflicts)
+
+responseGetMergeOptions :: GetMergeOptionsResponse -> TestTree
+responseGetMergeOptions =
+  res
+    "GetMergeOptionsResponse"
+    "fixture/GetMergeOptionsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetMergeOptions)
+
+responseGetPullRequest :: GetPullRequestResponse -> TestTree
+responseGetPullRequest =
+  res
+    "GetPullRequestResponse"
+    "fixture/GetPullRequestResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetPullRequest)
+
+responseGetPullRequestApprovalStates :: GetPullRequestApprovalStatesResponse -> TestTree
+responseGetPullRequestApprovalStates =
+  res
+    "GetPullRequestApprovalStatesResponse"
+    "fixture/GetPullRequestApprovalStatesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetPullRequestApprovalStates)
+
+responseGetPullRequestOverrideState :: GetPullRequestOverrideStateResponse -> TestTree
+responseGetPullRequestOverrideState =
+  res
+    "GetPullRequestOverrideStateResponse"
+    "fixture/GetPullRequestOverrideStateResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetPullRequestOverrideState)
+
+responseGetRepository :: GetRepositoryResponse -> TestTree
+responseGetRepository =
+  res
+    "GetRepositoryResponse"
+    "fixture/GetRepositoryResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetRepository)
+
+responseGetRepositoryTriggers :: GetRepositoryTriggersResponse -> TestTree
+responseGetRepositoryTriggers =
+  res
+    "GetRepositoryTriggersResponse"
+    "fixture/GetRepositoryTriggersResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetRepositoryTriggers)
+
+responseListApprovalRuleTemplates :: ListApprovalRuleTemplatesResponse -> TestTree
+responseListApprovalRuleTemplates =
+  res
+    "ListApprovalRuleTemplatesResponse"
+    "fixture/ListApprovalRuleTemplatesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListApprovalRuleTemplates)
+
+responseListAssociatedApprovalRuleTemplatesForRepository :: ListAssociatedApprovalRuleTemplatesForRepositoryResponse -> TestTree
+responseListAssociatedApprovalRuleTemplatesForRepository =
+  res
+    "ListAssociatedApprovalRuleTemplatesForRepositoryResponse"
+    "fixture/ListAssociatedApprovalRuleTemplatesForRepositoryResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListAssociatedApprovalRuleTemplatesForRepository)
+
+responseListBranches :: ListBranchesResponse -> TestTree
+responseListBranches =
+  res
+    "ListBranchesResponse"
+    "fixture/ListBranchesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListBranches)
+
+responseListPullRequests :: ListPullRequestsResponse -> TestTree
+responseListPullRequests =
+  res
+    "ListPullRequestsResponse"
+    "fixture/ListPullRequestsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListPullRequests)
+
+responseListRepositories :: ListRepositoriesResponse -> TestTree
+responseListRepositories =
+  res
+    "ListRepositoriesResponse"
+    "fixture/ListRepositoriesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListRepositories)
+
+responseListRepositoriesForApprovalRuleTemplate :: ListRepositoriesForApprovalRuleTemplateResponse -> TestTree
+responseListRepositoriesForApprovalRuleTemplate =
+  res
+    "ListRepositoriesForApprovalRuleTemplateResponse"
+    "fixture/ListRepositoriesForApprovalRuleTemplateResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListRepositoriesForApprovalRuleTemplate)
+
+responseListTagsForResource :: ListTagsForResourceResponse -> TestTree
+responseListTagsForResource =
+  res
+    "ListTagsForResourceResponse"
+    "fixture/ListTagsForResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)
+
+responseMergeBranchesByFastForward :: MergeBranchesByFastForwardResponse -> TestTree
+responseMergeBranchesByFastForward =
+  res
+    "MergeBranchesByFastForwardResponse"
+    "fixture/MergeBranchesByFastForwardResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy MergeBranchesByFastForward)
+
+responseMergeBranchesBySquash :: MergeBranchesBySquashResponse -> TestTree
+responseMergeBranchesBySquash =
+  res
+    "MergeBranchesBySquashResponse"
+    "fixture/MergeBranchesBySquashResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy MergeBranchesBySquash)
+
+responseMergeBranchesByThreeWay :: MergeBranchesByThreeWayResponse -> TestTree
+responseMergeBranchesByThreeWay =
+  res
+    "MergeBranchesByThreeWayResponse"
+    "fixture/MergeBranchesByThreeWayResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy MergeBranchesByThreeWay)
+
+responseMergePullRequestByFastForward :: MergePullRequestByFastForwardResponse -> TestTree
+responseMergePullRequestByFastForward =
+  res
+    "MergePullRequestByFastForwardResponse"
+    "fixture/MergePullRequestByFastForwardResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy MergePullRequestByFastForward)
+
+responseMergePullRequestBySquash :: MergePullRequestBySquashResponse -> TestTree
+responseMergePullRequestBySquash =
+  res
+    "MergePullRequestBySquashResponse"
+    "fixture/MergePullRequestBySquashResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy MergePullRequestBySquash)
+
+responseMergePullRequestByThreeWay :: MergePullRequestByThreeWayResponse -> TestTree
+responseMergePullRequestByThreeWay =
+  res
+    "MergePullRequestByThreeWayResponse"
+    "fixture/MergePullRequestByThreeWayResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy MergePullRequestByThreeWay)
+
+responseOverridePullRequestApprovalRules :: OverridePullRequestApprovalRulesResponse -> TestTree
+responseOverridePullRequestApprovalRules =
+  res
+    "OverridePullRequestApprovalRulesResponse"
+    "fixture/OverridePullRequestApprovalRulesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy OverridePullRequestApprovalRules)
+
+responsePostCommentForComparedCommit :: PostCommentForComparedCommitResponse -> TestTree
+responsePostCommentForComparedCommit =
+  res
+    "PostCommentForComparedCommitResponse"
+    "fixture/PostCommentForComparedCommitResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy PostCommentForComparedCommit)
+
+responsePostCommentForPullRequest :: PostCommentForPullRequestResponse -> TestTree
+responsePostCommentForPullRequest =
+  res
+    "PostCommentForPullRequestResponse"
+    "fixture/PostCommentForPullRequestResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy PostCommentForPullRequest)
+
+responsePostCommentReply :: PostCommentReplyResponse -> TestTree
+responsePostCommentReply =
+  res
+    "PostCommentReplyResponse"
+    "fixture/PostCommentReplyResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy PostCommentReply)
+
+responsePutCommentReaction :: PutCommentReactionResponse -> TestTree
+responsePutCommentReaction =
+  res
+    "PutCommentReactionResponse"
+    "fixture/PutCommentReactionResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy PutCommentReaction)
+
+responsePutFile :: PutFileResponse -> TestTree
+responsePutFile =
+  res
+    "PutFileResponse"
+    "fixture/PutFileResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy PutFile)
+
+responsePutRepositoryTriggers :: PutRepositoryTriggersResponse -> TestTree
+responsePutRepositoryTriggers =
+  res
+    "PutRepositoryTriggersResponse"
+    "fixture/PutRepositoryTriggersResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy PutRepositoryTriggers)
+
+responseTagResource :: TagResourceResponse -> TestTree
+responseTagResource =
+  res
+    "TagResourceResponse"
+    "fixture/TagResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy TagResource)
+
+responseTestRepositoryTriggers :: TestRepositoryTriggersResponse -> TestTree
+responseTestRepositoryTriggers =
+  res
+    "TestRepositoryTriggersResponse"
+    "fixture/TestRepositoryTriggersResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy TestRepositoryTriggers)
+
+responseUntagResource :: UntagResourceResponse -> TestTree
+responseUntagResource =
+  res
+    "UntagResourceResponse"
+    "fixture/UntagResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UntagResource)
+
+responseUpdateApprovalRuleTemplateContent :: UpdateApprovalRuleTemplateContentResponse -> TestTree
+responseUpdateApprovalRuleTemplateContent =
+  res
+    "UpdateApprovalRuleTemplateContentResponse"
+    "fixture/UpdateApprovalRuleTemplateContentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateApprovalRuleTemplateContent)
+
+responseUpdateApprovalRuleTemplateDescription :: UpdateApprovalRuleTemplateDescriptionResponse -> TestTree
+responseUpdateApprovalRuleTemplateDescription =
+  res
+    "UpdateApprovalRuleTemplateDescriptionResponse"
+    "fixture/UpdateApprovalRuleTemplateDescriptionResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateApprovalRuleTemplateDescription)
+
+responseUpdateApprovalRuleTemplateName :: UpdateApprovalRuleTemplateNameResponse -> TestTree
+responseUpdateApprovalRuleTemplateName =
+  res
+    "UpdateApprovalRuleTemplateNameResponse"
+    "fixture/UpdateApprovalRuleTemplateNameResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateApprovalRuleTemplateName)
+
+responseUpdateComment :: UpdateCommentResponse -> TestTree
+responseUpdateComment =
+  res
+    "UpdateCommentResponse"
+    "fixture/UpdateCommentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateComment)
+
+responseUpdateDefaultBranch :: UpdateDefaultBranchResponse -> TestTree
+responseUpdateDefaultBranch =
+  res
+    "UpdateDefaultBranchResponse"
+    "fixture/UpdateDefaultBranchResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateDefaultBranch)
+
+responseUpdatePullRequestApprovalRuleContent :: UpdatePullRequestApprovalRuleContentResponse -> TestTree
+responseUpdatePullRequestApprovalRuleContent =
+  res
+    "UpdatePullRequestApprovalRuleContentResponse"
+    "fixture/UpdatePullRequestApprovalRuleContentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdatePullRequestApprovalRuleContent)
+
+responseUpdatePullRequestApprovalState :: UpdatePullRequestApprovalStateResponse -> TestTree
+responseUpdatePullRequestApprovalState =
+  res
+    "UpdatePullRequestApprovalStateResponse"
+    "fixture/UpdatePullRequestApprovalStateResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdatePullRequestApprovalState)
+
+responseUpdatePullRequestDescription :: UpdatePullRequestDescriptionResponse -> TestTree
+responseUpdatePullRequestDescription =
+  res
+    "UpdatePullRequestDescriptionResponse"
+    "fixture/UpdatePullRequestDescriptionResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdatePullRequestDescription)
+
+responseUpdatePullRequestStatus :: UpdatePullRequestStatusResponse -> TestTree
+responseUpdatePullRequestStatus =
+  res
+    "UpdatePullRequestStatusResponse"
+    "fixture/UpdatePullRequestStatusResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdatePullRequestStatus)
+
+responseUpdatePullRequestTitle :: UpdatePullRequestTitleResponse -> TestTree
+responseUpdatePullRequestTitle =
+  res
+    "UpdatePullRequestTitleResponse"
+    "fixture/UpdatePullRequestTitleResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdatePullRequestTitle)
+
+responseUpdateRepositoryDescription :: UpdateRepositoryDescriptionResponse -> TestTree
+responseUpdateRepositoryDescription =
+  res
+    "UpdateRepositoryDescriptionResponse"
+    "fixture/UpdateRepositoryDescriptionResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateRepositoryDescription)
+
+responseUpdateRepositoryName :: UpdateRepositoryNameResponse -> TestTree
+responseUpdateRepositoryName =
+  res
+    "UpdateRepositoryNameResponse"
+    "fixture/UpdateRepositoryNameResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateRepositoryName)
