diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,367 @@
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+    means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+    means
+
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+
+1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in
+    a separate file or files, that is not Covered Software.
+
+1.8. "License"
+    means this document.
+
+1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+
+1.10. "Modifications"
+    means any of the following:
+
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+
+1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+
+1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+
+1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+    or
+
+(b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+*                                                                      *
+*  6. Disclaimer of Warranty                                           *
+*  -------------------------                                           *
+*                                                                      *
+*  Covered Software is provided under this License on an "as is"       *
+*  basis, without warranty of any kind, either expressed, implied, or  *
+*  statutory, including, without limitation, warranties that the       *
+*  Covered Software is free of defects, merchantable, fit for a        *
+*  particular purpose or non-infringing. The entire risk as to the     *
+*  quality and performance of the Covered Software is with You.        *
+*  Should any Covered Software prove defective in any respect, You     *
+*  (not any Contributor) assume the cost of any necessary servicing,   *
+*  repair, or correction. This disclaimer of warranty constitutes an   *
+*  essential part of this License. No use of any Covered Software is   *
+*  authorized under this License except under this disclaimer.         *
+*                                                                      *
+************************************************************************
+
+************************************************************************
+*                                                                      *
+*  7. Limitation of Liability                                          *
+*  --------------------------                                          *
+*                                                                      *
+*  Under no circumstances and under no legal theory, whether tort      *
+*  (including negligence), contract, or otherwise, shall any           *
+*  Contributor, or anyone who distributes Covered Software as          *
+*  permitted above, be liable to You for any direct, indirect,         *
+*  special, incidental, or consequential damages of any character      *
+*  including, without limitation, damages for lost profits, loss of    *
+*  goodwill, work stoppage, computer failure or malfunction, or any    *
+*  and all other commercial damages or losses, even if such party      *
+*  shall have been informed of the possibility of such damages. This   *
+*  limitation of liability shall not apply to liability for death or   *
+*  personal injury resulting from such party's negligence to the       *
+*  extent applicable law prohibits such limitation. Some               *
+*  jurisdictions do not allow the exclusion or limitation of           *
+*  incidental or consequential damages, so this exclusion and          *
+*  limitation may not apply to You.                                    *
+*                                                                      *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+  This Source Code Form is subject to the terms of the Mozilla Public
+  License, v. 2.0. If a copy of the MPL was not distributed with this
+  file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,44 @@
+# Amazon Audit Manager SDK
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+ 
+`2.0` - Derived from API version @2017-07-25@ of the AWS service descriptions, licensed under Apache 2.0.
+
+## Description
+
+Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-auditmanager)
+and the [AWS API Reference](https://aws.amazon.com/documentation/).
+
+The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),
+which provides mechanisms for specifying AuthN/AuthZ information, sending requests,
+and receiving responses.
+
+Lenses are used for constructing and manipulating types,
+due to the depth of nesting of AWS types and transparency regarding
+de/serialisation into more palatable Haskell values.
+The provided lenses should be compatible with any of the major lens libraries
+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).
+
+See [Amazonka.AuditManager](http://hackage.haskell.org/package/amazonka-auditmanager/docs/Amazonka-AuditManager.html)
+or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.
+
+
+## Contribute
+
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).
+
+> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.
+
+
+## Licence
+
+`amazonka-auditmanager` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+
+Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.
+Source files subject to this contain an additional licensing clause in their header.
diff --git a/amazonka-auditmanager.cabal b/amazonka-auditmanager.cabal
new file mode 100644
--- /dev/null
+++ b/amazonka-auditmanager.cabal
@@ -0,0 +1,219 @@
+cabal-version:      2.2
+name:               amazonka-auditmanager
+version:            2.0
+synopsis:           Amazon Audit Manager SDK.
+homepage:           https://github.com/brendanhay/amazonka
+bug-reports:        https://github.com/brendanhay/amazonka/issues
+license:            MPL-2.0
+license-file:       LICENSE
+author:             Brendan Hay
+maintainer:
+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>
+
+copyright:          Copyright (c) 2013-2023 Brendan Hay
+category:           AWS
+build-type:         Simple
+extra-source-files:
+  fixture/*.proto
+  fixture/*.yaml
+  README.md
+  src/.gitkeep
+
+description:
+  Derived from API version @2017-07-25@ 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.AuditManager.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.AuditManager" 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-auditmanager
+
+library
+  default-language: Haskell2010
+  hs-source-dirs:   src gen
+  ghc-options:
+    -Wall -fwarn-incomplete-uni-patterns
+    -fwarn-incomplete-record-updates -funbox-strict-fields
+
+  exposed-modules:
+    Amazonka.AuditManager
+    Amazonka.AuditManager.AssociateAssessmentReportEvidenceFolder
+    Amazonka.AuditManager.BatchAssociateAssessmentReportEvidence
+    Amazonka.AuditManager.BatchCreateDelegationByAssessment
+    Amazonka.AuditManager.BatchDeleteDelegationByAssessment
+    Amazonka.AuditManager.BatchDisassociateAssessmentReportEvidence
+    Amazonka.AuditManager.BatchImportEvidenceToAssessmentControl
+    Amazonka.AuditManager.CreateAssessment
+    Amazonka.AuditManager.CreateAssessmentFramework
+    Amazonka.AuditManager.CreateAssessmentReport
+    Amazonka.AuditManager.CreateControl
+    Amazonka.AuditManager.DeleteAssessment
+    Amazonka.AuditManager.DeleteAssessmentFramework
+    Amazonka.AuditManager.DeleteAssessmentFrameworkShare
+    Amazonka.AuditManager.DeleteAssessmentReport
+    Amazonka.AuditManager.DeleteControl
+    Amazonka.AuditManager.DeregisterAccount
+    Amazonka.AuditManager.DeregisterOrganizationAdminAccount
+    Amazonka.AuditManager.DisassociateAssessmentReportEvidenceFolder
+    Amazonka.AuditManager.GetAccountStatus
+    Amazonka.AuditManager.GetAssessment
+    Amazonka.AuditManager.GetAssessmentFramework
+    Amazonka.AuditManager.GetAssessmentReportUrl
+    Amazonka.AuditManager.GetChangeLogs
+    Amazonka.AuditManager.GetControl
+    Amazonka.AuditManager.GetDelegations
+    Amazonka.AuditManager.GetEvidence
+    Amazonka.AuditManager.GetEvidenceByEvidenceFolder
+    Amazonka.AuditManager.GetEvidenceFolder
+    Amazonka.AuditManager.GetEvidenceFoldersByAssessment
+    Amazonka.AuditManager.GetEvidenceFoldersByAssessmentControl
+    Amazonka.AuditManager.GetInsights
+    Amazonka.AuditManager.GetInsightsByAssessment
+    Amazonka.AuditManager.GetOrganizationAdminAccount
+    Amazonka.AuditManager.GetServicesInScope
+    Amazonka.AuditManager.GetSettings
+    Amazonka.AuditManager.Lens
+    Amazonka.AuditManager.ListAssessmentControlInsightsByControlDomain
+    Amazonka.AuditManager.ListAssessmentFrameworks
+    Amazonka.AuditManager.ListAssessmentFrameworkShareRequests
+    Amazonka.AuditManager.ListAssessmentReports
+    Amazonka.AuditManager.ListAssessments
+    Amazonka.AuditManager.ListControlDomainInsights
+    Amazonka.AuditManager.ListControlDomainInsightsByAssessment
+    Amazonka.AuditManager.ListControlInsightsByControlDomain
+    Amazonka.AuditManager.ListControls
+    Amazonka.AuditManager.ListKeywordsForDataSource
+    Amazonka.AuditManager.ListNotifications
+    Amazonka.AuditManager.ListTagsForResource
+    Amazonka.AuditManager.RegisterAccount
+    Amazonka.AuditManager.RegisterOrganizationAdminAccount
+    Amazonka.AuditManager.StartAssessmentFrameworkShare
+    Amazonka.AuditManager.TagResource
+    Amazonka.AuditManager.Types
+    Amazonka.AuditManager.Types.AccountStatus
+    Amazonka.AuditManager.Types.ActionEnum
+    Amazonka.AuditManager.Types.Assessment
+    Amazonka.AuditManager.Types.AssessmentControl
+    Amazonka.AuditManager.Types.AssessmentControlSet
+    Amazonka.AuditManager.Types.AssessmentEvidenceFolder
+    Amazonka.AuditManager.Types.AssessmentFramework
+    Amazonka.AuditManager.Types.AssessmentFrameworkMetadata
+    Amazonka.AuditManager.Types.AssessmentFrameworkShareRequest
+    Amazonka.AuditManager.Types.AssessmentMetadata
+    Amazonka.AuditManager.Types.AssessmentMetadataItem
+    Amazonka.AuditManager.Types.AssessmentReport
+    Amazonka.AuditManager.Types.AssessmentReportDestinationType
+    Amazonka.AuditManager.Types.AssessmentReportEvidenceError
+    Amazonka.AuditManager.Types.AssessmentReportMetadata
+    Amazonka.AuditManager.Types.AssessmentReportsDestination
+    Amazonka.AuditManager.Types.AssessmentReportStatus
+    Amazonka.AuditManager.Types.AssessmentStatus
+    Amazonka.AuditManager.Types.AWSAccount
+    Amazonka.AuditManager.Types.AWSService
+    Amazonka.AuditManager.Types.BatchCreateDelegationByAssessmentError
+    Amazonka.AuditManager.Types.BatchDeleteDelegationByAssessmentError
+    Amazonka.AuditManager.Types.BatchImportEvidenceToAssessmentControlError
+    Amazonka.AuditManager.Types.ChangeLog
+    Amazonka.AuditManager.Types.Control
+    Amazonka.AuditManager.Types.ControlComment
+    Amazonka.AuditManager.Types.ControlDomainInsights
+    Amazonka.AuditManager.Types.ControlInsightsMetadataByAssessmentItem
+    Amazonka.AuditManager.Types.ControlInsightsMetadataItem
+    Amazonka.AuditManager.Types.ControlMappingSource
+    Amazonka.AuditManager.Types.ControlMetadata
+    Amazonka.AuditManager.Types.ControlResponse
+    Amazonka.AuditManager.Types.ControlSet
+    Amazonka.AuditManager.Types.ControlSetStatus
+    Amazonka.AuditManager.Types.ControlStatus
+    Amazonka.AuditManager.Types.ControlType
+    Amazonka.AuditManager.Types.CreateAssessmentFrameworkControl
+    Amazonka.AuditManager.Types.CreateAssessmentFrameworkControlSet
+    Amazonka.AuditManager.Types.CreateControlMappingSource
+    Amazonka.AuditManager.Types.CreateDelegationRequest
+    Amazonka.AuditManager.Types.Delegation
+    Amazonka.AuditManager.Types.DelegationMetadata
+    Amazonka.AuditManager.Types.DelegationStatus
+    Amazonka.AuditManager.Types.DeleteResources
+    Amazonka.AuditManager.Types.DeregistrationPolicy
+    Amazonka.AuditManager.Types.Evidence
+    Amazonka.AuditManager.Types.EvidenceFinderBackfillStatus
+    Amazonka.AuditManager.Types.EvidenceFinderEnablement
+    Amazonka.AuditManager.Types.EvidenceFinderEnablementStatus
+    Amazonka.AuditManager.Types.EvidenceInsights
+    Amazonka.AuditManager.Types.Framework
+    Amazonka.AuditManager.Types.FrameworkMetadata
+    Amazonka.AuditManager.Types.FrameworkType
+    Amazonka.AuditManager.Types.Insights
+    Amazonka.AuditManager.Types.InsightsByAssessment
+    Amazonka.AuditManager.Types.KeywordInputType
+    Amazonka.AuditManager.Types.ManualEvidence
+    Amazonka.AuditManager.Types.Notification
+    Amazonka.AuditManager.Types.ObjectTypeEnum
+    Amazonka.AuditManager.Types.Resource
+    Amazonka.AuditManager.Types.Role
+    Amazonka.AuditManager.Types.RoleType
+    Amazonka.AuditManager.Types.Scope
+    Amazonka.AuditManager.Types.ServiceMetadata
+    Amazonka.AuditManager.Types.SettingAttribute
+    Amazonka.AuditManager.Types.Settings
+    Amazonka.AuditManager.Types.ShareRequestAction
+    Amazonka.AuditManager.Types.ShareRequestStatus
+    Amazonka.AuditManager.Types.ShareRequestType
+    Amazonka.AuditManager.Types.SourceFrequency
+    Amazonka.AuditManager.Types.SourceKeyword
+    Amazonka.AuditManager.Types.SourceSetUpOption
+    Amazonka.AuditManager.Types.SourceType
+    Amazonka.AuditManager.Types.UpdateAssessmentFrameworkControlSet
+    Amazonka.AuditManager.Types.URL
+    Amazonka.AuditManager.UntagResource
+    Amazonka.AuditManager.UpdateAssessment
+    Amazonka.AuditManager.UpdateAssessmentControl
+    Amazonka.AuditManager.UpdateAssessmentControlSetStatus
+    Amazonka.AuditManager.UpdateAssessmentFramework
+    Amazonka.AuditManager.UpdateAssessmentFrameworkShare
+    Amazonka.AuditManager.UpdateAssessmentStatus
+    Amazonka.AuditManager.UpdateControl
+    Amazonka.AuditManager.UpdateSettings
+    Amazonka.AuditManager.ValidateAssessmentReportIntegrity
+    Amazonka.AuditManager.Waiters
+
+  build-depends:
+    , amazonka-core  >=2.0  && <2.1
+    , base           >=4.12 && <5
+
+test-suite amazonka-auditmanager-test
+  type:             exitcode-stdio-1.0
+  default-language: Haskell2010
+  hs-source-dirs:   test
+  main-is:          Main.hs
+  ghc-options:      -Wall -threaded
+
+  -- This section is encoded by the template and any modules added by
+  -- hand outside these namespaces will not correctly be added to the
+  -- distribution package.
+  other-modules:
+    Test.Amazonka.AuditManager
+    Test.Amazonka.AuditManager.Internal
+    Test.Amazonka.Gen.AuditManager
+
+  build-depends:
+    , amazonka-auditmanager
+    , 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/AssociateAssessmentReportEvidenceFolder.yaml b/fixture/AssociateAssessmentReportEvidenceFolder.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/AssociateAssessmentReportEvidenceFolder.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/AssociateAssessmentReportEvidenceFolderResponse.proto b/fixture/AssociateAssessmentReportEvidenceFolderResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/AssociateAssessmentReportEvidenceFolderResponse.proto
diff --git a/fixture/BatchAssociateAssessmentReportEvidence.yaml b/fixture/BatchAssociateAssessmentReportEvidence.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/BatchAssociateAssessmentReportEvidence.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/BatchAssociateAssessmentReportEvidenceResponse.proto b/fixture/BatchAssociateAssessmentReportEvidenceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/BatchAssociateAssessmentReportEvidenceResponse.proto
diff --git a/fixture/BatchCreateDelegationByAssessment.yaml b/fixture/BatchCreateDelegationByAssessment.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/BatchCreateDelegationByAssessment.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/BatchCreateDelegationByAssessmentResponse.proto b/fixture/BatchCreateDelegationByAssessmentResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/BatchCreateDelegationByAssessmentResponse.proto
diff --git a/fixture/BatchDeleteDelegationByAssessment.yaml b/fixture/BatchDeleteDelegationByAssessment.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/BatchDeleteDelegationByAssessment.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/BatchDeleteDelegationByAssessmentResponse.proto b/fixture/BatchDeleteDelegationByAssessmentResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/BatchDeleteDelegationByAssessmentResponse.proto
diff --git a/fixture/BatchDisassociateAssessmentReportEvidence.yaml b/fixture/BatchDisassociateAssessmentReportEvidence.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/BatchDisassociateAssessmentReportEvidence.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/BatchDisassociateAssessmentReportEvidenceResponse.proto b/fixture/BatchDisassociateAssessmentReportEvidenceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/BatchDisassociateAssessmentReportEvidenceResponse.proto
diff --git a/fixture/BatchImportEvidenceToAssessmentControl.yaml b/fixture/BatchImportEvidenceToAssessmentControl.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/BatchImportEvidenceToAssessmentControl.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/BatchImportEvidenceToAssessmentControlResponse.proto b/fixture/BatchImportEvidenceToAssessmentControlResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/BatchImportEvidenceToAssessmentControlResponse.proto
diff --git a/fixture/CreateAssessment.yaml b/fixture/CreateAssessment.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateAssessment.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/CreateAssessmentFramework.yaml b/fixture/CreateAssessmentFramework.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateAssessmentFramework.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/CreateAssessmentFrameworkResponse.proto b/fixture/CreateAssessmentFrameworkResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateAssessmentFrameworkResponse.proto
diff --git a/fixture/CreateAssessmentReport.yaml b/fixture/CreateAssessmentReport.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateAssessmentReport.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/CreateAssessmentReportResponse.proto b/fixture/CreateAssessmentReportResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateAssessmentReportResponse.proto
diff --git a/fixture/CreateAssessmentResponse.proto b/fixture/CreateAssessmentResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateAssessmentResponse.proto
diff --git a/fixture/CreateControl.yaml b/fixture/CreateControl.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateControl.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/CreateControlResponse.proto b/fixture/CreateControlResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateControlResponse.proto
diff --git a/fixture/DeleteAssessment.yaml b/fixture/DeleteAssessment.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessment.yaml
@@ -0,0 +1,10 @@
+---
+method: DELETE
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/DeleteAssessmentFramework.yaml b/fixture/DeleteAssessmentFramework.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentFramework.yaml
@@ -0,0 +1,10 @@
+---
+method: DELETE
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/DeleteAssessmentFrameworkResponse.proto b/fixture/DeleteAssessmentFrameworkResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentFrameworkResponse.proto
diff --git a/fixture/DeleteAssessmentFrameworkShare.yaml b/fixture/DeleteAssessmentFrameworkShare.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentFrameworkShare.yaml
@@ -0,0 +1,10 @@
+---
+method: DELETE
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/DeleteAssessmentFrameworkShareResponse.proto b/fixture/DeleteAssessmentFrameworkShareResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentFrameworkShareResponse.proto
diff --git a/fixture/DeleteAssessmentReport.yaml b/fixture/DeleteAssessmentReport.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentReport.yaml
@@ -0,0 +1,10 @@
+---
+method: DELETE
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/DeleteAssessmentReportResponse.proto b/fixture/DeleteAssessmentReportResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentReportResponse.proto
diff --git a/fixture/DeleteAssessmentResponse.proto b/fixture/DeleteAssessmentResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentResponse.proto
diff --git a/fixture/DeleteControl.yaml b/fixture/DeleteControl.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteControl.yaml
@@ -0,0 +1,10 @@
+---
+method: DELETE
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/DeleteControlResponse.proto b/fixture/DeleteControlResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteControlResponse.proto
diff --git a/fixture/DeregisterAccount.yaml b/fixture/DeregisterAccount.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeregisterAccount.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/DeregisterAccountResponse.proto b/fixture/DeregisterAccountResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeregisterAccountResponse.proto
diff --git a/fixture/DeregisterOrganizationAdminAccount.yaml b/fixture/DeregisterOrganizationAdminAccount.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeregisterOrganizationAdminAccount.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/DeregisterOrganizationAdminAccountResponse.proto b/fixture/DeregisterOrganizationAdminAccountResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeregisterOrganizationAdminAccountResponse.proto
diff --git a/fixture/DisassociateAssessmentReportEvidenceFolder.yaml b/fixture/DisassociateAssessmentReportEvidenceFolder.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DisassociateAssessmentReportEvidenceFolder.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/DisassociateAssessmentReportEvidenceFolderResponse.proto b/fixture/DisassociateAssessmentReportEvidenceFolderResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DisassociateAssessmentReportEvidenceFolderResponse.proto
diff --git a/fixture/GetAccountStatus.yaml b/fixture/GetAccountStatus.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetAccountStatus.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetAccountStatusResponse.proto b/fixture/GetAccountStatusResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetAccountStatusResponse.proto
diff --git a/fixture/GetAssessment.yaml b/fixture/GetAssessment.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetAssessment.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetAssessmentFramework.yaml b/fixture/GetAssessmentFramework.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetAssessmentFramework.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetAssessmentFrameworkResponse.proto b/fixture/GetAssessmentFrameworkResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetAssessmentFrameworkResponse.proto
diff --git a/fixture/GetAssessmentReportUrl.yaml b/fixture/GetAssessmentReportUrl.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetAssessmentReportUrl.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetAssessmentReportUrlResponse.proto b/fixture/GetAssessmentReportUrlResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetAssessmentReportUrlResponse.proto
diff --git a/fixture/GetAssessmentResponse.proto b/fixture/GetAssessmentResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetAssessmentResponse.proto
diff --git a/fixture/GetChangeLogs.yaml b/fixture/GetChangeLogs.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetChangeLogs.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetChangeLogsResponse.proto b/fixture/GetChangeLogsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetChangeLogsResponse.proto
diff --git a/fixture/GetControl.yaml b/fixture/GetControl.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetControl.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetControlResponse.proto b/fixture/GetControlResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetControlResponse.proto
diff --git a/fixture/GetDelegations.yaml b/fixture/GetDelegations.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetDelegations.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetDelegationsResponse.proto b/fixture/GetDelegationsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetDelegationsResponse.proto
diff --git a/fixture/GetEvidence.yaml b/fixture/GetEvidence.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetEvidence.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetEvidenceByEvidenceFolder.yaml b/fixture/GetEvidenceByEvidenceFolder.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetEvidenceByEvidenceFolder.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetEvidenceByEvidenceFolderResponse.proto b/fixture/GetEvidenceByEvidenceFolderResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetEvidenceByEvidenceFolderResponse.proto
diff --git a/fixture/GetEvidenceFolder.yaml b/fixture/GetEvidenceFolder.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetEvidenceFolder.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetEvidenceFolderResponse.proto b/fixture/GetEvidenceFolderResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetEvidenceFolderResponse.proto
diff --git a/fixture/GetEvidenceFoldersByAssessment.yaml b/fixture/GetEvidenceFoldersByAssessment.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetEvidenceFoldersByAssessment.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetEvidenceFoldersByAssessmentControl.yaml b/fixture/GetEvidenceFoldersByAssessmentControl.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetEvidenceFoldersByAssessmentControl.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetEvidenceFoldersByAssessmentControlResponse.proto b/fixture/GetEvidenceFoldersByAssessmentControlResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetEvidenceFoldersByAssessmentControlResponse.proto
diff --git a/fixture/GetEvidenceFoldersByAssessmentResponse.proto b/fixture/GetEvidenceFoldersByAssessmentResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetEvidenceFoldersByAssessmentResponse.proto
diff --git a/fixture/GetEvidenceResponse.proto b/fixture/GetEvidenceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetEvidenceResponse.proto
diff --git a/fixture/GetInsights.yaml b/fixture/GetInsights.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetInsights.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetInsightsByAssessment.yaml b/fixture/GetInsightsByAssessment.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetInsightsByAssessment.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetInsightsByAssessmentResponse.proto b/fixture/GetInsightsByAssessmentResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetInsightsByAssessmentResponse.proto
diff --git a/fixture/GetInsightsResponse.proto b/fixture/GetInsightsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetInsightsResponse.proto
diff --git a/fixture/GetOrganizationAdminAccount.yaml b/fixture/GetOrganizationAdminAccount.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetOrganizationAdminAccount.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetOrganizationAdminAccountResponse.proto b/fixture/GetOrganizationAdminAccountResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetOrganizationAdminAccountResponse.proto
diff --git a/fixture/GetServicesInScope.yaml b/fixture/GetServicesInScope.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetServicesInScope.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetServicesInScopeResponse.proto b/fixture/GetServicesInScopeResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetServicesInScopeResponse.proto
diff --git a/fixture/GetSettings.yaml b/fixture/GetSettings.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetSettings.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/GetSettingsResponse.proto b/fixture/GetSettingsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetSettingsResponse.proto
diff --git a/fixture/ListAssessmentControlInsightsByControlDomain.yaml b/fixture/ListAssessmentControlInsightsByControlDomain.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentControlInsightsByControlDomain.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/ListAssessmentControlInsightsByControlDomainResponse.proto b/fixture/ListAssessmentControlInsightsByControlDomainResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentControlInsightsByControlDomainResponse.proto
diff --git a/fixture/ListAssessmentFrameworkShareRequests.yaml b/fixture/ListAssessmentFrameworkShareRequests.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentFrameworkShareRequests.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/ListAssessmentFrameworkShareRequestsResponse.proto b/fixture/ListAssessmentFrameworkShareRequestsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentFrameworkShareRequestsResponse.proto
diff --git a/fixture/ListAssessmentFrameworks.yaml b/fixture/ListAssessmentFrameworks.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentFrameworks.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/ListAssessmentFrameworksResponse.proto b/fixture/ListAssessmentFrameworksResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentFrameworksResponse.proto
diff --git a/fixture/ListAssessmentReports.yaml b/fixture/ListAssessmentReports.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentReports.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/ListAssessmentReportsResponse.proto b/fixture/ListAssessmentReportsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentReportsResponse.proto
diff --git a/fixture/ListAssessments.yaml b/fixture/ListAssessments.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessments.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/ListAssessmentsResponse.proto b/fixture/ListAssessmentsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentsResponse.proto
diff --git a/fixture/ListControlDomainInsights.yaml b/fixture/ListControlDomainInsights.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListControlDomainInsights.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/ListControlDomainInsightsByAssessment.yaml b/fixture/ListControlDomainInsightsByAssessment.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListControlDomainInsightsByAssessment.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/ListControlDomainInsightsByAssessmentResponse.proto b/fixture/ListControlDomainInsightsByAssessmentResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListControlDomainInsightsByAssessmentResponse.proto
diff --git a/fixture/ListControlDomainInsightsResponse.proto b/fixture/ListControlDomainInsightsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListControlDomainInsightsResponse.proto
diff --git a/fixture/ListControlInsightsByControlDomain.yaml b/fixture/ListControlInsightsByControlDomain.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListControlInsightsByControlDomain.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/ListControlInsightsByControlDomainResponse.proto b/fixture/ListControlInsightsByControlDomainResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListControlInsightsByControlDomainResponse.proto
diff --git a/fixture/ListControls.yaml b/fixture/ListControls.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListControls.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/ListControlsResponse.proto b/fixture/ListControlsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListControlsResponse.proto
diff --git a/fixture/ListKeywordsForDataSource.yaml b/fixture/ListKeywordsForDataSource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListKeywordsForDataSource.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/ListKeywordsForDataSourceResponse.proto b/fixture/ListKeywordsForDataSourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListKeywordsForDataSourceResponse.proto
diff --git a/fixture/ListNotifications.yaml b/fixture/ListNotifications.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListNotifications.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/ListNotificationsResponse.proto b/fixture/ListNotificationsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListNotificationsResponse.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: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/RegisterAccount.yaml b/fixture/RegisterAccount.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RegisterAccount.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/RegisterAccountResponse.proto b/fixture/RegisterAccountResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RegisterAccountResponse.proto
diff --git a/fixture/RegisterOrganizationAdminAccount.yaml b/fixture/RegisterOrganizationAdminAccount.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/RegisterOrganizationAdminAccount.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/RegisterOrganizationAdminAccountResponse.proto b/fixture/RegisterOrganizationAdminAccountResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/RegisterOrganizationAdminAccountResponse.proto
diff --git a/fixture/StartAssessmentFrameworkShare.yaml b/fixture/StartAssessmentFrameworkShare.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/StartAssessmentFrameworkShare.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/StartAssessmentFrameworkShareResponse.proto b/fixture/StartAssessmentFrameworkShareResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/StartAssessmentFrameworkShareResponse.proto
diff --git a/fixture/TagResource.yaml b/fixture/TagResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/TagResource.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/TagResourceResponse.proto b/fixture/TagResourceResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/TagResourceResponse.proto
diff --git a/fixture/UntagResource.yaml b/fixture/UntagResource.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UntagResource.yaml
@@ -0,0 +1,10 @@
+---
+method: DELETE
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/UpdateAssessment.yaml b/fixture/UpdateAssessment.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessment.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/UpdateAssessmentControl.yaml b/fixture/UpdateAssessmentControl.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentControl.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/UpdateAssessmentControlResponse.proto b/fixture/UpdateAssessmentControlResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentControlResponse.proto
diff --git a/fixture/UpdateAssessmentControlSetStatus.yaml b/fixture/UpdateAssessmentControlSetStatus.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentControlSetStatus.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/UpdateAssessmentControlSetStatusResponse.proto b/fixture/UpdateAssessmentControlSetStatusResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentControlSetStatusResponse.proto
diff --git a/fixture/UpdateAssessmentFramework.yaml b/fixture/UpdateAssessmentFramework.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentFramework.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/UpdateAssessmentFrameworkResponse.proto b/fixture/UpdateAssessmentFrameworkResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentFrameworkResponse.proto
diff --git a/fixture/UpdateAssessmentFrameworkShare.yaml b/fixture/UpdateAssessmentFrameworkShare.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentFrameworkShare.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/UpdateAssessmentFrameworkShareResponse.proto b/fixture/UpdateAssessmentFrameworkShareResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentFrameworkShareResponse.proto
diff --git a/fixture/UpdateAssessmentResponse.proto b/fixture/UpdateAssessmentResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentResponse.proto
diff --git a/fixture/UpdateAssessmentStatus.yaml b/fixture/UpdateAssessmentStatus.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentStatus.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/UpdateAssessmentStatusResponse.proto b/fixture/UpdateAssessmentStatusResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentStatusResponse.proto
diff --git a/fixture/UpdateControl.yaml b/fixture/UpdateControl.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateControl.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/UpdateControlResponse.proto b/fixture/UpdateControlResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateControlResponse.proto
diff --git a/fixture/UpdateSettings.yaml b/fixture/UpdateSettings.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateSettings.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/UpdateSettingsResponse.proto b/fixture/UpdateSettingsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateSettingsResponse.proto
diff --git a/fixture/ValidateAssessmentReportIntegrity.yaml b/fixture/ValidateAssessmentReportIntegrity.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ValidateAssessmentReportIntegrity.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/auditmanager/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  auditmanager.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/ValidateAssessmentReportIntegrityResponse.proto b/fixture/ValidateAssessmentReportIntegrityResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ValidateAssessmentReportIntegrityResponse.proto
diff --git a/gen/Amazonka/AuditManager.hs b/gen/Amazonka/AuditManager.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager.hs
@@ -0,0 +1,814 @@
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Amazonka.AuditManager
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Derived from API version @2017-07-25@ of the AWS service descriptions, licensed under Apache 2.0.
+--
+-- Welcome to the Audit Manager API reference. This guide is for developers
+-- who need detailed information about the Audit Manager API operations,
+-- data types, and errors.
+--
+-- Audit Manager is a service that provides automated evidence collection
+-- so that you can continually audit your Amazon Web Services usage. You
+-- can use it to assess the effectiveness of your controls, manage risk,
+-- and simplify compliance.
+--
+-- Audit Manager provides prebuilt frameworks that structure and automate
+-- assessments for a given compliance standard. Frameworks include a
+-- prebuilt collection of controls with descriptions and testing
+-- procedures. These controls are grouped according to the requirements of
+-- the specified compliance standard or regulation. You can also customize
+-- frameworks and controls to support internal audits with specific
+-- requirements.
+--
+-- Use the following links to get started with the Audit Manager API:
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_Operations.html Actions>:
+--     An alphabetical list of all Audit Manager API operations.
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_Types.html Data types>:
+--     An alphabetical list of all Audit Manager data types.
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/APIReference/CommonParameters.html Common parameters>:
+--     Parameters that all operations can use.
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/APIReference/CommonErrors.html Common errors>:
+--     Client and server errors that all operations can return.
+--
+-- If you\'re new to Audit Manager, we recommend that you review the
+-- <https://docs.aws.amazon.com/audit-manager/latest/userguide/what-is.html Audit Manager User Guide>.
+module Amazonka.AuditManager
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    -- $errors
+
+    -- ** AccessDeniedException
+    _AccessDeniedException,
+
+    -- ** InternalServerException
+    _InternalServerException,
+
+    -- ** ResourceNotFoundException
+    _ResourceNotFoundException,
+
+    -- ** ServiceQuotaExceededException
+    _ServiceQuotaExceededException,
+
+    -- ** ThrottlingException
+    _ThrottlingException,
+
+    -- ** ValidationException
+    _ValidationException,
+
+    -- * Waiters
+    -- $waiters
+
+    -- * Operations
+    -- $operations
+
+    -- ** AssociateAssessmentReportEvidenceFolder
+    AssociateAssessmentReportEvidenceFolder (AssociateAssessmentReportEvidenceFolder'),
+    newAssociateAssessmentReportEvidenceFolder,
+    AssociateAssessmentReportEvidenceFolderResponse (AssociateAssessmentReportEvidenceFolderResponse'),
+    newAssociateAssessmentReportEvidenceFolderResponse,
+
+    -- ** BatchAssociateAssessmentReportEvidence
+    BatchAssociateAssessmentReportEvidence (BatchAssociateAssessmentReportEvidence'),
+    newBatchAssociateAssessmentReportEvidence,
+    BatchAssociateAssessmentReportEvidenceResponse (BatchAssociateAssessmentReportEvidenceResponse'),
+    newBatchAssociateAssessmentReportEvidenceResponse,
+
+    -- ** BatchCreateDelegationByAssessment
+    BatchCreateDelegationByAssessment (BatchCreateDelegationByAssessment'),
+    newBatchCreateDelegationByAssessment,
+    BatchCreateDelegationByAssessmentResponse (BatchCreateDelegationByAssessmentResponse'),
+    newBatchCreateDelegationByAssessmentResponse,
+
+    -- ** BatchDeleteDelegationByAssessment
+    BatchDeleteDelegationByAssessment (BatchDeleteDelegationByAssessment'),
+    newBatchDeleteDelegationByAssessment,
+    BatchDeleteDelegationByAssessmentResponse (BatchDeleteDelegationByAssessmentResponse'),
+    newBatchDeleteDelegationByAssessmentResponse,
+
+    -- ** BatchDisassociateAssessmentReportEvidence
+    BatchDisassociateAssessmentReportEvidence (BatchDisassociateAssessmentReportEvidence'),
+    newBatchDisassociateAssessmentReportEvidence,
+    BatchDisassociateAssessmentReportEvidenceResponse (BatchDisassociateAssessmentReportEvidenceResponse'),
+    newBatchDisassociateAssessmentReportEvidenceResponse,
+
+    -- ** BatchImportEvidenceToAssessmentControl
+    BatchImportEvidenceToAssessmentControl (BatchImportEvidenceToAssessmentControl'),
+    newBatchImportEvidenceToAssessmentControl,
+    BatchImportEvidenceToAssessmentControlResponse (BatchImportEvidenceToAssessmentControlResponse'),
+    newBatchImportEvidenceToAssessmentControlResponse,
+
+    -- ** CreateAssessment
+    CreateAssessment (CreateAssessment'),
+    newCreateAssessment,
+    CreateAssessmentResponse (CreateAssessmentResponse'),
+    newCreateAssessmentResponse,
+
+    -- ** CreateAssessmentFramework
+    CreateAssessmentFramework (CreateAssessmentFramework'),
+    newCreateAssessmentFramework,
+    CreateAssessmentFrameworkResponse (CreateAssessmentFrameworkResponse'),
+    newCreateAssessmentFrameworkResponse,
+
+    -- ** CreateAssessmentReport
+    CreateAssessmentReport (CreateAssessmentReport'),
+    newCreateAssessmentReport,
+    CreateAssessmentReportResponse (CreateAssessmentReportResponse'),
+    newCreateAssessmentReportResponse,
+
+    -- ** CreateControl
+    CreateControl (CreateControl'),
+    newCreateControl,
+    CreateControlResponse (CreateControlResponse'),
+    newCreateControlResponse,
+
+    -- ** DeleteAssessment
+    DeleteAssessment (DeleteAssessment'),
+    newDeleteAssessment,
+    DeleteAssessmentResponse (DeleteAssessmentResponse'),
+    newDeleteAssessmentResponse,
+
+    -- ** DeleteAssessmentFramework
+    DeleteAssessmentFramework (DeleteAssessmentFramework'),
+    newDeleteAssessmentFramework,
+    DeleteAssessmentFrameworkResponse (DeleteAssessmentFrameworkResponse'),
+    newDeleteAssessmentFrameworkResponse,
+
+    -- ** DeleteAssessmentFrameworkShare
+    DeleteAssessmentFrameworkShare (DeleteAssessmentFrameworkShare'),
+    newDeleteAssessmentFrameworkShare,
+    DeleteAssessmentFrameworkShareResponse (DeleteAssessmentFrameworkShareResponse'),
+    newDeleteAssessmentFrameworkShareResponse,
+
+    -- ** DeleteAssessmentReport
+    DeleteAssessmentReport (DeleteAssessmentReport'),
+    newDeleteAssessmentReport,
+    DeleteAssessmentReportResponse (DeleteAssessmentReportResponse'),
+    newDeleteAssessmentReportResponse,
+
+    -- ** DeleteControl
+    DeleteControl (DeleteControl'),
+    newDeleteControl,
+    DeleteControlResponse (DeleteControlResponse'),
+    newDeleteControlResponse,
+
+    -- ** DeregisterAccount
+    DeregisterAccount (DeregisterAccount'),
+    newDeregisterAccount,
+    DeregisterAccountResponse (DeregisterAccountResponse'),
+    newDeregisterAccountResponse,
+
+    -- ** DeregisterOrganizationAdminAccount
+    DeregisterOrganizationAdminAccount (DeregisterOrganizationAdminAccount'),
+    newDeregisterOrganizationAdminAccount,
+    DeregisterOrganizationAdminAccountResponse (DeregisterOrganizationAdminAccountResponse'),
+    newDeregisterOrganizationAdminAccountResponse,
+
+    -- ** DisassociateAssessmentReportEvidenceFolder
+    DisassociateAssessmentReportEvidenceFolder (DisassociateAssessmentReportEvidenceFolder'),
+    newDisassociateAssessmentReportEvidenceFolder,
+    DisassociateAssessmentReportEvidenceFolderResponse (DisassociateAssessmentReportEvidenceFolderResponse'),
+    newDisassociateAssessmentReportEvidenceFolderResponse,
+
+    -- ** GetAccountStatus
+    GetAccountStatus (GetAccountStatus'),
+    newGetAccountStatus,
+    GetAccountStatusResponse (GetAccountStatusResponse'),
+    newGetAccountStatusResponse,
+
+    -- ** GetAssessment
+    GetAssessment (GetAssessment'),
+    newGetAssessment,
+    GetAssessmentResponse (GetAssessmentResponse'),
+    newGetAssessmentResponse,
+
+    -- ** GetAssessmentFramework
+    GetAssessmentFramework (GetAssessmentFramework'),
+    newGetAssessmentFramework,
+    GetAssessmentFrameworkResponse (GetAssessmentFrameworkResponse'),
+    newGetAssessmentFrameworkResponse,
+
+    -- ** GetAssessmentReportUrl
+    GetAssessmentReportUrl (GetAssessmentReportUrl'),
+    newGetAssessmentReportUrl,
+    GetAssessmentReportUrlResponse (GetAssessmentReportUrlResponse'),
+    newGetAssessmentReportUrlResponse,
+
+    -- ** GetChangeLogs
+    GetChangeLogs (GetChangeLogs'),
+    newGetChangeLogs,
+    GetChangeLogsResponse (GetChangeLogsResponse'),
+    newGetChangeLogsResponse,
+
+    -- ** GetControl
+    GetControl (GetControl'),
+    newGetControl,
+    GetControlResponse (GetControlResponse'),
+    newGetControlResponse,
+
+    -- ** GetDelegations
+    GetDelegations (GetDelegations'),
+    newGetDelegations,
+    GetDelegationsResponse (GetDelegationsResponse'),
+    newGetDelegationsResponse,
+
+    -- ** GetEvidence
+    GetEvidence (GetEvidence'),
+    newGetEvidence,
+    GetEvidenceResponse (GetEvidenceResponse'),
+    newGetEvidenceResponse,
+
+    -- ** GetEvidenceByEvidenceFolder
+    GetEvidenceByEvidenceFolder (GetEvidenceByEvidenceFolder'),
+    newGetEvidenceByEvidenceFolder,
+    GetEvidenceByEvidenceFolderResponse (GetEvidenceByEvidenceFolderResponse'),
+    newGetEvidenceByEvidenceFolderResponse,
+
+    -- ** GetEvidenceFolder
+    GetEvidenceFolder (GetEvidenceFolder'),
+    newGetEvidenceFolder,
+    GetEvidenceFolderResponse (GetEvidenceFolderResponse'),
+    newGetEvidenceFolderResponse,
+
+    -- ** GetEvidenceFoldersByAssessment
+    GetEvidenceFoldersByAssessment (GetEvidenceFoldersByAssessment'),
+    newGetEvidenceFoldersByAssessment,
+    GetEvidenceFoldersByAssessmentResponse (GetEvidenceFoldersByAssessmentResponse'),
+    newGetEvidenceFoldersByAssessmentResponse,
+
+    -- ** GetEvidenceFoldersByAssessmentControl
+    GetEvidenceFoldersByAssessmentControl (GetEvidenceFoldersByAssessmentControl'),
+    newGetEvidenceFoldersByAssessmentControl,
+    GetEvidenceFoldersByAssessmentControlResponse (GetEvidenceFoldersByAssessmentControlResponse'),
+    newGetEvidenceFoldersByAssessmentControlResponse,
+
+    -- ** GetInsights
+    GetInsights (GetInsights'),
+    newGetInsights,
+    GetInsightsResponse (GetInsightsResponse'),
+    newGetInsightsResponse,
+
+    -- ** GetInsightsByAssessment
+    GetInsightsByAssessment (GetInsightsByAssessment'),
+    newGetInsightsByAssessment,
+    GetInsightsByAssessmentResponse (GetInsightsByAssessmentResponse'),
+    newGetInsightsByAssessmentResponse,
+
+    -- ** GetOrganizationAdminAccount
+    GetOrganizationAdminAccount (GetOrganizationAdminAccount'),
+    newGetOrganizationAdminAccount,
+    GetOrganizationAdminAccountResponse (GetOrganizationAdminAccountResponse'),
+    newGetOrganizationAdminAccountResponse,
+
+    -- ** GetServicesInScope
+    GetServicesInScope (GetServicesInScope'),
+    newGetServicesInScope,
+    GetServicesInScopeResponse (GetServicesInScopeResponse'),
+    newGetServicesInScopeResponse,
+
+    -- ** GetSettings
+    GetSettings (GetSettings'),
+    newGetSettings,
+    GetSettingsResponse (GetSettingsResponse'),
+    newGetSettingsResponse,
+
+    -- ** ListAssessmentControlInsightsByControlDomain
+    ListAssessmentControlInsightsByControlDomain (ListAssessmentControlInsightsByControlDomain'),
+    newListAssessmentControlInsightsByControlDomain,
+    ListAssessmentControlInsightsByControlDomainResponse (ListAssessmentControlInsightsByControlDomainResponse'),
+    newListAssessmentControlInsightsByControlDomainResponse,
+
+    -- ** ListAssessmentFrameworkShareRequests
+    ListAssessmentFrameworkShareRequests (ListAssessmentFrameworkShareRequests'),
+    newListAssessmentFrameworkShareRequests,
+    ListAssessmentFrameworkShareRequestsResponse (ListAssessmentFrameworkShareRequestsResponse'),
+    newListAssessmentFrameworkShareRequestsResponse,
+
+    -- ** ListAssessmentFrameworks
+    ListAssessmentFrameworks (ListAssessmentFrameworks'),
+    newListAssessmentFrameworks,
+    ListAssessmentFrameworksResponse (ListAssessmentFrameworksResponse'),
+    newListAssessmentFrameworksResponse,
+
+    -- ** ListAssessmentReports
+    ListAssessmentReports (ListAssessmentReports'),
+    newListAssessmentReports,
+    ListAssessmentReportsResponse (ListAssessmentReportsResponse'),
+    newListAssessmentReportsResponse,
+
+    -- ** ListAssessments
+    ListAssessments (ListAssessments'),
+    newListAssessments,
+    ListAssessmentsResponse (ListAssessmentsResponse'),
+    newListAssessmentsResponse,
+
+    -- ** ListControlDomainInsights
+    ListControlDomainInsights (ListControlDomainInsights'),
+    newListControlDomainInsights,
+    ListControlDomainInsightsResponse (ListControlDomainInsightsResponse'),
+    newListControlDomainInsightsResponse,
+
+    -- ** ListControlDomainInsightsByAssessment
+    ListControlDomainInsightsByAssessment (ListControlDomainInsightsByAssessment'),
+    newListControlDomainInsightsByAssessment,
+    ListControlDomainInsightsByAssessmentResponse (ListControlDomainInsightsByAssessmentResponse'),
+    newListControlDomainInsightsByAssessmentResponse,
+
+    -- ** ListControlInsightsByControlDomain
+    ListControlInsightsByControlDomain (ListControlInsightsByControlDomain'),
+    newListControlInsightsByControlDomain,
+    ListControlInsightsByControlDomainResponse (ListControlInsightsByControlDomainResponse'),
+    newListControlInsightsByControlDomainResponse,
+
+    -- ** ListControls
+    ListControls (ListControls'),
+    newListControls,
+    ListControlsResponse (ListControlsResponse'),
+    newListControlsResponse,
+
+    -- ** ListKeywordsForDataSource
+    ListKeywordsForDataSource (ListKeywordsForDataSource'),
+    newListKeywordsForDataSource,
+    ListKeywordsForDataSourceResponse (ListKeywordsForDataSourceResponse'),
+    newListKeywordsForDataSourceResponse,
+
+    -- ** ListNotifications
+    ListNotifications (ListNotifications'),
+    newListNotifications,
+    ListNotificationsResponse (ListNotificationsResponse'),
+    newListNotificationsResponse,
+
+    -- ** ListTagsForResource
+    ListTagsForResource (ListTagsForResource'),
+    newListTagsForResource,
+    ListTagsForResourceResponse (ListTagsForResourceResponse'),
+    newListTagsForResourceResponse,
+
+    -- ** RegisterAccount
+    RegisterAccount (RegisterAccount'),
+    newRegisterAccount,
+    RegisterAccountResponse (RegisterAccountResponse'),
+    newRegisterAccountResponse,
+
+    -- ** RegisterOrganizationAdminAccount
+    RegisterOrganizationAdminAccount (RegisterOrganizationAdminAccount'),
+    newRegisterOrganizationAdminAccount,
+    RegisterOrganizationAdminAccountResponse (RegisterOrganizationAdminAccountResponse'),
+    newRegisterOrganizationAdminAccountResponse,
+
+    -- ** StartAssessmentFrameworkShare
+    StartAssessmentFrameworkShare (StartAssessmentFrameworkShare'),
+    newStartAssessmentFrameworkShare,
+    StartAssessmentFrameworkShareResponse (StartAssessmentFrameworkShareResponse'),
+    newStartAssessmentFrameworkShareResponse,
+
+    -- ** TagResource
+    TagResource (TagResource'),
+    newTagResource,
+    TagResourceResponse (TagResourceResponse'),
+    newTagResourceResponse,
+
+    -- ** UntagResource
+    UntagResource (UntagResource'),
+    newUntagResource,
+    UntagResourceResponse (UntagResourceResponse'),
+    newUntagResourceResponse,
+
+    -- ** UpdateAssessment
+    UpdateAssessment (UpdateAssessment'),
+    newUpdateAssessment,
+    UpdateAssessmentResponse (UpdateAssessmentResponse'),
+    newUpdateAssessmentResponse,
+
+    -- ** UpdateAssessmentControl
+    UpdateAssessmentControl (UpdateAssessmentControl'),
+    newUpdateAssessmentControl,
+    UpdateAssessmentControlResponse (UpdateAssessmentControlResponse'),
+    newUpdateAssessmentControlResponse,
+
+    -- ** UpdateAssessmentControlSetStatus
+    UpdateAssessmentControlSetStatus (UpdateAssessmentControlSetStatus'),
+    newUpdateAssessmentControlSetStatus,
+    UpdateAssessmentControlSetStatusResponse (UpdateAssessmentControlSetStatusResponse'),
+    newUpdateAssessmentControlSetStatusResponse,
+
+    -- ** UpdateAssessmentFramework
+    UpdateAssessmentFramework (UpdateAssessmentFramework'),
+    newUpdateAssessmentFramework,
+    UpdateAssessmentFrameworkResponse (UpdateAssessmentFrameworkResponse'),
+    newUpdateAssessmentFrameworkResponse,
+
+    -- ** UpdateAssessmentFrameworkShare
+    UpdateAssessmentFrameworkShare (UpdateAssessmentFrameworkShare'),
+    newUpdateAssessmentFrameworkShare,
+    UpdateAssessmentFrameworkShareResponse (UpdateAssessmentFrameworkShareResponse'),
+    newUpdateAssessmentFrameworkShareResponse,
+
+    -- ** UpdateAssessmentStatus
+    UpdateAssessmentStatus (UpdateAssessmentStatus'),
+    newUpdateAssessmentStatus,
+    UpdateAssessmentStatusResponse (UpdateAssessmentStatusResponse'),
+    newUpdateAssessmentStatusResponse,
+
+    -- ** UpdateControl
+    UpdateControl (UpdateControl'),
+    newUpdateControl,
+    UpdateControlResponse (UpdateControlResponse'),
+    newUpdateControlResponse,
+
+    -- ** UpdateSettings
+    UpdateSettings (UpdateSettings'),
+    newUpdateSettings,
+    UpdateSettingsResponse (UpdateSettingsResponse'),
+    newUpdateSettingsResponse,
+
+    -- ** ValidateAssessmentReportIntegrity
+    ValidateAssessmentReportIntegrity (ValidateAssessmentReportIntegrity'),
+    newValidateAssessmentReportIntegrity,
+    ValidateAssessmentReportIntegrityResponse (ValidateAssessmentReportIntegrityResponse'),
+    newValidateAssessmentReportIntegrityResponse,
+
+    -- * Types
+
+    -- ** AccountStatus
+    AccountStatus (..),
+
+    -- ** ActionEnum
+    ActionEnum (..),
+
+    -- ** AssessmentReportDestinationType
+    AssessmentReportDestinationType (..),
+
+    -- ** AssessmentReportStatus
+    AssessmentReportStatus (..),
+
+    -- ** AssessmentStatus
+    AssessmentStatus (..),
+
+    -- ** ControlResponse
+    ControlResponse (..),
+
+    -- ** ControlSetStatus
+    ControlSetStatus (..),
+
+    -- ** ControlStatus
+    ControlStatus (..),
+
+    -- ** ControlType
+    ControlType (..),
+
+    -- ** DelegationStatus
+    DelegationStatus (..),
+
+    -- ** DeleteResources
+    DeleteResources (..),
+
+    -- ** EvidenceFinderBackfillStatus
+    EvidenceFinderBackfillStatus (..),
+
+    -- ** EvidenceFinderEnablementStatus
+    EvidenceFinderEnablementStatus (..),
+
+    -- ** FrameworkType
+    FrameworkType (..),
+
+    -- ** KeywordInputType
+    KeywordInputType (..),
+
+    -- ** ObjectTypeEnum
+    ObjectTypeEnum (..),
+
+    -- ** RoleType
+    RoleType (..),
+
+    -- ** SettingAttribute
+    SettingAttribute (..),
+
+    -- ** ShareRequestAction
+    ShareRequestAction (..),
+
+    -- ** ShareRequestStatus
+    ShareRequestStatus (..),
+
+    -- ** ShareRequestType
+    ShareRequestType (..),
+
+    -- ** SourceFrequency
+    SourceFrequency (..),
+
+    -- ** SourceSetUpOption
+    SourceSetUpOption (..),
+
+    -- ** SourceType
+    SourceType (..),
+
+    -- ** AWSAccount
+    AWSAccount (AWSAccount'),
+    newAWSAccount,
+
+    -- ** AWSService
+    AWSService (AWSService'),
+    newAWSService,
+
+    -- ** Assessment
+    Assessment (Assessment'),
+    newAssessment,
+
+    -- ** AssessmentControl
+    AssessmentControl (AssessmentControl'),
+    newAssessmentControl,
+
+    -- ** AssessmentControlSet
+    AssessmentControlSet (AssessmentControlSet'),
+    newAssessmentControlSet,
+
+    -- ** AssessmentEvidenceFolder
+    AssessmentEvidenceFolder (AssessmentEvidenceFolder'),
+    newAssessmentEvidenceFolder,
+
+    -- ** AssessmentFramework
+    AssessmentFramework (AssessmentFramework'),
+    newAssessmentFramework,
+
+    -- ** AssessmentFrameworkMetadata
+    AssessmentFrameworkMetadata (AssessmentFrameworkMetadata'),
+    newAssessmentFrameworkMetadata,
+
+    -- ** AssessmentFrameworkShareRequest
+    AssessmentFrameworkShareRequest (AssessmentFrameworkShareRequest'),
+    newAssessmentFrameworkShareRequest,
+
+    -- ** AssessmentMetadata
+    AssessmentMetadata (AssessmentMetadata'),
+    newAssessmentMetadata,
+
+    -- ** AssessmentMetadataItem
+    AssessmentMetadataItem (AssessmentMetadataItem'),
+    newAssessmentMetadataItem,
+
+    -- ** AssessmentReport
+    AssessmentReport (AssessmentReport'),
+    newAssessmentReport,
+
+    -- ** AssessmentReportEvidenceError
+    AssessmentReportEvidenceError (AssessmentReportEvidenceError'),
+    newAssessmentReportEvidenceError,
+
+    -- ** AssessmentReportMetadata
+    AssessmentReportMetadata (AssessmentReportMetadata'),
+    newAssessmentReportMetadata,
+
+    -- ** AssessmentReportsDestination
+    AssessmentReportsDestination (AssessmentReportsDestination'),
+    newAssessmentReportsDestination,
+
+    -- ** BatchCreateDelegationByAssessmentError
+    BatchCreateDelegationByAssessmentError (BatchCreateDelegationByAssessmentError'),
+    newBatchCreateDelegationByAssessmentError,
+
+    -- ** BatchDeleteDelegationByAssessmentError
+    BatchDeleteDelegationByAssessmentError (BatchDeleteDelegationByAssessmentError'),
+    newBatchDeleteDelegationByAssessmentError,
+
+    -- ** BatchImportEvidenceToAssessmentControlError
+    BatchImportEvidenceToAssessmentControlError (BatchImportEvidenceToAssessmentControlError'),
+    newBatchImportEvidenceToAssessmentControlError,
+
+    -- ** ChangeLog
+    ChangeLog (ChangeLog'),
+    newChangeLog,
+
+    -- ** Control
+    Control (Control'),
+    newControl,
+
+    -- ** ControlComment
+    ControlComment (ControlComment'),
+    newControlComment,
+
+    -- ** ControlDomainInsights
+    ControlDomainInsights (ControlDomainInsights'),
+    newControlDomainInsights,
+
+    -- ** ControlInsightsMetadataByAssessmentItem
+    ControlInsightsMetadataByAssessmentItem (ControlInsightsMetadataByAssessmentItem'),
+    newControlInsightsMetadataByAssessmentItem,
+
+    -- ** ControlInsightsMetadataItem
+    ControlInsightsMetadataItem (ControlInsightsMetadataItem'),
+    newControlInsightsMetadataItem,
+
+    -- ** ControlMappingSource
+    ControlMappingSource (ControlMappingSource'),
+    newControlMappingSource,
+
+    -- ** ControlMetadata
+    ControlMetadata (ControlMetadata'),
+    newControlMetadata,
+
+    -- ** ControlSet
+    ControlSet (ControlSet'),
+    newControlSet,
+
+    -- ** CreateAssessmentFrameworkControl
+    CreateAssessmentFrameworkControl (CreateAssessmentFrameworkControl'),
+    newCreateAssessmentFrameworkControl,
+
+    -- ** CreateAssessmentFrameworkControlSet
+    CreateAssessmentFrameworkControlSet (CreateAssessmentFrameworkControlSet'),
+    newCreateAssessmentFrameworkControlSet,
+
+    -- ** CreateControlMappingSource
+    CreateControlMappingSource (CreateControlMappingSource'),
+    newCreateControlMappingSource,
+
+    -- ** CreateDelegationRequest
+    CreateDelegationRequest (CreateDelegationRequest'),
+    newCreateDelegationRequest,
+
+    -- ** Delegation
+    Delegation (Delegation'),
+    newDelegation,
+
+    -- ** DelegationMetadata
+    DelegationMetadata (DelegationMetadata'),
+    newDelegationMetadata,
+
+    -- ** DeregistrationPolicy
+    DeregistrationPolicy (DeregistrationPolicy'),
+    newDeregistrationPolicy,
+
+    -- ** Evidence
+    Evidence (Evidence'),
+    newEvidence,
+
+    -- ** EvidenceFinderEnablement
+    EvidenceFinderEnablement (EvidenceFinderEnablement'),
+    newEvidenceFinderEnablement,
+
+    -- ** EvidenceInsights
+    EvidenceInsights (EvidenceInsights'),
+    newEvidenceInsights,
+
+    -- ** Framework
+    Framework (Framework'),
+    newFramework,
+
+    -- ** FrameworkMetadata
+    FrameworkMetadata (FrameworkMetadata'),
+    newFrameworkMetadata,
+
+    -- ** Insights
+    Insights (Insights'),
+    newInsights,
+
+    -- ** InsightsByAssessment
+    InsightsByAssessment (InsightsByAssessment'),
+    newInsightsByAssessment,
+
+    -- ** ManualEvidence
+    ManualEvidence (ManualEvidence'),
+    newManualEvidence,
+
+    -- ** Notification
+    Notification (Notification'),
+    newNotification,
+
+    -- ** Resource
+    Resource (Resource'),
+    newResource,
+
+    -- ** Role
+    Role (Role'),
+    newRole,
+
+    -- ** Scope
+    Scope (Scope'),
+    newScope,
+
+    -- ** ServiceMetadata
+    ServiceMetadata (ServiceMetadata'),
+    newServiceMetadata,
+
+    -- ** Settings
+    Settings (Settings'),
+    newSettings,
+
+    -- ** SourceKeyword
+    SourceKeyword (SourceKeyword'),
+    newSourceKeyword,
+
+    -- ** URL
+    URL (URL'),
+    newURL,
+
+    -- ** UpdateAssessmentFrameworkControlSet
+    UpdateAssessmentFrameworkControlSet (UpdateAssessmentFrameworkControlSet'),
+    newUpdateAssessmentFrameworkControlSet,
+  )
+where
+
+import Amazonka.AuditManager.AssociateAssessmentReportEvidenceFolder
+import Amazonka.AuditManager.BatchAssociateAssessmentReportEvidence
+import Amazonka.AuditManager.BatchCreateDelegationByAssessment
+import Amazonka.AuditManager.BatchDeleteDelegationByAssessment
+import Amazonka.AuditManager.BatchDisassociateAssessmentReportEvidence
+import Amazonka.AuditManager.BatchImportEvidenceToAssessmentControl
+import Amazonka.AuditManager.CreateAssessment
+import Amazonka.AuditManager.CreateAssessmentFramework
+import Amazonka.AuditManager.CreateAssessmentReport
+import Amazonka.AuditManager.CreateControl
+import Amazonka.AuditManager.DeleteAssessment
+import Amazonka.AuditManager.DeleteAssessmentFramework
+import Amazonka.AuditManager.DeleteAssessmentFrameworkShare
+import Amazonka.AuditManager.DeleteAssessmentReport
+import Amazonka.AuditManager.DeleteControl
+import Amazonka.AuditManager.DeregisterAccount
+import Amazonka.AuditManager.DeregisterOrganizationAdminAccount
+import Amazonka.AuditManager.DisassociateAssessmentReportEvidenceFolder
+import Amazonka.AuditManager.GetAccountStatus
+import Amazonka.AuditManager.GetAssessment
+import Amazonka.AuditManager.GetAssessmentFramework
+import Amazonka.AuditManager.GetAssessmentReportUrl
+import Amazonka.AuditManager.GetChangeLogs
+import Amazonka.AuditManager.GetControl
+import Amazonka.AuditManager.GetDelegations
+import Amazonka.AuditManager.GetEvidence
+import Amazonka.AuditManager.GetEvidenceByEvidenceFolder
+import Amazonka.AuditManager.GetEvidenceFolder
+import Amazonka.AuditManager.GetEvidenceFoldersByAssessment
+import Amazonka.AuditManager.GetEvidenceFoldersByAssessmentControl
+import Amazonka.AuditManager.GetInsights
+import Amazonka.AuditManager.GetInsightsByAssessment
+import Amazonka.AuditManager.GetOrganizationAdminAccount
+import Amazonka.AuditManager.GetServicesInScope
+import Amazonka.AuditManager.GetSettings
+import Amazonka.AuditManager.Lens
+import Amazonka.AuditManager.ListAssessmentControlInsightsByControlDomain
+import Amazonka.AuditManager.ListAssessmentFrameworkShareRequests
+import Amazonka.AuditManager.ListAssessmentFrameworks
+import Amazonka.AuditManager.ListAssessmentReports
+import Amazonka.AuditManager.ListAssessments
+import Amazonka.AuditManager.ListControlDomainInsights
+import Amazonka.AuditManager.ListControlDomainInsightsByAssessment
+import Amazonka.AuditManager.ListControlInsightsByControlDomain
+import Amazonka.AuditManager.ListControls
+import Amazonka.AuditManager.ListKeywordsForDataSource
+import Amazonka.AuditManager.ListNotifications
+import Amazonka.AuditManager.ListTagsForResource
+import Amazonka.AuditManager.RegisterAccount
+import Amazonka.AuditManager.RegisterOrganizationAdminAccount
+import Amazonka.AuditManager.StartAssessmentFrameworkShare
+import Amazonka.AuditManager.TagResource
+import Amazonka.AuditManager.Types
+import Amazonka.AuditManager.UntagResource
+import Amazonka.AuditManager.UpdateAssessment
+import Amazonka.AuditManager.UpdateAssessmentControl
+import Amazonka.AuditManager.UpdateAssessmentControlSetStatus
+import Amazonka.AuditManager.UpdateAssessmentFramework
+import Amazonka.AuditManager.UpdateAssessmentFrameworkShare
+import Amazonka.AuditManager.UpdateAssessmentStatus
+import Amazonka.AuditManager.UpdateControl
+import Amazonka.AuditManager.UpdateSettings
+import Amazonka.AuditManager.ValidateAssessmentReportIntegrity
+import Amazonka.AuditManager.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 'AuditManager'.
+
+-- $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/AuditManager/AssociateAssessmentReportEvidenceFolder.hs b/gen/Amazonka/AuditManager/AssociateAssessmentReportEvidenceFolder.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/AssociateAssessmentReportEvidenceFolder.hs
@@ -0,0 +1,211 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.AssociateAssessmentReportEvidenceFolder
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Associates an evidence folder to an assessment report in an Audit
+-- Manager assessment.
+module Amazonka.AuditManager.AssociateAssessmentReportEvidenceFolder
+  ( -- * Creating a Request
+    AssociateAssessmentReportEvidenceFolder (..),
+    newAssociateAssessmentReportEvidenceFolder,
+
+    -- * Request Lenses
+    associateAssessmentReportEvidenceFolder_assessmentId,
+    associateAssessmentReportEvidenceFolder_evidenceFolderId,
+
+    -- * Destructuring the Response
+    AssociateAssessmentReportEvidenceFolderResponse (..),
+    newAssociateAssessmentReportEvidenceFolderResponse,
+
+    -- * Response Lenses
+    associateAssessmentReportEvidenceFolderResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newAssociateAssessmentReportEvidenceFolder' smart constructor.
+data AssociateAssessmentReportEvidenceFolder = AssociateAssessmentReportEvidenceFolder'
+  { -- | The identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The identifier for the folder that the evidence is stored in.
+    evidenceFolderId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssociateAssessmentReportEvidenceFolder' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'associateAssessmentReportEvidenceFolder_assessmentId' - The identifier for the assessment.
+--
+-- 'evidenceFolderId', 'associateAssessmentReportEvidenceFolder_evidenceFolderId' - The identifier for the folder that the evidence is stored in.
+newAssociateAssessmentReportEvidenceFolder ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'evidenceFolderId'
+  Prelude.Text ->
+  AssociateAssessmentReportEvidenceFolder
+newAssociateAssessmentReportEvidenceFolder
+  pAssessmentId_
+  pEvidenceFolderId_ =
+    AssociateAssessmentReportEvidenceFolder'
+      { assessmentId =
+          pAssessmentId_,
+        evidenceFolderId =
+          pEvidenceFolderId_
+      }
+
+-- | The identifier for the assessment.
+associateAssessmentReportEvidenceFolder_assessmentId :: Lens.Lens' AssociateAssessmentReportEvidenceFolder Prelude.Text
+associateAssessmentReportEvidenceFolder_assessmentId = Lens.lens (\AssociateAssessmentReportEvidenceFolder' {assessmentId} -> assessmentId) (\s@AssociateAssessmentReportEvidenceFolder' {} a -> s {assessmentId = a} :: AssociateAssessmentReportEvidenceFolder)
+
+-- | The identifier for the folder that the evidence is stored in.
+associateAssessmentReportEvidenceFolder_evidenceFolderId :: Lens.Lens' AssociateAssessmentReportEvidenceFolder Prelude.Text
+associateAssessmentReportEvidenceFolder_evidenceFolderId = Lens.lens (\AssociateAssessmentReportEvidenceFolder' {evidenceFolderId} -> evidenceFolderId) (\s@AssociateAssessmentReportEvidenceFolder' {} a -> s {evidenceFolderId = a} :: AssociateAssessmentReportEvidenceFolder)
+
+instance
+  Core.AWSRequest
+    AssociateAssessmentReportEvidenceFolder
+  where
+  type
+    AWSResponse
+      AssociateAssessmentReportEvidenceFolder =
+      AssociateAssessmentReportEvidenceFolderResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          AssociateAssessmentReportEvidenceFolderResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    AssociateAssessmentReportEvidenceFolder
+  where
+  hashWithSalt
+    _salt
+    AssociateAssessmentReportEvidenceFolder' {..} =
+      _salt
+        `Prelude.hashWithSalt` assessmentId
+        `Prelude.hashWithSalt` evidenceFolderId
+
+instance
+  Prelude.NFData
+    AssociateAssessmentReportEvidenceFolder
+  where
+  rnf AssociateAssessmentReportEvidenceFolder' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf evidenceFolderId
+
+instance
+  Data.ToHeaders
+    AssociateAssessmentReportEvidenceFolder
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    AssociateAssessmentReportEvidenceFolder
+  where
+  toJSON AssociateAssessmentReportEvidenceFolder' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("evidenceFolderId" Data..= evidenceFolderId)
+          ]
+      )
+
+instance
+  Data.ToPath
+    AssociateAssessmentReportEvidenceFolder
+  where
+  toPath AssociateAssessmentReportEvidenceFolder' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/associateToAssessmentReport"
+      ]
+
+instance
+  Data.ToQuery
+    AssociateAssessmentReportEvidenceFolder
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newAssociateAssessmentReportEvidenceFolderResponse' smart constructor.
+data AssociateAssessmentReportEvidenceFolderResponse = AssociateAssessmentReportEvidenceFolderResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssociateAssessmentReportEvidenceFolderResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'associateAssessmentReportEvidenceFolderResponse_httpStatus' - The response's http status code.
+newAssociateAssessmentReportEvidenceFolderResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  AssociateAssessmentReportEvidenceFolderResponse
+newAssociateAssessmentReportEvidenceFolderResponse
+  pHttpStatus_ =
+    AssociateAssessmentReportEvidenceFolderResponse'
+      { httpStatus =
+          pHttpStatus_
+      }
+
+-- | The response's http status code.
+associateAssessmentReportEvidenceFolderResponse_httpStatus :: Lens.Lens' AssociateAssessmentReportEvidenceFolderResponse Prelude.Int
+associateAssessmentReportEvidenceFolderResponse_httpStatus = Lens.lens (\AssociateAssessmentReportEvidenceFolderResponse' {httpStatus} -> httpStatus) (\s@AssociateAssessmentReportEvidenceFolderResponse' {} a -> s {httpStatus = a} :: AssociateAssessmentReportEvidenceFolderResponse)
+
+instance
+  Prelude.NFData
+    AssociateAssessmentReportEvidenceFolderResponse
+  where
+  rnf
+    AssociateAssessmentReportEvidenceFolderResponse' {..} =
+      Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/BatchAssociateAssessmentReportEvidence.hs b/gen/Amazonka/AuditManager/BatchAssociateAssessmentReportEvidence.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/BatchAssociateAssessmentReportEvidence.hs
@@ -0,0 +1,252 @@
+{-# 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.AuditManager.BatchAssociateAssessmentReportEvidence
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Associates a list of evidence to an assessment report in an Audit
+-- Manager assessment.
+module Amazonka.AuditManager.BatchAssociateAssessmentReportEvidence
+  ( -- * Creating a Request
+    BatchAssociateAssessmentReportEvidence (..),
+    newBatchAssociateAssessmentReportEvidence,
+
+    -- * Request Lenses
+    batchAssociateAssessmentReportEvidence_assessmentId,
+    batchAssociateAssessmentReportEvidence_evidenceFolderId,
+    batchAssociateAssessmentReportEvidence_evidenceIds,
+
+    -- * Destructuring the Response
+    BatchAssociateAssessmentReportEvidenceResponse (..),
+    newBatchAssociateAssessmentReportEvidenceResponse,
+
+    -- * Response Lenses
+    batchAssociateAssessmentReportEvidenceResponse_errors,
+    batchAssociateAssessmentReportEvidenceResponse_evidenceIds,
+    batchAssociateAssessmentReportEvidenceResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newBatchAssociateAssessmentReportEvidence' smart constructor.
+data BatchAssociateAssessmentReportEvidence = BatchAssociateAssessmentReportEvidence'
+  { -- | The identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The identifier for the folder that the evidence is stored in.
+    evidenceFolderId :: Prelude.Text,
+    -- | The list of evidence identifiers.
+    evidenceIds :: [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchAssociateAssessmentReportEvidence' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'batchAssociateAssessmentReportEvidence_assessmentId' - The identifier for the assessment.
+--
+-- 'evidenceFolderId', 'batchAssociateAssessmentReportEvidence_evidenceFolderId' - The identifier for the folder that the evidence is stored in.
+--
+-- 'evidenceIds', 'batchAssociateAssessmentReportEvidence_evidenceIds' - The list of evidence identifiers.
+newBatchAssociateAssessmentReportEvidence ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'evidenceFolderId'
+  Prelude.Text ->
+  BatchAssociateAssessmentReportEvidence
+newBatchAssociateAssessmentReportEvidence
+  pAssessmentId_
+  pEvidenceFolderId_ =
+    BatchAssociateAssessmentReportEvidence'
+      { assessmentId =
+          pAssessmentId_,
+        evidenceFolderId =
+          pEvidenceFolderId_,
+        evidenceIds = Prelude.mempty
+      }
+
+-- | The identifier for the assessment.
+batchAssociateAssessmentReportEvidence_assessmentId :: Lens.Lens' BatchAssociateAssessmentReportEvidence Prelude.Text
+batchAssociateAssessmentReportEvidence_assessmentId = Lens.lens (\BatchAssociateAssessmentReportEvidence' {assessmentId} -> assessmentId) (\s@BatchAssociateAssessmentReportEvidence' {} a -> s {assessmentId = a} :: BatchAssociateAssessmentReportEvidence)
+
+-- | The identifier for the folder that the evidence is stored in.
+batchAssociateAssessmentReportEvidence_evidenceFolderId :: Lens.Lens' BatchAssociateAssessmentReportEvidence Prelude.Text
+batchAssociateAssessmentReportEvidence_evidenceFolderId = Lens.lens (\BatchAssociateAssessmentReportEvidence' {evidenceFolderId} -> evidenceFolderId) (\s@BatchAssociateAssessmentReportEvidence' {} a -> s {evidenceFolderId = a} :: BatchAssociateAssessmentReportEvidence)
+
+-- | The list of evidence identifiers.
+batchAssociateAssessmentReportEvidence_evidenceIds :: Lens.Lens' BatchAssociateAssessmentReportEvidence [Prelude.Text]
+batchAssociateAssessmentReportEvidence_evidenceIds = Lens.lens (\BatchAssociateAssessmentReportEvidence' {evidenceIds} -> evidenceIds) (\s@BatchAssociateAssessmentReportEvidence' {} a -> s {evidenceIds = a} :: BatchAssociateAssessmentReportEvidence) Prelude.. Lens.coerced
+
+instance
+  Core.AWSRequest
+    BatchAssociateAssessmentReportEvidence
+  where
+  type
+    AWSResponse
+      BatchAssociateAssessmentReportEvidence =
+      BatchAssociateAssessmentReportEvidenceResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          BatchAssociateAssessmentReportEvidenceResponse'
+            Prelude.<$> (x Data..?> "errors" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "evidenceIds" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    BatchAssociateAssessmentReportEvidence
+  where
+  hashWithSalt
+    _salt
+    BatchAssociateAssessmentReportEvidence' {..} =
+      _salt
+        `Prelude.hashWithSalt` assessmentId
+        `Prelude.hashWithSalt` evidenceFolderId
+        `Prelude.hashWithSalt` evidenceIds
+
+instance
+  Prelude.NFData
+    BatchAssociateAssessmentReportEvidence
+  where
+  rnf BatchAssociateAssessmentReportEvidence' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf evidenceFolderId
+      `Prelude.seq` Prelude.rnf evidenceIds
+
+instance
+  Data.ToHeaders
+    BatchAssociateAssessmentReportEvidence
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    BatchAssociateAssessmentReportEvidence
+  where
+  toJSON BatchAssociateAssessmentReportEvidence' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("evidenceFolderId" Data..= evidenceFolderId),
+            Prelude.Just ("evidenceIds" Data..= evidenceIds)
+          ]
+      )
+
+instance
+  Data.ToPath
+    BatchAssociateAssessmentReportEvidence
+  where
+  toPath BatchAssociateAssessmentReportEvidence' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/batchAssociateToAssessmentReport"
+      ]
+
+instance
+  Data.ToQuery
+    BatchAssociateAssessmentReportEvidence
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newBatchAssociateAssessmentReportEvidenceResponse' smart constructor.
+data BatchAssociateAssessmentReportEvidenceResponse = BatchAssociateAssessmentReportEvidenceResponse'
+  { -- | A list of errors that the @BatchAssociateAssessmentReportEvidence@ API
+    -- returned.
+    errors :: Prelude.Maybe [AssessmentReportEvidenceError],
+    -- | The list of evidence identifiers.
+    evidenceIds :: 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 'BatchAssociateAssessmentReportEvidenceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'errors', 'batchAssociateAssessmentReportEvidenceResponse_errors' - A list of errors that the @BatchAssociateAssessmentReportEvidence@ API
+-- returned.
+--
+-- 'evidenceIds', 'batchAssociateAssessmentReportEvidenceResponse_evidenceIds' - The list of evidence identifiers.
+--
+-- 'httpStatus', 'batchAssociateAssessmentReportEvidenceResponse_httpStatus' - The response's http status code.
+newBatchAssociateAssessmentReportEvidenceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  BatchAssociateAssessmentReportEvidenceResponse
+newBatchAssociateAssessmentReportEvidenceResponse
+  pHttpStatus_ =
+    BatchAssociateAssessmentReportEvidenceResponse'
+      { errors =
+          Prelude.Nothing,
+        evidenceIds =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | A list of errors that the @BatchAssociateAssessmentReportEvidence@ API
+-- returned.
+batchAssociateAssessmentReportEvidenceResponse_errors :: Lens.Lens' BatchAssociateAssessmentReportEvidenceResponse (Prelude.Maybe [AssessmentReportEvidenceError])
+batchAssociateAssessmentReportEvidenceResponse_errors = Lens.lens (\BatchAssociateAssessmentReportEvidenceResponse' {errors} -> errors) (\s@BatchAssociateAssessmentReportEvidenceResponse' {} a -> s {errors = a} :: BatchAssociateAssessmentReportEvidenceResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The list of evidence identifiers.
+batchAssociateAssessmentReportEvidenceResponse_evidenceIds :: Lens.Lens' BatchAssociateAssessmentReportEvidenceResponse (Prelude.Maybe [Prelude.Text])
+batchAssociateAssessmentReportEvidenceResponse_evidenceIds = Lens.lens (\BatchAssociateAssessmentReportEvidenceResponse' {evidenceIds} -> evidenceIds) (\s@BatchAssociateAssessmentReportEvidenceResponse' {} a -> s {evidenceIds = a} :: BatchAssociateAssessmentReportEvidenceResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+batchAssociateAssessmentReportEvidenceResponse_httpStatus :: Lens.Lens' BatchAssociateAssessmentReportEvidenceResponse Prelude.Int
+batchAssociateAssessmentReportEvidenceResponse_httpStatus = Lens.lens (\BatchAssociateAssessmentReportEvidenceResponse' {httpStatus} -> httpStatus) (\s@BatchAssociateAssessmentReportEvidenceResponse' {} a -> s {httpStatus = a} :: BatchAssociateAssessmentReportEvidenceResponse)
+
+instance
+  Prelude.NFData
+    BatchAssociateAssessmentReportEvidenceResponse
+  where
+  rnf
+    BatchAssociateAssessmentReportEvidenceResponse' {..} =
+      Prelude.rnf errors
+        `Prelude.seq` Prelude.rnf evidenceIds
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/BatchCreateDelegationByAssessment.hs b/gen/Amazonka/AuditManager/BatchCreateDelegationByAssessment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/BatchCreateDelegationByAssessment.hs
@@ -0,0 +1,237 @@
+{-# 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.AuditManager.BatchCreateDelegationByAssessment
+-- 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 batch of delegations for an assessment in Audit Manager.
+module Amazonka.AuditManager.BatchCreateDelegationByAssessment
+  ( -- * Creating a Request
+    BatchCreateDelegationByAssessment (..),
+    newBatchCreateDelegationByAssessment,
+
+    -- * Request Lenses
+    batchCreateDelegationByAssessment_createDelegationRequests,
+    batchCreateDelegationByAssessment_assessmentId,
+
+    -- * Destructuring the Response
+    BatchCreateDelegationByAssessmentResponse (..),
+    newBatchCreateDelegationByAssessmentResponse,
+
+    -- * Response Lenses
+    batchCreateDelegationByAssessmentResponse_delegations,
+    batchCreateDelegationByAssessmentResponse_errors,
+    batchCreateDelegationByAssessmentResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newBatchCreateDelegationByAssessment' smart constructor.
+data BatchCreateDelegationByAssessment = BatchCreateDelegationByAssessment'
+  { -- | The API request to batch create delegations in Audit Manager.
+    createDelegationRequests :: Prelude.NonEmpty CreateDelegationRequest,
+    -- | The identifier for the assessment.
+    assessmentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchCreateDelegationByAssessment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'createDelegationRequests', 'batchCreateDelegationByAssessment_createDelegationRequests' - The API request to batch create delegations in Audit Manager.
+--
+-- 'assessmentId', 'batchCreateDelegationByAssessment_assessmentId' - The identifier for the assessment.
+newBatchCreateDelegationByAssessment ::
+  -- | 'createDelegationRequests'
+  Prelude.NonEmpty CreateDelegationRequest ->
+  -- | 'assessmentId'
+  Prelude.Text ->
+  BatchCreateDelegationByAssessment
+newBatchCreateDelegationByAssessment
+  pCreateDelegationRequests_
+  pAssessmentId_ =
+    BatchCreateDelegationByAssessment'
+      { createDelegationRequests =
+          Lens.coerced
+            Lens.# pCreateDelegationRequests_,
+        assessmentId = pAssessmentId_
+      }
+
+-- | The API request to batch create delegations in Audit Manager.
+batchCreateDelegationByAssessment_createDelegationRequests :: Lens.Lens' BatchCreateDelegationByAssessment (Prelude.NonEmpty CreateDelegationRequest)
+batchCreateDelegationByAssessment_createDelegationRequests = Lens.lens (\BatchCreateDelegationByAssessment' {createDelegationRequests} -> createDelegationRequests) (\s@BatchCreateDelegationByAssessment' {} a -> s {createDelegationRequests = a} :: BatchCreateDelegationByAssessment) Prelude.. Lens.coerced
+
+-- | The identifier for the assessment.
+batchCreateDelegationByAssessment_assessmentId :: Lens.Lens' BatchCreateDelegationByAssessment Prelude.Text
+batchCreateDelegationByAssessment_assessmentId = Lens.lens (\BatchCreateDelegationByAssessment' {assessmentId} -> assessmentId) (\s@BatchCreateDelegationByAssessment' {} a -> s {assessmentId = a} :: BatchCreateDelegationByAssessment)
+
+instance
+  Core.AWSRequest
+    BatchCreateDelegationByAssessment
+  where
+  type
+    AWSResponse BatchCreateDelegationByAssessment =
+      BatchCreateDelegationByAssessmentResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          BatchCreateDelegationByAssessmentResponse'
+            Prelude.<$> (x Data..?> "delegations" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "errors" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    BatchCreateDelegationByAssessment
+  where
+  hashWithSalt
+    _salt
+    BatchCreateDelegationByAssessment' {..} =
+      _salt
+        `Prelude.hashWithSalt` createDelegationRequests
+        `Prelude.hashWithSalt` assessmentId
+
+instance
+  Prelude.NFData
+    BatchCreateDelegationByAssessment
+  where
+  rnf BatchCreateDelegationByAssessment' {..} =
+    Prelude.rnf createDelegationRequests
+      `Prelude.seq` Prelude.rnf assessmentId
+
+instance
+  Data.ToHeaders
+    BatchCreateDelegationByAssessment
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    BatchCreateDelegationByAssessment
+  where
+  toJSON BatchCreateDelegationByAssessment' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ( "createDelegationRequests"
+                  Data..= createDelegationRequests
+              )
+          ]
+      )
+
+instance
+  Data.ToPath
+    BatchCreateDelegationByAssessment
+  where
+  toPath BatchCreateDelegationByAssessment' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/delegations"
+      ]
+
+instance
+  Data.ToQuery
+    BatchCreateDelegationByAssessment
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newBatchCreateDelegationByAssessmentResponse' smart constructor.
+data BatchCreateDelegationByAssessmentResponse = BatchCreateDelegationByAssessmentResponse'
+  { -- | The delegations that are associated with the assessment.
+    delegations :: Prelude.Maybe [Delegation],
+    -- | A list of errors that the @BatchCreateDelegationByAssessment@ API
+    -- returned.
+    errors :: Prelude.Maybe [BatchCreateDelegationByAssessmentError],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchCreateDelegationByAssessmentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'delegations', 'batchCreateDelegationByAssessmentResponse_delegations' - The delegations that are associated with the assessment.
+--
+-- 'errors', 'batchCreateDelegationByAssessmentResponse_errors' - A list of errors that the @BatchCreateDelegationByAssessment@ API
+-- returned.
+--
+-- 'httpStatus', 'batchCreateDelegationByAssessmentResponse_httpStatus' - The response's http status code.
+newBatchCreateDelegationByAssessmentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  BatchCreateDelegationByAssessmentResponse
+newBatchCreateDelegationByAssessmentResponse
+  pHttpStatus_ =
+    BatchCreateDelegationByAssessmentResponse'
+      { delegations =
+          Prelude.Nothing,
+        errors = Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The delegations that are associated with the assessment.
+batchCreateDelegationByAssessmentResponse_delegations :: Lens.Lens' BatchCreateDelegationByAssessmentResponse (Prelude.Maybe [Delegation])
+batchCreateDelegationByAssessmentResponse_delegations = Lens.lens (\BatchCreateDelegationByAssessmentResponse' {delegations} -> delegations) (\s@BatchCreateDelegationByAssessmentResponse' {} a -> s {delegations = a} :: BatchCreateDelegationByAssessmentResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | A list of errors that the @BatchCreateDelegationByAssessment@ API
+-- returned.
+batchCreateDelegationByAssessmentResponse_errors :: Lens.Lens' BatchCreateDelegationByAssessmentResponse (Prelude.Maybe [BatchCreateDelegationByAssessmentError])
+batchCreateDelegationByAssessmentResponse_errors = Lens.lens (\BatchCreateDelegationByAssessmentResponse' {errors} -> errors) (\s@BatchCreateDelegationByAssessmentResponse' {} a -> s {errors = a} :: BatchCreateDelegationByAssessmentResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+batchCreateDelegationByAssessmentResponse_httpStatus :: Lens.Lens' BatchCreateDelegationByAssessmentResponse Prelude.Int
+batchCreateDelegationByAssessmentResponse_httpStatus = Lens.lens (\BatchCreateDelegationByAssessmentResponse' {httpStatus} -> httpStatus) (\s@BatchCreateDelegationByAssessmentResponse' {} a -> s {httpStatus = a} :: BatchCreateDelegationByAssessmentResponse)
+
+instance
+  Prelude.NFData
+    BatchCreateDelegationByAssessmentResponse
+  where
+  rnf BatchCreateDelegationByAssessmentResponse' {..} =
+    Prelude.rnf delegations
+      `Prelude.seq` Prelude.rnf errors
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/BatchDeleteDelegationByAssessment.hs b/gen/Amazonka/AuditManager/BatchDeleteDelegationByAssessment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/BatchDeleteDelegationByAssessment.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.AuditManager.BatchDeleteDelegationByAssessment
+-- 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 batch of delegations for an assessment in Audit Manager.
+module Amazonka.AuditManager.BatchDeleteDelegationByAssessment
+  ( -- * Creating a Request
+    BatchDeleteDelegationByAssessment (..),
+    newBatchDeleteDelegationByAssessment,
+
+    -- * Request Lenses
+    batchDeleteDelegationByAssessment_delegationIds,
+    batchDeleteDelegationByAssessment_assessmentId,
+
+    -- * Destructuring the Response
+    BatchDeleteDelegationByAssessmentResponse (..),
+    newBatchDeleteDelegationByAssessmentResponse,
+
+    -- * Response Lenses
+    batchDeleteDelegationByAssessmentResponse_errors,
+    batchDeleteDelegationByAssessmentResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newBatchDeleteDelegationByAssessment' smart constructor.
+data BatchDeleteDelegationByAssessment = BatchDeleteDelegationByAssessment'
+  { -- | The identifiers for the delegations.
+    delegationIds :: Prelude.NonEmpty Prelude.Text,
+    -- | The identifier for the assessment.
+    assessmentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchDeleteDelegationByAssessment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'delegationIds', 'batchDeleteDelegationByAssessment_delegationIds' - The identifiers for the delegations.
+--
+-- 'assessmentId', 'batchDeleteDelegationByAssessment_assessmentId' - The identifier for the assessment.
+newBatchDeleteDelegationByAssessment ::
+  -- | 'delegationIds'
+  Prelude.NonEmpty Prelude.Text ->
+  -- | 'assessmentId'
+  Prelude.Text ->
+  BatchDeleteDelegationByAssessment
+newBatchDeleteDelegationByAssessment
+  pDelegationIds_
+  pAssessmentId_ =
+    BatchDeleteDelegationByAssessment'
+      { delegationIds =
+          Lens.coerced Lens.# pDelegationIds_,
+        assessmentId = pAssessmentId_
+      }
+
+-- | The identifiers for the delegations.
+batchDeleteDelegationByAssessment_delegationIds :: Lens.Lens' BatchDeleteDelegationByAssessment (Prelude.NonEmpty Prelude.Text)
+batchDeleteDelegationByAssessment_delegationIds = Lens.lens (\BatchDeleteDelegationByAssessment' {delegationIds} -> delegationIds) (\s@BatchDeleteDelegationByAssessment' {} a -> s {delegationIds = a} :: BatchDeleteDelegationByAssessment) Prelude.. Lens.coerced
+
+-- | The identifier for the assessment.
+batchDeleteDelegationByAssessment_assessmentId :: Lens.Lens' BatchDeleteDelegationByAssessment Prelude.Text
+batchDeleteDelegationByAssessment_assessmentId = Lens.lens (\BatchDeleteDelegationByAssessment' {assessmentId} -> assessmentId) (\s@BatchDeleteDelegationByAssessment' {} a -> s {assessmentId = a} :: BatchDeleteDelegationByAssessment)
+
+instance
+  Core.AWSRequest
+    BatchDeleteDelegationByAssessment
+  where
+  type
+    AWSResponse BatchDeleteDelegationByAssessment =
+      BatchDeleteDelegationByAssessmentResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          BatchDeleteDelegationByAssessmentResponse'
+            Prelude.<$> (x Data..?> "errors" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    BatchDeleteDelegationByAssessment
+  where
+  hashWithSalt
+    _salt
+    BatchDeleteDelegationByAssessment' {..} =
+      _salt
+        `Prelude.hashWithSalt` delegationIds
+        `Prelude.hashWithSalt` assessmentId
+
+instance
+  Prelude.NFData
+    BatchDeleteDelegationByAssessment
+  where
+  rnf BatchDeleteDelegationByAssessment' {..} =
+    Prelude.rnf delegationIds
+      `Prelude.seq` Prelude.rnf assessmentId
+
+instance
+  Data.ToHeaders
+    BatchDeleteDelegationByAssessment
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    BatchDeleteDelegationByAssessment
+  where
+  toJSON BatchDeleteDelegationByAssessment' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("delegationIds" Data..= delegationIds)
+          ]
+      )
+
+instance
+  Data.ToPath
+    BatchDeleteDelegationByAssessment
+  where
+  toPath BatchDeleteDelegationByAssessment' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/delegations"
+      ]
+
+instance
+  Data.ToQuery
+    BatchDeleteDelegationByAssessment
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newBatchDeleteDelegationByAssessmentResponse' smart constructor.
+data BatchDeleteDelegationByAssessmentResponse = BatchDeleteDelegationByAssessmentResponse'
+  { -- | A list of errors that the @BatchDeleteDelegationByAssessment@ API
+    -- returned.
+    errors :: Prelude.Maybe [BatchDeleteDelegationByAssessmentError],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchDeleteDelegationByAssessmentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'errors', 'batchDeleteDelegationByAssessmentResponse_errors' - A list of errors that the @BatchDeleteDelegationByAssessment@ API
+-- returned.
+--
+-- 'httpStatus', 'batchDeleteDelegationByAssessmentResponse_httpStatus' - The response's http status code.
+newBatchDeleteDelegationByAssessmentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  BatchDeleteDelegationByAssessmentResponse
+newBatchDeleteDelegationByAssessmentResponse
+  pHttpStatus_ =
+    BatchDeleteDelegationByAssessmentResponse'
+      { errors =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | A list of errors that the @BatchDeleteDelegationByAssessment@ API
+-- returned.
+batchDeleteDelegationByAssessmentResponse_errors :: Lens.Lens' BatchDeleteDelegationByAssessmentResponse (Prelude.Maybe [BatchDeleteDelegationByAssessmentError])
+batchDeleteDelegationByAssessmentResponse_errors = Lens.lens (\BatchDeleteDelegationByAssessmentResponse' {errors} -> errors) (\s@BatchDeleteDelegationByAssessmentResponse' {} a -> s {errors = a} :: BatchDeleteDelegationByAssessmentResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+batchDeleteDelegationByAssessmentResponse_httpStatus :: Lens.Lens' BatchDeleteDelegationByAssessmentResponse Prelude.Int
+batchDeleteDelegationByAssessmentResponse_httpStatus = Lens.lens (\BatchDeleteDelegationByAssessmentResponse' {httpStatus} -> httpStatus) (\s@BatchDeleteDelegationByAssessmentResponse' {} a -> s {httpStatus = a} :: BatchDeleteDelegationByAssessmentResponse)
+
+instance
+  Prelude.NFData
+    BatchDeleteDelegationByAssessmentResponse
+  where
+  rnf BatchDeleteDelegationByAssessmentResponse' {..} =
+    Prelude.rnf errors
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/BatchDisassociateAssessmentReportEvidence.hs b/gen/Amazonka/AuditManager/BatchDisassociateAssessmentReportEvidence.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/BatchDisassociateAssessmentReportEvidence.hs
@@ -0,0 +1,253 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.BatchDisassociateAssessmentReportEvidence
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Disassociates a list of evidence from an assessment report in Audit
+-- Manager.
+module Amazonka.AuditManager.BatchDisassociateAssessmentReportEvidence
+  ( -- * Creating a Request
+    BatchDisassociateAssessmentReportEvidence (..),
+    newBatchDisassociateAssessmentReportEvidence,
+
+    -- * Request Lenses
+    batchDisassociateAssessmentReportEvidence_assessmentId,
+    batchDisassociateAssessmentReportEvidence_evidenceFolderId,
+    batchDisassociateAssessmentReportEvidence_evidenceIds,
+
+    -- * Destructuring the Response
+    BatchDisassociateAssessmentReportEvidenceResponse (..),
+    newBatchDisassociateAssessmentReportEvidenceResponse,
+
+    -- * Response Lenses
+    batchDisassociateAssessmentReportEvidenceResponse_errors,
+    batchDisassociateAssessmentReportEvidenceResponse_evidenceIds,
+    batchDisassociateAssessmentReportEvidenceResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newBatchDisassociateAssessmentReportEvidence' smart constructor.
+data BatchDisassociateAssessmentReportEvidence = BatchDisassociateAssessmentReportEvidence'
+  { -- | The identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The identifier for the folder that the evidence is stored in.
+    evidenceFolderId :: Prelude.Text,
+    -- | The list of evidence identifiers.
+    evidenceIds :: [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchDisassociateAssessmentReportEvidence' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'batchDisassociateAssessmentReportEvidence_assessmentId' - The identifier for the assessment.
+--
+-- 'evidenceFolderId', 'batchDisassociateAssessmentReportEvidence_evidenceFolderId' - The identifier for the folder that the evidence is stored in.
+--
+-- 'evidenceIds', 'batchDisassociateAssessmentReportEvidence_evidenceIds' - The list of evidence identifiers.
+newBatchDisassociateAssessmentReportEvidence ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'evidenceFolderId'
+  Prelude.Text ->
+  BatchDisassociateAssessmentReportEvidence
+newBatchDisassociateAssessmentReportEvidence
+  pAssessmentId_
+  pEvidenceFolderId_ =
+    BatchDisassociateAssessmentReportEvidence'
+      { assessmentId =
+          pAssessmentId_,
+        evidenceFolderId =
+          pEvidenceFolderId_,
+        evidenceIds = Prelude.mempty
+      }
+
+-- | The identifier for the assessment.
+batchDisassociateAssessmentReportEvidence_assessmentId :: Lens.Lens' BatchDisassociateAssessmentReportEvidence Prelude.Text
+batchDisassociateAssessmentReportEvidence_assessmentId = Lens.lens (\BatchDisassociateAssessmentReportEvidence' {assessmentId} -> assessmentId) (\s@BatchDisassociateAssessmentReportEvidence' {} a -> s {assessmentId = a} :: BatchDisassociateAssessmentReportEvidence)
+
+-- | The identifier for the folder that the evidence is stored in.
+batchDisassociateAssessmentReportEvidence_evidenceFolderId :: Lens.Lens' BatchDisassociateAssessmentReportEvidence Prelude.Text
+batchDisassociateAssessmentReportEvidence_evidenceFolderId = Lens.lens (\BatchDisassociateAssessmentReportEvidence' {evidenceFolderId} -> evidenceFolderId) (\s@BatchDisassociateAssessmentReportEvidence' {} a -> s {evidenceFolderId = a} :: BatchDisassociateAssessmentReportEvidence)
+
+-- | The list of evidence identifiers.
+batchDisassociateAssessmentReportEvidence_evidenceIds :: Lens.Lens' BatchDisassociateAssessmentReportEvidence [Prelude.Text]
+batchDisassociateAssessmentReportEvidence_evidenceIds = Lens.lens (\BatchDisassociateAssessmentReportEvidence' {evidenceIds} -> evidenceIds) (\s@BatchDisassociateAssessmentReportEvidence' {} a -> s {evidenceIds = a} :: BatchDisassociateAssessmentReportEvidence) Prelude.. Lens.coerced
+
+instance
+  Core.AWSRequest
+    BatchDisassociateAssessmentReportEvidence
+  where
+  type
+    AWSResponse
+      BatchDisassociateAssessmentReportEvidence =
+      BatchDisassociateAssessmentReportEvidenceResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          BatchDisassociateAssessmentReportEvidenceResponse'
+            Prelude.<$> (x Data..?> "errors" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "evidenceIds" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    BatchDisassociateAssessmentReportEvidence
+  where
+  hashWithSalt
+    _salt
+    BatchDisassociateAssessmentReportEvidence' {..} =
+      _salt
+        `Prelude.hashWithSalt` assessmentId
+        `Prelude.hashWithSalt` evidenceFolderId
+        `Prelude.hashWithSalt` evidenceIds
+
+instance
+  Prelude.NFData
+    BatchDisassociateAssessmentReportEvidence
+  where
+  rnf BatchDisassociateAssessmentReportEvidence' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf evidenceFolderId
+      `Prelude.seq` Prelude.rnf evidenceIds
+
+instance
+  Data.ToHeaders
+    BatchDisassociateAssessmentReportEvidence
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    BatchDisassociateAssessmentReportEvidence
+  where
+  toJSON BatchDisassociateAssessmentReportEvidence' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("evidenceFolderId" Data..= evidenceFolderId),
+            Prelude.Just ("evidenceIds" Data..= evidenceIds)
+          ]
+      )
+
+instance
+  Data.ToPath
+    BatchDisassociateAssessmentReportEvidence
+  where
+  toPath BatchDisassociateAssessmentReportEvidence' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/batchDisassociateFromAssessmentReport"
+      ]
+
+instance
+  Data.ToQuery
+    BatchDisassociateAssessmentReportEvidence
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newBatchDisassociateAssessmentReportEvidenceResponse' smart constructor.
+data BatchDisassociateAssessmentReportEvidenceResponse = BatchDisassociateAssessmentReportEvidenceResponse'
+  { -- | A list of errors that the @BatchDisassociateAssessmentReportEvidence@
+    -- API returned.
+    errors :: Prelude.Maybe [AssessmentReportEvidenceError],
+    -- | The identifier for the evidence.
+    evidenceIds :: 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 'BatchDisassociateAssessmentReportEvidenceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'errors', 'batchDisassociateAssessmentReportEvidenceResponse_errors' - A list of errors that the @BatchDisassociateAssessmentReportEvidence@
+-- API returned.
+--
+-- 'evidenceIds', 'batchDisassociateAssessmentReportEvidenceResponse_evidenceIds' - The identifier for the evidence.
+--
+-- 'httpStatus', 'batchDisassociateAssessmentReportEvidenceResponse_httpStatus' - The response's http status code.
+newBatchDisassociateAssessmentReportEvidenceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  BatchDisassociateAssessmentReportEvidenceResponse
+newBatchDisassociateAssessmentReportEvidenceResponse
+  pHttpStatus_ =
+    BatchDisassociateAssessmentReportEvidenceResponse'
+      { errors =
+          Prelude.Nothing,
+        evidenceIds =
+          Prelude.Nothing,
+        httpStatus =
+          pHttpStatus_
+      }
+
+-- | A list of errors that the @BatchDisassociateAssessmentReportEvidence@
+-- API returned.
+batchDisassociateAssessmentReportEvidenceResponse_errors :: Lens.Lens' BatchDisassociateAssessmentReportEvidenceResponse (Prelude.Maybe [AssessmentReportEvidenceError])
+batchDisassociateAssessmentReportEvidenceResponse_errors = Lens.lens (\BatchDisassociateAssessmentReportEvidenceResponse' {errors} -> errors) (\s@BatchDisassociateAssessmentReportEvidenceResponse' {} a -> s {errors = a} :: BatchDisassociateAssessmentReportEvidenceResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The identifier for the evidence.
+batchDisassociateAssessmentReportEvidenceResponse_evidenceIds :: Lens.Lens' BatchDisassociateAssessmentReportEvidenceResponse (Prelude.Maybe [Prelude.Text])
+batchDisassociateAssessmentReportEvidenceResponse_evidenceIds = Lens.lens (\BatchDisassociateAssessmentReportEvidenceResponse' {evidenceIds} -> evidenceIds) (\s@BatchDisassociateAssessmentReportEvidenceResponse' {} a -> s {evidenceIds = a} :: BatchDisassociateAssessmentReportEvidenceResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+batchDisassociateAssessmentReportEvidenceResponse_httpStatus :: Lens.Lens' BatchDisassociateAssessmentReportEvidenceResponse Prelude.Int
+batchDisassociateAssessmentReportEvidenceResponse_httpStatus = Lens.lens (\BatchDisassociateAssessmentReportEvidenceResponse' {httpStatus} -> httpStatus) (\s@BatchDisassociateAssessmentReportEvidenceResponse' {} a -> s {httpStatus = a} :: BatchDisassociateAssessmentReportEvidenceResponse)
+
+instance
+  Prelude.NFData
+    BatchDisassociateAssessmentReportEvidenceResponse
+  where
+  rnf
+    BatchDisassociateAssessmentReportEvidenceResponse' {..} =
+      Prelude.rnf errors
+        `Prelude.seq` Prelude.rnf evidenceIds
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/BatchImportEvidenceToAssessmentControl.hs b/gen/Amazonka/AuditManager/BatchImportEvidenceToAssessmentControl.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/BatchImportEvidenceToAssessmentControl.hs
@@ -0,0 +1,283 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.BatchImportEvidenceToAssessmentControl
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Uploads one or more pieces of evidence to a control in an Audit Manager
+-- assessment. You can upload manual evidence from any Amazon Simple
+-- Storage Service (Amazon S3) bucket by specifying the S3 URI of the
+-- evidence.
+--
+-- You must upload manual evidence to your S3 bucket before you can upload
+-- it to your assessment. For instructions, see
+-- <https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html CreateBucket>
+-- and
+-- <https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html PutObject>
+-- in the /Amazon Simple Storage Service API Reference./
+--
+-- The following restrictions apply to this action:
+--
+-- -   Maximum size of an individual evidence file: 100 MB
+--
+-- -   Number of daily manual evidence uploads per control: 100
+--
+-- -   Supported file formats: See
+--     <https://docs.aws.amazon.com/audit-manager/latest/userguide/upload-evidence.html#supported-manual-evidence-files Supported file types for manual evidence>
+--     in the /Audit Manager User Guide/
+--
+-- For more information about Audit Manager service restrictions, see
+-- <https://docs.aws.amazon.com/audit-manager/latest/userguide/service-quotas.html Quotas and restrictions for Audit Manager>.
+module Amazonka.AuditManager.BatchImportEvidenceToAssessmentControl
+  ( -- * Creating a Request
+    BatchImportEvidenceToAssessmentControl (..),
+    newBatchImportEvidenceToAssessmentControl,
+
+    -- * Request Lenses
+    batchImportEvidenceToAssessmentControl_assessmentId,
+    batchImportEvidenceToAssessmentControl_controlSetId,
+    batchImportEvidenceToAssessmentControl_controlId,
+    batchImportEvidenceToAssessmentControl_manualEvidence,
+
+    -- * Destructuring the Response
+    BatchImportEvidenceToAssessmentControlResponse (..),
+    newBatchImportEvidenceToAssessmentControlResponse,
+
+    -- * Response Lenses
+    batchImportEvidenceToAssessmentControlResponse_errors,
+    batchImportEvidenceToAssessmentControlResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newBatchImportEvidenceToAssessmentControl' smart constructor.
+data BatchImportEvidenceToAssessmentControl = BatchImportEvidenceToAssessmentControl'
+  { -- | The identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The identifier for the control set.
+    controlSetId :: Prelude.Text,
+    -- | The identifier for the control.
+    controlId :: Prelude.Text,
+    -- | The list of manual evidence objects.
+    manualEvidence :: Prelude.NonEmpty ManualEvidence
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchImportEvidenceToAssessmentControl' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'batchImportEvidenceToAssessmentControl_assessmentId' - The identifier for the assessment.
+--
+-- 'controlSetId', 'batchImportEvidenceToAssessmentControl_controlSetId' - The identifier for the control set.
+--
+-- 'controlId', 'batchImportEvidenceToAssessmentControl_controlId' - The identifier for the control.
+--
+-- 'manualEvidence', 'batchImportEvidenceToAssessmentControl_manualEvidence' - The list of manual evidence objects.
+newBatchImportEvidenceToAssessmentControl ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'controlSetId'
+  Prelude.Text ->
+  -- | 'controlId'
+  Prelude.Text ->
+  -- | 'manualEvidence'
+  Prelude.NonEmpty ManualEvidence ->
+  BatchImportEvidenceToAssessmentControl
+newBatchImportEvidenceToAssessmentControl
+  pAssessmentId_
+  pControlSetId_
+  pControlId_
+  pManualEvidence_ =
+    BatchImportEvidenceToAssessmentControl'
+      { assessmentId =
+          pAssessmentId_,
+        controlSetId = pControlSetId_,
+        controlId = pControlId_,
+        manualEvidence =
+          Lens.coerced
+            Lens.# pManualEvidence_
+      }
+
+-- | The identifier for the assessment.
+batchImportEvidenceToAssessmentControl_assessmentId :: Lens.Lens' BatchImportEvidenceToAssessmentControl Prelude.Text
+batchImportEvidenceToAssessmentControl_assessmentId = Lens.lens (\BatchImportEvidenceToAssessmentControl' {assessmentId} -> assessmentId) (\s@BatchImportEvidenceToAssessmentControl' {} a -> s {assessmentId = a} :: BatchImportEvidenceToAssessmentControl)
+
+-- | The identifier for the control set.
+batchImportEvidenceToAssessmentControl_controlSetId :: Lens.Lens' BatchImportEvidenceToAssessmentControl Prelude.Text
+batchImportEvidenceToAssessmentControl_controlSetId = Lens.lens (\BatchImportEvidenceToAssessmentControl' {controlSetId} -> controlSetId) (\s@BatchImportEvidenceToAssessmentControl' {} a -> s {controlSetId = a} :: BatchImportEvidenceToAssessmentControl)
+
+-- | The identifier for the control.
+batchImportEvidenceToAssessmentControl_controlId :: Lens.Lens' BatchImportEvidenceToAssessmentControl Prelude.Text
+batchImportEvidenceToAssessmentControl_controlId = Lens.lens (\BatchImportEvidenceToAssessmentControl' {controlId} -> controlId) (\s@BatchImportEvidenceToAssessmentControl' {} a -> s {controlId = a} :: BatchImportEvidenceToAssessmentControl)
+
+-- | The list of manual evidence objects.
+batchImportEvidenceToAssessmentControl_manualEvidence :: Lens.Lens' BatchImportEvidenceToAssessmentControl (Prelude.NonEmpty ManualEvidence)
+batchImportEvidenceToAssessmentControl_manualEvidence = Lens.lens (\BatchImportEvidenceToAssessmentControl' {manualEvidence} -> manualEvidence) (\s@BatchImportEvidenceToAssessmentControl' {} a -> s {manualEvidence = a} :: BatchImportEvidenceToAssessmentControl) Prelude.. Lens.coerced
+
+instance
+  Core.AWSRequest
+    BatchImportEvidenceToAssessmentControl
+  where
+  type
+    AWSResponse
+      BatchImportEvidenceToAssessmentControl =
+      BatchImportEvidenceToAssessmentControlResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          BatchImportEvidenceToAssessmentControlResponse'
+            Prelude.<$> (x Data..?> "errors" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    BatchImportEvidenceToAssessmentControl
+  where
+  hashWithSalt
+    _salt
+    BatchImportEvidenceToAssessmentControl' {..} =
+      _salt
+        `Prelude.hashWithSalt` assessmentId
+        `Prelude.hashWithSalt` controlSetId
+        `Prelude.hashWithSalt` controlId
+        `Prelude.hashWithSalt` manualEvidence
+
+instance
+  Prelude.NFData
+    BatchImportEvidenceToAssessmentControl
+  where
+  rnf BatchImportEvidenceToAssessmentControl' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf controlSetId
+      `Prelude.seq` Prelude.rnf controlId
+      `Prelude.seq` Prelude.rnf manualEvidence
+
+instance
+  Data.ToHeaders
+    BatchImportEvidenceToAssessmentControl
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    BatchImportEvidenceToAssessmentControl
+  where
+  toJSON BatchImportEvidenceToAssessmentControl' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("manualEvidence" Data..= manualEvidence)
+          ]
+      )
+
+instance
+  Data.ToPath
+    BatchImportEvidenceToAssessmentControl
+  where
+  toPath BatchImportEvidenceToAssessmentControl' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/controlSets/",
+        Data.toBS controlSetId,
+        "/controls/",
+        Data.toBS controlId,
+        "/evidence"
+      ]
+
+instance
+  Data.ToQuery
+    BatchImportEvidenceToAssessmentControl
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newBatchImportEvidenceToAssessmentControlResponse' smart constructor.
+data BatchImportEvidenceToAssessmentControlResponse = BatchImportEvidenceToAssessmentControlResponse'
+  { -- | A list of errors that the @BatchImportEvidenceToAssessmentControl@ API
+    -- returned.
+    errors :: Prelude.Maybe [BatchImportEvidenceToAssessmentControlError],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchImportEvidenceToAssessmentControlResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'errors', 'batchImportEvidenceToAssessmentControlResponse_errors' - A list of errors that the @BatchImportEvidenceToAssessmentControl@ API
+-- returned.
+--
+-- 'httpStatus', 'batchImportEvidenceToAssessmentControlResponse_httpStatus' - The response's http status code.
+newBatchImportEvidenceToAssessmentControlResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  BatchImportEvidenceToAssessmentControlResponse
+newBatchImportEvidenceToAssessmentControlResponse
+  pHttpStatus_ =
+    BatchImportEvidenceToAssessmentControlResponse'
+      { errors =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | A list of errors that the @BatchImportEvidenceToAssessmentControl@ API
+-- returned.
+batchImportEvidenceToAssessmentControlResponse_errors :: Lens.Lens' BatchImportEvidenceToAssessmentControlResponse (Prelude.Maybe [BatchImportEvidenceToAssessmentControlError])
+batchImportEvidenceToAssessmentControlResponse_errors = Lens.lens (\BatchImportEvidenceToAssessmentControlResponse' {errors} -> errors) (\s@BatchImportEvidenceToAssessmentControlResponse' {} a -> s {errors = a} :: BatchImportEvidenceToAssessmentControlResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+batchImportEvidenceToAssessmentControlResponse_httpStatus :: Lens.Lens' BatchImportEvidenceToAssessmentControlResponse Prelude.Int
+batchImportEvidenceToAssessmentControlResponse_httpStatus = Lens.lens (\BatchImportEvidenceToAssessmentControlResponse' {httpStatus} -> httpStatus) (\s@BatchImportEvidenceToAssessmentControlResponse' {} a -> s {httpStatus = a} :: BatchImportEvidenceToAssessmentControlResponse)
+
+instance
+  Prelude.NFData
+    BatchImportEvidenceToAssessmentControlResponse
+  where
+  rnf
+    BatchImportEvidenceToAssessmentControlResponse' {..} =
+      Prelude.rnf errors
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/CreateAssessment.hs b/gen/Amazonka/AuditManager/CreateAssessment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/CreateAssessment.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.AuditManager.CreateAssessment
+-- 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 assessment in Audit Manager.
+module Amazonka.AuditManager.CreateAssessment
+  ( -- * Creating a Request
+    CreateAssessment (..),
+    newCreateAssessment,
+
+    -- * Request Lenses
+    createAssessment_description,
+    createAssessment_tags,
+    createAssessment_name,
+    createAssessment_assessmentReportsDestination,
+    createAssessment_scope,
+    createAssessment_roles,
+    createAssessment_frameworkId,
+
+    -- * Destructuring the Response
+    CreateAssessmentResponse (..),
+    newCreateAssessmentResponse,
+
+    -- * Response Lenses
+    createAssessmentResponse_assessment,
+    createAssessmentResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newCreateAssessment' smart constructor.
+data CreateAssessment = CreateAssessment'
+  { -- | The optional description of the assessment to be created.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The tags that are associated with the assessment.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | The name of the assessment to be created.
+    name :: Prelude.Text,
+    -- | The assessment report storage destination for the assessment that\'s
+    -- being created.
+    assessmentReportsDestination :: AssessmentReportsDestination,
+    scope :: Scope,
+    -- | The list of roles for the assessment.
+    roles :: [Role],
+    -- | The identifier for the framework that the assessment will be created
+    -- from.
+    frameworkId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateAssessment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'description', 'createAssessment_description' - The optional description of the assessment to be created.
+--
+-- 'tags', 'createAssessment_tags' - The tags that are associated with the assessment.
+--
+-- 'name', 'createAssessment_name' - The name of the assessment to be created.
+--
+-- 'assessmentReportsDestination', 'createAssessment_assessmentReportsDestination' - The assessment report storage destination for the assessment that\'s
+-- being created.
+--
+-- 'scope', 'createAssessment_scope' - Undocumented member.
+--
+-- 'roles', 'createAssessment_roles' - The list of roles for the assessment.
+--
+-- 'frameworkId', 'createAssessment_frameworkId' - The identifier for the framework that the assessment will be created
+-- from.
+newCreateAssessment ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'assessmentReportsDestination'
+  AssessmentReportsDestination ->
+  -- | 'scope'
+  Scope ->
+  -- | 'frameworkId'
+  Prelude.Text ->
+  CreateAssessment
+newCreateAssessment
+  pName_
+  pAssessmentReportsDestination_
+  pScope_
+  pFrameworkId_ =
+    CreateAssessment'
+      { description = Prelude.Nothing,
+        tags = Prelude.Nothing,
+        name = pName_,
+        assessmentReportsDestination =
+          pAssessmentReportsDestination_,
+        scope = pScope_,
+        roles = Prelude.mempty,
+        frameworkId = pFrameworkId_
+      }
+
+-- | The optional description of the assessment to be created.
+createAssessment_description :: Lens.Lens' CreateAssessment (Prelude.Maybe Prelude.Text)
+createAssessment_description = Lens.lens (\CreateAssessment' {description} -> description) (\s@CreateAssessment' {} a -> s {description = a} :: CreateAssessment)
+
+-- | The tags that are associated with the assessment.
+createAssessment_tags :: Lens.Lens' CreateAssessment (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+createAssessment_tags = Lens.lens (\CreateAssessment' {tags} -> tags) (\s@CreateAssessment' {} a -> s {tags = a} :: CreateAssessment) Prelude.. Lens.mapping Lens.coerced
+
+-- | The name of the assessment to be created.
+createAssessment_name :: Lens.Lens' CreateAssessment Prelude.Text
+createAssessment_name = Lens.lens (\CreateAssessment' {name} -> name) (\s@CreateAssessment' {} a -> s {name = a} :: CreateAssessment)
+
+-- | The assessment report storage destination for the assessment that\'s
+-- being created.
+createAssessment_assessmentReportsDestination :: Lens.Lens' CreateAssessment AssessmentReportsDestination
+createAssessment_assessmentReportsDestination = Lens.lens (\CreateAssessment' {assessmentReportsDestination} -> assessmentReportsDestination) (\s@CreateAssessment' {} a -> s {assessmentReportsDestination = a} :: CreateAssessment)
+
+-- | Undocumented member.
+createAssessment_scope :: Lens.Lens' CreateAssessment Scope
+createAssessment_scope = Lens.lens (\CreateAssessment' {scope} -> scope) (\s@CreateAssessment' {} a -> s {scope = a} :: CreateAssessment)
+
+-- | The list of roles for the assessment.
+createAssessment_roles :: Lens.Lens' CreateAssessment [Role]
+createAssessment_roles = Lens.lens (\CreateAssessment' {roles} -> roles) (\s@CreateAssessment' {} a -> s {roles = a} :: CreateAssessment) Prelude.. Lens.coerced
+
+-- | The identifier for the framework that the assessment will be created
+-- from.
+createAssessment_frameworkId :: Lens.Lens' CreateAssessment Prelude.Text
+createAssessment_frameworkId = Lens.lens (\CreateAssessment' {frameworkId} -> frameworkId) (\s@CreateAssessment' {} a -> s {frameworkId = a} :: CreateAssessment)
+
+instance Core.AWSRequest CreateAssessment where
+  type
+    AWSResponse CreateAssessment =
+      CreateAssessmentResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateAssessmentResponse'
+            Prelude.<$> (x Data..?> "assessment")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateAssessment where
+  hashWithSalt _salt CreateAssessment' {..} =
+    _salt
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` assessmentReportsDestination
+      `Prelude.hashWithSalt` scope
+      `Prelude.hashWithSalt` roles
+      `Prelude.hashWithSalt` frameworkId
+
+instance Prelude.NFData CreateAssessment where
+  rnf CreateAssessment' {..} =
+    Prelude.rnf description
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf assessmentReportsDestination
+      `Prelude.seq` Prelude.rnf scope
+      `Prelude.seq` Prelude.rnf roles
+      `Prelude.seq` Prelude.rnf frameworkId
+
+instance Data.ToHeaders CreateAssessment where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateAssessment where
+  toJSON CreateAssessment' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("description" Data..=) Prelude.<$> description,
+            ("tags" Data..=) Prelude.<$> tags,
+            Prelude.Just ("name" Data..= name),
+            Prelude.Just
+              ( "assessmentReportsDestination"
+                  Data..= assessmentReportsDestination
+              ),
+            Prelude.Just ("scope" Data..= scope),
+            Prelude.Just ("roles" Data..= roles),
+            Prelude.Just ("frameworkId" Data..= frameworkId)
+          ]
+      )
+
+instance Data.ToPath CreateAssessment where
+  toPath = Prelude.const "/assessments"
+
+instance Data.ToQuery CreateAssessment where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateAssessmentResponse' smart constructor.
+data CreateAssessmentResponse = CreateAssessmentResponse'
+  { assessment :: Prelude.Maybe Assessment,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateAssessmentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessment', 'createAssessmentResponse_assessment' - Undocumented member.
+--
+-- 'httpStatus', 'createAssessmentResponse_httpStatus' - The response's http status code.
+newCreateAssessmentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateAssessmentResponse
+newCreateAssessmentResponse pHttpStatus_ =
+  CreateAssessmentResponse'
+    { assessment =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Undocumented member.
+createAssessmentResponse_assessment :: Lens.Lens' CreateAssessmentResponse (Prelude.Maybe Assessment)
+createAssessmentResponse_assessment = Lens.lens (\CreateAssessmentResponse' {assessment} -> assessment) (\s@CreateAssessmentResponse' {} a -> s {assessment = a} :: CreateAssessmentResponse)
+
+-- | The response's http status code.
+createAssessmentResponse_httpStatus :: Lens.Lens' CreateAssessmentResponse Prelude.Int
+createAssessmentResponse_httpStatus = Lens.lens (\CreateAssessmentResponse' {httpStatus} -> httpStatus) (\s@CreateAssessmentResponse' {} a -> s {httpStatus = a} :: CreateAssessmentResponse)
+
+instance Prelude.NFData CreateAssessmentResponse where
+  rnf CreateAssessmentResponse' {..} =
+    Prelude.rnf assessment
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/CreateAssessmentFramework.hs b/gen/Amazonka/AuditManager/CreateAssessmentFramework.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/CreateAssessmentFramework.hs
@@ -0,0 +1,234 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.CreateAssessmentFramework
+-- 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 custom framework in Audit Manager.
+module Amazonka.AuditManager.CreateAssessmentFramework
+  ( -- * Creating a Request
+    CreateAssessmentFramework (..),
+    newCreateAssessmentFramework,
+
+    -- * Request Lenses
+    createAssessmentFramework_complianceType,
+    createAssessmentFramework_description,
+    createAssessmentFramework_tags,
+    createAssessmentFramework_name,
+    createAssessmentFramework_controlSets,
+
+    -- * Destructuring the Response
+    CreateAssessmentFrameworkResponse (..),
+    newCreateAssessmentFrameworkResponse,
+
+    -- * Response Lenses
+    createAssessmentFrameworkResponse_framework,
+    createAssessmentFrameworkResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newCreateAssessmentFramework' smart constructor.
+data CreateAssessmentFramework = CreateAssessmentFramework'
+  { -- | The compliance type that the new custom framework supports, such as CIS
+    -- or HIPAA.
+    complianceType :: Prelude.Maybe Prelude.Text,
+    -- | An optional description for the new custom framework.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The tags that are associated with the framework.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | The name of the new custom framework.
+    name :: Prelude.Text,
+    -- | The control sets that are associated with the framework.
+    controlSets :: Prelude.NonEmpty CreateAssessmentFrameworkControlSet
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateAssessmentFramework' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'complianceType', 'createAssessmentFramework_complianceType' - The compliance type that the new custom framework supports, such as CIS
+-- or HIPAA.
+--
+-- 'description', 'createAssessmentFramework_description' - An optional description for the new custom framework.
+--
+-- 'tags', 'createAssessmentFramework_tags' - The tags that are associated with the framework.
+--
+-- 'name', 'createAssessmentFramework_name' - The name of the new custom framework.
+--
+-- 'controlSets', 'createAssessmentFramework_controlSets' - The control sets that are associated with the framework.
+newCreateAssessmentFramework ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'controlSets'
+  Prelude.NonEmpty CreateAssessmentFrameworkControlSet ->
+  CreateAssessmentFramework
+newCreateAssessmentFramework pName_ pControlSets_ =
+  CreateAssessmentFramework'
+    { complianceType =
+        Prelude.Nothing,
+      description = Prelude.Nothing,
+      tags = Prelude.Nothing,
+      name = pName_,
+      controlSets = Lens.coerced Lens.# pControlSets_
+    }
+
+-- | The compliance type that the new custom framework supports, such as CIS
+-- or HIPAA.
+createAssessmentFramework_complianceType :: Lens.Lens' CreateAssessmentFramework (Prelude.Maybe Prelude.Text)
+createAssessmentFramework_complianceType = Lens.lens (\CreateAssessmentFramework' {complianceType} -> complianceType) (\s@CreateAssessmentFramework' {} a -> s {complianceType = a} :: CreateAssessmentFramework)
+
+-- | An optional description for the new custom framework.
+createAssessmentFramework_description :: Lens.Lens' CreateAssessmentFramework (Prelude.Maybe Prelude.Text)
+createAssessmentFramework_description = Lens.lens (\CreateAssessmentFramework' {description} -> description) (\s@CreateAssessmentFramework' {} a -> s {description = a} :: CreateAssessmentFramework)
+
+-- | The tags that are associated with the framework.
+createAssessmentFramework_tags :: Lens.Lens' CreateAssessmentFramework (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+createAssessmentFramework_tags = Lens.lens (\CreateAssessmentFramework' {tags} -> tags) (\s@CreateAssessmentFramework' {} a -> s {tags = a} :: CreateAssessmentFramework) Prelude.. Lens.mapping Lens.coerced
+
+-- | The name of the new custom framework.
+createAssessmentFramework_name :: Lens.Lens' CreateAssessmentFramework Prelude.Text
+createAssessmentFramework_name = Lens.lens (\CreateAssessmentFramework' {name} -> name) (\s@CreateAssessmentFramework' {} a -> s {name = a} :: CreateAssessmentFramework)
+
+-- | The control sets that are associated with the framework.
+createAssessmentFramework_controlSets :: Lens.Lens' CreateAssessmentFramework (Prelude.NonEmpty CreateAssessmentFrameworkControlSet)
+createAssessmentFramework_controlSets = Lens.lens (\CreateAssessmentFramework' {controlSets} -> controlSets) (\s@CreateAssessmentFramework' {} a -> s {controlSets = a} :: CreateAssessmentFramework) Prelude.. Lens.coerced
+
+instance Core.AWSRequest CreateAssessmentFramework where
+  type
+    AWSResponse CreateAssessmentFramework =
+      CreateAssessmentFrameworkResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateAssessmentFrameworkResponse'
+            Prelude.<$> (x Data..?> "framework")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateAssessmentFramework where
+  hashWithSalt _salt CreateAssessmentFramework' {..} =
+    _salt
+      `Prelude.hashWithSalt` complianceType
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` controlSets
+
+instance Prelude.NFData CreateAssessmentFramework where
+  rnf CreateAssessmentFramework' {..} =
+    Prelude.rnf complianceType
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf controlSets
+
+instance Data.ToHeaders CreateAssessmentFramework where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateAssessmentFramework where
+  toJSON CreateAssessmentFramework' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("complianceType" Data..=)
+              Prelude.<$> complianceType,
+            ("description" Data..=) Prelude.<$> description,
+            ("tags" Data..=) Prelude.<$> tags,
+            Prelude.Just ("name" Data..= name),
+            Prelude.Just ("controlSets" Data..= controlSets)
+          ]
+      )
+
+instance Data.ToPath CreateAssessmentFramework where
+  toPath = Prelude.const "/assessmentFrameworks"
+
+instance Data.ToQuery CreateAssessmentFramework where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateAssessmentFrameworkResponse' smart constructor.
+data CreateAssessmentFrameworkResponse = CreateAssessmentFrameworkResponse'
+  { -- | The name of the new framework that the @CreateAssessmentFramework@ API
+    -- returned.
+    framework :: Prelude.Maybe Framework,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateAssessmentFrameworkResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'framework', 'createAssessmentFrameworkResponse_framework' - The name of the new framework that the @CreateAssessmentFramework@ API
+-- returned.
+--
+-- 'httpStatus', 'createAssessmentFrameworkResponse_httpStatus' - The response's http status code.
+newCreateAssessmentFrameworkResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateAssessmentFrameworkResponse
+newCreateAssessmentFrameworkResponse pHttpStatus_ =
+  CreateAssessmentFrameworkResponse'
+    { framework =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The name of the new framework that the @CreateAssessmentFramework@ API
+-- returned.
+createAssessmentFrameworkResponse_framework :: Lens.Lens' CreateAssessmentFrameworkResponse (Prelude.Maybe Framework)
+createAssessmentFrameworkResponse_framework = Lens.lens (\CreateAssessmentFrameworkResponse' {framework} -> framework) (\s@CreateAssessmentFrameworkResponse' {} a -> s {framework = a} :: CreateAssessmentFrameworkResponse)
+
+-- | The response's http status code.
+createAssessmentFrameworkResponse_httpStatus :: Lens.Lens' CreateAssessmentFrameworkResponse Prelude.Int
+createAssessmentFrameworkResponse_httpStatus = Lens.lens (\CreateAssessmentFrameworkResponse' {httpStatus} -> httpStatus) (\s@CreateAssessmentFrameworkResponse' {} a -> s {httpStatus = a} :: CreateAssessmentFrameworkResponse)
+
+instance
+  Prelude.NFData
+    CreateAssessmentFrameworkResponse
+  where
+  rnf CreateAssessmentFrameworkResponse' {..} =
+    Prelude.rnf framework
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/CreateAssessmentReport.hs b/gen/Amazonka/AuditManager/CreateAssessmentReport.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/CreateAssessmentReport.hs
@@ -0,0 +1,273 @@
+{-# 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.AuditManager.CreateAssessmentReport
+-- 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 assessment report for the specified assessment.
+module Amazonka.AuditManager.CreateAssessmentReport
+  ( -- * Creating a Request
+    CreateAssessmentReport (..),
+    newCreateAssessmentReport,
+
+    -- * Request Lenses
+    createAssessmentReport_description,
+    createAssessmentReport_queryStatement,
+    createAssessmentReport_name,
+    createAssessmentReport_assessmentId,
+
+    -- * Destructuring the Response
+    CreateAssessmentReportResponse (..),
+    newCreateAssessmentReportResponse,
+
+    -- * Response Lenses
+    createAssessmentReportResponse_assessmentReport,
+    createAssessmentReportResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newCreateAssessmentReport' smart constructor.
+data CreateAssessmentReport = CreateAssessmentReport'
+  { -- | The description of the assessment report.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | A SQL statement that represents an evidence finder query.
+    --
+    -- Provide this parameter when you want to generate an assessment report
+    -- from the results of an evidence finder search query. When you use this
+    -- parameter, Audit Manager generates a one-time report using only the
+    -- evidence from the query output. This report does not include any
+    -- assessment evidence that was manually
+    -- <https://docs.aws.amazon.com/audit-manager/latest/userguide/generate-assessment-report.html#generate-assessment-report-include-evidence added to a report using the console>,
+    -- or
+    -- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_BatchAssociateAssessmentReportEvidence.html associated with a report using the API>.
+    --
+    -- To use this parameter, the
+    -- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_EvidenceFinderEnablement.html#auditmanager-Type-EvidenceFinderEnablement-enablementStatus enablementStatus>
+    -- of evidence finder must be @ENABLED@.
+    --
+    -- For examples and help resolving @queryStatement@ validation exceptions,
+    -- see
+    -- <https://docs.aws.amazon.com/audit-manager/latest/userguide/evidence-finder-issues.html#querystatement-exceptions Troubleshooting evidence finder issues>
+    -- in the /Audit Manager User Guide./
+    queryStatement :: Prelude.Maybe Prelude.Text,
+    -- | The name of the new assessment report.
+    name :: Prelude.Text,
+    -- | The identifier for the assessment.
+    assessmentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateAssessmentReport' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'description', 'createAssessmentReport_description' - The description of the assessment report.
+--
+-- 'queryStatement', 'createAssessmentReport_queryStatement' - A SQL statement that represents an evidence finder query.
+--
+-- Provide this parameter when you want to generate an assessment report
+-- from the results of an evidence finder search query. When you use this
+-- parameter, Audit Manager generates a one-time report using only the
+-- evidence from the query output. This report does not include any
+-- assessment evidence that was manually
+-- <https://docs.aws.amazon.com/audit-manager/latest/userguide/generate-assessment-report.html#generate-assessment-report-include-evidence added to a report using the console>,
+-- or
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_BatchAssociateAssessmentReportEvidence.html associated with a report using the API>.
+--
+-- To use this parameter, the
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_EvidenceFinderEnablement.html#auditmanager-Type-EvidenceFinderEnablement-enablementStatus enablementStatus>
+-- of evidence finder must be @ENABLED@.
+--
+-- For examples and help resolving @queryStatement@ validation exceptions,
+-- see
+-- <https://docs.aws.amazon.com/audit-manager/latest/userguide/evidence-finder-issues.html#querystatement-exceptions Troubleshooting evidence finder issues>
+-- in the /Audit Manager User Guide./
+--
+-- 'name', 'createAssessmentReport_name' - The name of the new assessment report.
+--
+-- 'assessmentId', 'createAssessmentReport_assessmentId' - The identifier for the assessment.
+newCreateAssessmentReport ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'assessmentId'
+  Prelude.Text ->
+  CreateAssessmentReport
+newCreateAssessmentReport pName_ pAssessmentId_ =
+  CreateAssessmentReport'
+    { description =
+        Prelude.Nothing,
+      queryStatement = Prelude.Nothing,
+      name = pName_,
+      assessmentId = pAssessmentId_
+    }
+
+-- | The description of the assessment report.
+createAssessmentReport_description :: Lens.Lens' CreateAssessmentReport (Prelude.Maybe Prelude.Text)
+createAssessmentReport_description = Lens.lens (\CreateAssessmentReport' {description} -> description) (\s@CreateAssessmentReport' {} a -> s {description = a} :: CreateAssessmentReport)
+
+-- | A SQL statement that represents an evidence finder query.
+--
+-- Provide this parameter when you want to generate an assessment report
+-- from the results of an evidence finder search query. When you use this
+-- parameter, Audit Manager generates a one-time report using only the
+-- evidence from the query output. This report does not include any
+-- assessment evidence that was manually
+-- <https://docs.aws.amazon.com/audit-manager/latest/userguide/generate-assessment-report.html#generate-assessment-report-include-evidence added to a report using the console>,
+-- or
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_BatchAssociateAssessmentReportEvidence.html associated with a report using the API>.
+--
+-- To use this parameter, the
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_EvidenceFinderEnablement.html#auditmanager-Type-EvidenceFinderEnablement-enablementStatus enablementStatus>
+-- of evidence finder must be @ENABLED@.
+--
+-- For examples and help resolving @queryStatement@ validation exceptions,
+-- see
+-- <https://docs.aws.amazon.com/audit-manager/latest/userguide/evidence-finder-issues.html#querystatement-exceptions Troubleshooting evidence finder issues>
+-- in the /Audit Manager User Guide./
+createAssessmentReport_queryStatement :: Lens.Lens' CreateAssessmentReport (Prelude.Maybe Prelude.Text)
+createAssessmentReport_queryStatement = Lens.lens (\CreateAssessmentReport' {queryStatement} -> queryStatement) (\s@CreateAssessmentReport' {} a -> s {queryStatement = a} :: CreateAssessmentReport)
+
+-- | The name of the new assessment report.
+createAssessmentReport_name :: Lens.Lens' CreateAssessmentReport Prelude.Text
+createAssessmentReport_name = Lens.lens (\CreateAssessmentReport' {name} -> name) (\s@CreateAssessmentReport' {} a -> s {name = a} :: CreateAssessmentReport)
+
+-- | The identifier for the assessment.
+createAssessmentReport_assessmentId :: Lens.Lens' CreateAssessmentReport Prelude.Text
+createAssessmentReport_assessmentId = Lens.lens (\CreateAssessmentReport' {assessmentId} -> assessmentId) (\s@CreateAssessmentReport' {} a -> s {assessmentId = a} :: CreateAssessmentReport)
+
+instance Core.AWSRequest CreateAssessmentReport where
+  type
+    AWSResponse CreateAssessmentReport =
+      CreateAssessmentReportResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateAssessmentReportResponse'
+            Prelude.<$> (x Data..?> "assessmentReport")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateAssessmentReport where
+  hashWithSalt _salt CreateAssessmentReport' {..} =
+    _salt
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` queryStatement
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` assessmentId
+
+instance Prelude.NFData CreateAssessmentReport where
+  rnf CreateAssessmentReport' {..} =
+    Prelude.rnf description
+      `Prelude.seq` Prelude.rnf queryStatement
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf assessmentId
+
+instance Data.ToHeaders CreateAssessmentReport where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateAssessmentReport where
+  toJSON CreateAssessmentReport' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("description" Data..=) Prelude.<$> description,
+            ("queryStatement" Data..=)
+              Prelude.<$> queryStatement,
+            Prelude.Just ("name" Data..= name)
+          ]
+      )
+
+instance Data.ToPath CreateAssessmentReport where
+  toPath CreateAssessmentReport' {..} =
+    Prelude.mconcat
+      ["/assessments/", Data.toBS assessmentId, "/reports"]
+
+instance Data.ToQuery CreateAssessmentReport where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateAssessmentReportResponse' smart constructor.
+data CreateAssessmentReportResponse = CreateAssessmentReportResponse'
+  { -- | The new assessment report that the @CreateAssessmentReport@ API
+    -- returned.
+    assessmentReport :: Prelude.Maybe AssessmentReport,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateAssessmentReportResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentReport', 'createAssessmentReportResponse_assessmentReport' - The new assessment report that the @CreateAssessmentReport@ API
+-- returned.
+--
+-- 'httpStatus', 'createAssessmentReportResponse_httpStatus' - The response's http status code.
+newCreateAssessmentReportResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateAssessmentReportResponse
+newCreateAssessmentReportResponse pHttpStatus_ =
+  CreateAssessmentReportResponse'
+    { assessmentReport =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The new assessment report that the @CreateAssessmentReport@ API
+-- returned.
+createAssessmentReportResponse_assessmentReport :: Lens.Lens' CreateAssessmentReportResponse (Prelude.Maybe AssessmentReport)
+createAssessmentReportResponse_assessmentReport = Lens.lens (\CreateAssessmentReportResponse' {assessmentReport} -> assessmentReport) (\s@CreateAssessmentReportResponse' {} a -> s {assessmentReport = a} :: CreateAssessmentReportResponse)
+
+-- | The response's http status code.
+createAssessmentReportResponse_httpStatus :: Lens.Lens' CreateAssessmentReportResponse Prelude.Int
+createAssessmentReportResponse_httpStatus = Lens.lens (\CreateAssessmentReportResponse' {httpStatus} -> httpStatus) (\s@CreateAssessmentReportResponse' {} a -> s {httpStatus = a} :: CreateAssessmentReportResponse)
+
+instance
+  Prelude.NFData
+    CreateAssessmentReportResponse
+  where
+  rnf CreateAssessmentReportResponse' {..} =
+    Prelude.rnf assessmentReport
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/CreateControl.hs b/gen/Amazonka/AuditManager/CreateControl.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/CreateControl.hs
@@ -0,0 +1,256 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.CreateControl
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new custom control in Audit Manager.
+module Amazonka.AuditManager.CreateControl
+  ( -- * Creating a Request
+    CreateControl (..),
+    newCreateControl,
+
+    -- * Request Lenses
+    createControl_actionPlanInstructions,
+    createControl_actionPlanTitle,
+    createControl_description,
+    createControl_tags,
+    createControl_testingInformation,
+    createControl_name,
+    createControl_controlMappingSources,
+
+    -- * Destructuring the Response
+    CreateControlResponse (..),
+    newCreateControlResponse,
+
+    -- * Response Lenses
+    createControlResponse_control,
+    createControlResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newCreateControl' smart constructor.
+data CreateControl = CreateControl'
+  { -- | The recommended actions to carry out if the control isn\'t fulfilled.
+    actionPlanInstructions :: Prelude.Maybe Prelude.Text,
+    -- | The title of the action plan for remediating the control.
+    actionPlanTitle :: Prelude.Maybe Prelude.Text,
+    -- | The description of the control.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The tags that are associated with the control.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | The steps to follow to determine if the control is satisfied.
+    testingInformation :: Prelude.Maybe Prelude.Text,
+    -- | The name of the control.
+    name :: Prelude.Text,
+    -- | The data mapping sources for the control.
+    controlMappingSources :: Prelude.NonEmpty CreateControlMappingSource
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateControl' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'actionPlanInstructions', 'createControl_actionPlanInstructions' - The recommended actions to carry out if the control isn\'t fulfilled.
+--
+-- 'actionPlanTitle', 'createControl_actionPlanTitle' - The title of the action plan for remediating the control.
+--
+-- 'description', 'createControl_description' - The description of the control.
+--
+-- 'tags', 'createControl_tags' - The tags that are associated with the control.
+--
+-- 'testingInformation', 'createControl_testingInformation' - The steps to follow to determine if the control is satisfied.
+--
+-- 'name', 'createControl_name' - The name of the control.
+--
+-- 'controlMappingSources', 'createControl_controlMappingSources' - The data mapping sources for the control.
+newCreateControl ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'controlMappingSources'
+  Prelude.NonEmpty CreateControlMappingSource ->
+  CreateControl
+newCreateControl pName_ pControlMappingSources_ =
+  CreateControl'
+    { actionPlanInstructions =
+        Prelude.Nothing,
+      actionPlanTitle = Prelude.Nothing,
+      description = Prelude.Nothing,
+      tags = Prelude.Nothing,
+      testingInformation = Prelude.Nothing,
+      name = pName_,
+      controlMappingSources =
+        Lens.coerced Lens.# pControlMappingSources_
+    }
+
+-- | The recommended actions to carry out if the control isn\'t fulfilled.
+createControl_actionPlanInstructions :: Lens.Lens' CreateControl (Prelude.Maybe Prelude.Text)
+createControl_actionPlanInstructions = Lens.lens (\CreateControl' {actionPlanInstructions} -> actionPlanInstructions) (\s@CreateControl' {} a -> s {actionPlanInstructions = a} :: CreateControl)
+
+-- | The title of the action plan for remediating the control.
+createControl_actionPlanTitle :: Lens.Lens' CreateControl (Prelude.Maybe Prelude.Text)
+createControl_actionPlanTitle = Lens.lens (\CreateControl' {actionPlanTitle} -> actionPlanTitle) (\s@CreateControl' {} a -> s {actionPlanTitle = a} :: CreateControl)
+
+-- | The description of the control.
+createControl_description :: Lens.Lens' CreateControl (Prelude.Maybe Prelude.Text)
+createControl_description = Lens.lens (\CreateControl' {description} -> description) (\s@CreateControl' {} a -> s {description = a} :: CreateControl)
+
+-- | The tags that are associated with the control.
+createControl_tags :: Lens.Lens' CreateControl (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+createControl_tags = Lens.lens (\CreateControl' {tags} -> tags) (\s@CreateControl' {} a -> s {tags = a} :: CreateControl) Prelude.. Lens.mapping Lens.coerced
+
+-- | The steps to follow to determine if the control is satisfied.
+createControl_testingInformation :: Lens.Lens' CreateControl (Prelude.Maybe Prelude.Text)
+createControl_testingInformation = Lens.lens (\CreateControl' {testingInformation} -> testingInformation) (\s@CreateControl' {} a -> s {testingInformation = a} :: CreateControl)
+
+-- | The name of the control.
+createControl_name :: Lens.Lens' CreateControl Prelude.Text
+createControl_name = Lens.lens (\CreateControl' {name} -> name) (\s@CreateControl' {} a -> s {name = a} :: CreateControl)
+
+-- | The data mapping sources for the control.
+createControl_controlMappingSources :: Lens.Lens' CreateControl (Prelude.NonEmpty CreateControlMappingSource)
+createControl_controlMappingSources = Lens.lens (\CreateControl' {controlMappingSources} -> controlMappingSources) (\s@CreateControl' {} a -> s {controlMappingSources = a} :: CreateControl) Prelude.. Lens.coerced
+
+instance Core.AWSRequest CreateControl where
+  type
+    AWSResponse CreateControl =
+      CreateControlResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateControlResponse'
+            Prelude.<$> (x Data..?> "control")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateControl where
+  hashWithSalt _salt CreateControl' {..} =
+    _salt
+      `Prelude.hashWithSalt` actionPlanInstructions
+      `Prelude.hashWithSalt` actionPlanTitle
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` testingInformation
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` controlMappingSources
+
+instance Prelude.NFData CreateControl where
+  rnf CreateControl' {..} =
+    Prelude.rnf actionPlanInstructions
+      `Prelude.seq` Prelude.rnf actionPlanTitle
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf testingInformation
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf controlMappingSources
+
+instance Data.ToHeaders CreateControl where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateControl where
+  toJSON CreateControl' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("actionPlanInstructions" Data..=)
+              Prelude.<$> actionPlanInstructions,
+            ("actionPlanTitle" Data..=)
+              Prelude.<$> actionPlanTitle,
+            ("description" Data..=) Prelude.<$> description,
+            ("tags" Data..=) Prelude.<$> tags,
+            ("testingInformation" Data..=)
+              Prelude.<$> testingInformation,
+            Prelude.Just ("name" Data..= name),
+            Prelude.Just
+              ( "controlMappingSources"
+                  Data..= controlMappingSources
+              )
+          ]
+      )
+
+instance Data.ToPath CreateControl where
+  toPath = Prelude.const "/controls"
+
+instance Data.ToQuery CreateControl where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateControlResponse' smart constructor.
+data CreateControlResponse = CreateControlResponse'
+  { -- | The new control that the @CreateControl@ API returned.
+    control :: Prelude.Maybe Control,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateControlResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'control', 'createControlResponse_control' - The new control that the @CreateControl@ API returned.
+--
+-- 'httpStatus', 'createControlResponse_httpStatus' - The response's http status code.
+newCreateControlResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateControlResponse
+newCreateControlResponse pHttpStatus_ =
+  CreateControlResponse'
+    { control = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The new control that the @CreateControl@ API returned.
+createControlResponse_control :: Lens.Lens' CreateControlResponse (Prelude.Maybe Control)
+createControlResponse_control = Lens.lens (\CreateControlResponse' {control} -> control) (\s@CreateControlResponse' {} a -> s {control = a} :: CreateControlResponse)
+
+-- | The response's http status code.
+createControlResponse_httpStatus :: Lens.Lens' CreateControlResponse Prelude.Int
+createControlResponse_httpStatus = Lens.lens (\CreateControlResponse' {httpStatus} -> httpStatus) (\s@CreateControlResponse' {} a -> s {httpStatus = a} :: CreateControlResponse)
+
+instance Prelude.NFData CreateControlResponse where
+  rnf CreateControlResponse' {..} =
+    Prelude.rnf control
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/DeleteAssessment.hs b/gen/Amazonka/AuditManager/DeleteAssessment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/DeleteAssessment.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.DeleteAssessment
+-- 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 assessment in Audit Manager.
+module Amazonka.AuditManager.DeleteAssessment
+  ( -- * Creating a Request
+    DeleteAssessment (..),
+    newDeleteAssessment,
+
+    -- * Request Lenses
+    deleteAssessment_assessmentId,
+
+    -- * Destructuring the Response
+    DeleteAssessmentResponse (..),
+    newDeleteAssessmentResponse,
+
+    -- * Response Lenses
+    deleteAssessmentResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newDeleteAssessment' smart constructor.
+data DeleteAssessment = DeleteAssessment'
+  { -- | The identifier for the assessment.
+    assessmentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteAssessment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'deleteAssessment_assessmentId' - The identifier for the assessment.
+newDeleteAssessment ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  DeleteAssessment
+newDeleteAssessment pAssessmentId_ =
+  DeleteAssessment' {assessmentId = pAssessmentId_}
+
+-- | The identifier for the assessment.
+deleteAssessment_assessmentId :: Lens.Lens' DeleteAssessment Prelude.Text
+deleteAssessment_assessmentId = Lens.lens (\DeleteAssessment' {assessmentId} -> assessmentId) (\s@DeleteAssessment' {} a -> s {assessmentId = a} :: DeleteAssessment)
+
+instance Core.AWSRequest DeleteAssessment where
+  type
+    AWSResponse DeleteAssessment =
+      DeleteAssessmentResponse
+  request overrides =
+    Request.delete (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DeleteAssessmentResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteAssessment where
+  hashWithSalt _salt DeleteAssessment' {..} =
+    _salt `Prelude.hashWithSalt` assessmentId
+
+instance Prelude.NFData DeleteAssessment where
+  rnf DeleteAssessment' {..} = Prelude.rnf assessmentId
+
+instance Data.ToHeaders DeleteAssessment where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DeleteAssessment where
+  toPath DeleteAssessment' {..} =
+    Prelude.mconcat
+      ["/assessments/", Data.toBS assessmentId]
+
+instance Data.ToQuery DeleteAssessment where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteAssessmentResponse' smart constructor.
+data DeleteAssessmentResponse = DeleteAssessmentResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteAssessmentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteAssessmentResponse_httpStatus' - The response's http status code.
+newDeleteAssessmentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteAssessmentResponse
+newDeleteAssessmentResponse pHttpStatus_ =
+  DeleteAssessmentResponse'
+    { httpStatus =
+        pHttpStatus_
+    }
+
+-- | The response's http status code.
+deleteAssessmentResponse_httpStatus :: Lens.Lens' DeleteAssessmentResponse Prelude.Int
+deleteAssessmentResponse_httpStatus = Lens.lens (\DeleteAssessmentResponse' {httpStatus} -> httpStatus) (\s@DeleteAssessmentResponse' {} a -> s {httpStatus = a} :: DeleteAssessmentResponse)
+
+instance Prelude.NFData DeleteAssessmentResponse where
+  rnf DeleteAssessmentResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/DeleteAssessmentFramework.hs b/gen/Amazonka/AuditManager/DeleteAssessmentFramework.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/DeleteAssessmentFramework.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.DeleteAssessmentFramework
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a custom framework in Audit Manager.
+module Amazonka.AuditManager.DeleteAssessmentFramework
+  ( -- * Creating a Request
+    DeleteAssessmentFramework (..),
+    newDeleteAssessmentFramework,
+
+    -- * Request Lenses
+    deleteAssessmentFramework_frameworkId,
+
+    -- * Destructuring the Response
+    DeleteAssessmentFrameworkResponse (..),
+    newDeleteAssessmentFrameworkResponse,
+
+    -- * Response Lenses
+    deleteAssessmentFrameworkResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newDeleteAssessmentFramework' smart constructor.
+data DeleteAssessmentFramework = DeleteAssessmentFramework'
+  { -- | The identifier for the custom framework.
+    frameworkId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteAssessmentFramework' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'frameworkId', 'deleteAssessmentFramework_frameworkId' - The identifier for the custom framework.
+newDeleteAssessmentFramework ::
+  -- | 'frameworkId'
+  Prelude.Text ->
+  DeleteAssessmentFramework
+newDeleteAssessmentFramework pFrameworkId_ =
+  DeleteAssessmentFramework'
+    { frameworkId =
+        pFrameworkId_
+    }
+
+-- | The identifier for the custom framework.
+deleteAssessmentFramework_frameworkId :: Lens.Lens' DeleteAssessmentFramework Prelude.Text
+deleteAssessmentFramework_frameworkId = Lens.lens (\DeleteAssessmentFramework' {frameworkId} -> frameworkId) (\s@DeleteAssessmentFramework' {} a -> s {frameworkId = a} :: DeleteAssessmentFramework)
+
+instance Core.AWSRequest DeleteAssessmentFramework where
+  type
+    AWSResponse DeleteAssessmentFramework =
+      DeleteAssessmentFrameworkResponse
+  request overrides =
+    Request.delete (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DeleteAssessmentFrameworkResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteAssessmentFramework where
+  hashWithSalt _salt DeleteAssessmentFramework' {..} =
+    _salt `Prelude.hashWithSalt` frameworkId
+
+instance Prelude.NFData DeleteAssessmentFramework where
+  rnf DeleteAssessmentFramework' {..} =
+    Prelude.rnf frameworkId
+
+instance Data.ToHeaders DeleteAssessmentFramework where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DeleteAssessmentFramework where
+  toPath DeleteAssessmentFramework' {..} =
+    Prelude.mconcat
+      ["/assessmentFrameworks/", Data.toBS frameworkId]
+
+instance Data.ToQuery DeleteAssessmentFramework where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteAssessmentFrameworkResponse' smart constructor.
+data DeleteAssessmentFrameworkResponse = DeleteAssessmentFrameworkResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteAssessmentFrameworkResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteAssessmentFrameworkResponse_httpStatus' - The response's http status code.
+newDeleteAssessmentFrameworkResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteAssessmentFrameworkResponse
+newDeleteAssessmentFrameworkResponse pHttpStatus_ =
+  DeleteAssessmentFrameworkResponse'
+    { httpStatus =
+        pHttpStatus_
+    }
+
+-- | The response's http status code.
+deleteAssessmentFrameworkResponse_httpStatus :: Lens.Lens' DeleteAssessmentFrameworkResponse Prelude.Int
+deleteAssessmentFrameworkResponse_httpStatus = Lens.lens (\DeleteAssessmentFrameworkResponse' {httpStatus} -> httpStatus) (\s@DeleteAssessmentFrameworkResponse' {} a -> s {httpStatus = a} :: DeleteAssessmentFrameworkResponse)
+
+instance
+  Prelude.NFData
+    DeleteAssessmentFrameworkResponse
+  where
+  rnf DeleteAssessmentFrameworkResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/DeleteAssessmentFrameworkShare.hs b/gen/Amazonka/AuditManager/DeleteAssessmentFrameworkShare.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/DeleteAssessmentFrameworkShare.hs
@@ -0,0 +1,192 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.DeleteAssessmentFrameworkShare
+-- 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 share request for a custom framework in Audit Manager.
+module Amazonka.AuditManager.DeleteAssessmentFrameworkShare
+  ( -- * Creating a Request
+    DeleteAssessmentFrameworkShare (..),
+    newDeleteAssessmentFrameworkShare,
+
+    -- * Request Lenses
+    deleteAssessmentFrameworkShare_requestId,
+    deleteAssessmentFrameworkShare_requestType,
+
+    -- * Destructuring the Response
+    DeleteAssessmentFrameworkShareResponse (..),
+    newDeleteAssessmentFrameworkShareResponse,
+
+    -- * Response Lenses
+    deleteAssessmentFrameworkShareResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newDeleteAssessmentFrameworkShare' smart constructor.
+data DeleteAssessmentFrameworkShare = DeleteAssessmentFrameworkShare'
+  { -- | The unique identifier for the share request to be deleted.
+    requestId :: Prelude.Text,
+    -- | Specifies whether the share request is a sent request or a received
+    -- request.
+    requestType :: ShareRequestType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteAssessmentFrameworkShare' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'requestId', 'deleteAssessmentFrameworkShare_requestId' - The unique identifier for the share request to be deleted.
+--
+-- 'requestType', 'deleteAssessmentFrameworkShare_requestType' - Specifies whether the share request is a sent request or a received
+-- request.
+newDeleteAssessmentFrameworkShare ::
+  -- | 'requestId'
+  Prelude.Text ->
+  -- | 'requestType'
+  ShareRequestType ->
+  DeleteAssessmentFrameworkShare
+newDeleteAssessmentFrameworkShare
+  pRequestId_
+  pRequestType_ =
+    DeleteAssessmentFrameworkShare'
+      { requestId =
+          pRequestId_,
+        requestType = pRequestType_
+      }
+
+-- | The unique identifier for the share request to be deleted.
+deleteAssessmentFrameworkShare_requestId :: Lens.Lens' DeleteAssessmentFrameworkShare Prelude.Text
+deleteAssessmentFrameworkShare_requestId = Lens.lens (\DeleteAssessmentFrameworkShare' {requestId} -> requestId) (\s@DeleteAssessmentFrameworkShare' {} a -> s {requestId = a} :: DeleteAssessmentFrameworkShare)
+
+-- | Specifies whether the share request is a sent request or a received
+-- request.
+deleteAssessmentFrameworkShare_requestType :: Lens.Lens' DeleteAssessmentFrameworkShare ShareRequestType
+deleteAssessmentFrameworkShare_requestType = Lens.lens (\DeleteAssessmentFrameworkShare' {requestType} -> requestType) (\s@DeleteAssessmentFrameworkShare' {} a -> s {requestType = a} :: DeleteAssessmentFrameworkShare)
+
+instance
+  Core.AWSRequest
+    DeleteAssessmentFrameworkShare
+  where
+  type
+    AWSResponse DeleteAssessmentFrameworkShare =
+      DeleteAssessmentFrameworkShareResponse
+  request overrides =
+    Request.delete (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DeleteAssessmentFrameworkShareResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    DeleteAssessmentFrameworkShare
+  where
+  hashWithSalt
+    _salt
+    DeleteAssessmentFrameworkShare' {..} =
+      _salt
+        `Prelude.hashWithSalt` requestId
+        `Prelude.hashWithSalt` requestType
+
+instance
+  Prelude.NFData
+    DeleteAssessmentFrameworkShare
+  where
+  rnf DeleteAssessmentFrameworkShare' {..} =
+    Prelude.rnf requestId
+      `Prelude.seq` Prelude.rnf requestType
+
+instance
+  Data.ToHeaders
+    DeleteAssessmentFrameworkShare
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DeleteAssessmentFrameworkShare where
+  toPath DeleteAssessmentFrameworkShare' {..} =
+    Prelude.mconcat
+      [ "/assessmentFrameworkShareRequests/",
+        Data.toBS requestId
+      ]
+
+instance Data.ToQuery DeleteAssessmentFrameworkShare where
+  toQuery DeleteAssessmentFrameworkShare' {..} =
+    Prelude.mconcat ["requestType" Data.=: requestType]
+
+-- | /See:/ 'newDeleteAssessmentFrameworkShareResponse' smart constructor.
+data DeleteAssessmentFrameworkShareResponse = DeleteAssessmentFrameworkShareResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteAssessmentFrameworkShareResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteAssessmentFrameworkShareResponse_httpStatus' - The response's http status code.
+newDeleteAssessmentFrameworkShareResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteAssessmentFrameworkShareResponse
+newDeleteAssessmentFrameworkShareResponse
+  pHttpStatus_ =
+    DeleteAssessmentFrameworkShareResponse'
+      { httpStatus =
+          pHttpStatus_
+      }
+
+-- | The response's http status code.
+deleteAssessmentFrameworkShareResponse_httpStatus :: Lens.Lens' DeleteAssessmentFrameworkShareResponse Prelude.Int
+deleteAssessmentFrameworkShareResponse_httpStatus = Lens.lens (\DeleteAssessmentFrameworkShareResponse' {httpStatus} -> httpStatus) (\s@DeleteAssessmentFrameworkShareResponse' {} a -> s {httpStatus = a} :: DeleteAssessmentFrameworkShareResponse)
+
+instance
+  Prelude.NFData
+    DeleteAssessmentFrameworkShareResponse
+  where
+  rnf DeleteAssessmentFrameworkShareResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/DeleteAssessmentReport.hs b/gen/Amazonka/AuditManager/DeleteAssessmentReport.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/DeleteAssessmentReport.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.AuditManager.DeleteAssessmentReport
+-- 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 assessment report in Audit Manager.
+--
+-- When you run the @DeleteAssessmentReport@ operation, Audit Manager
+-- attempts to delete the following data:
+--
+-- 1.  The specified assessment report that’s stored in your S3 bucket
+--
+-- 2.  The associated metadata that’s stored in Audit Manager
+--
+-- If Audit Manager can’t access the assessment report in your S3 bucket,
+-- the report isn’t deleted. In this event, the @DeleteAssessmentReport@
+-- operation doesn’t fail. Instead, it proceeds to delete the associated
+-- metadata only. You must then delete the assessment report from the S3
+-- bucket yourself.
+--
+-- This scenario happens when Audit Manager receives a @403 (Forbidden)@ or
+-- @404 (Not Found)@ error from Amazon S3. To avoid this, make sure that
+-- your S3 bucket is available, and that you configured the correct
+-- permissions for Audit Manager to delete resources in your S3 bucket. For
+-- an example permissions policy that you can use, see
+-- <https://docs.aws.amazon.com/audit-manager/latest/userguide/security_iam_id-based-policy-examples.html#full-administrator-access-assessment-report-destination Assessment report destination permissions>
+-- in the /Audit Manager User Guide/. For information about the issues that
+-- could cause a @403 (Forbidden)@ or @404 (Not Found@) error from Amazon
+-- S3, see
+-- <https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList List of Error Codes>
+-- in the /Amazon Simple Storage Service API Reference/.
+module Amazonka.AuditManager.DeleteAssessmentReport
+  ( -- * Creating a Request
+    DeleteAssessmentReport (..),
+    newDeleteAssessmentReport,
+
+    -- * Request Lenses
+    deleteAssessmentReport_assessmentId,
+    deleteAssessmentReport_assessmentReportId,
+
+    -- * Destructuring the Response
+    DeleteAssessmentReportResponse (..),
+    newDeleteAssessmentReportResponse,
+
+    -- * Response Lenses
+    deleteAssessmentReportResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newDeleteAssessmentReport' smart constructor.
+data DeleteAssessmentReport = DeleteAssessmentReport'
+  { -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The unique identifier for the assessment report.
+    assessmentReportId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteAssessmentReport' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'deleteAssessmentReport_assessmentId' - The unique identifier for the assessment.
+--
+-- 'assessmentReportId', 'deleteAssessmentReport_assessmentReportId' - The unique identifier for the assessment report.
+newDeleteAssessmentReport ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'assessmentReportId'
+  Prelude.Text ->
+  DeleteAssessmentReport
+newDeleteAssessmentReport
+  pAssessmentId_
+  pAssessmentReportId_ =
+    DeleteAssessmentReport'
+      { assessmentId =
+          pAssessmentId_,
+        assessmentReportId = pAssessmentReportId_
+      }
+
+-- | The unique identifier for the assessment.
+deleteAssessmentReport_assessmentId :: Lens.Lens' DeleteAssessmentReport Prelude.Text
+deleteAssessmentReport_assessmentId = Lens.lens (\DeleteAssessmentReport' {assessmentId} -> assessmentId) (\s@DeleteAssessmentReport' {} a -> s {assessmentId = a} :: DeleteAssessmentReport)
+
+-- | The unique identifier for the assessment report.
+deleteAssessmentReport_assessmentReportId :: Lens.Lens' DeleteAssessmentReport Prelude.Text
+deleteAssessmentReport_assessmentReportId = Lens.lens (\DeleteAssessmentReport' {assessmentReportId} -> assessmentReportId) (\s@DeleteAssessmentReport' {} a -> s {assessmentReportId = a} :: DeleteAssessmentReport)
+
+instance Core.AWSRequest DeleteAssessmentReport where
+  type
+    AWSResponse DeleteAssessmentReport =
+      DeleteAssessmentReportResponse
+  request overrides =
+    Request.delete (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DeleteAssessmentReportResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteAssessmentReport where
+  hashWithSalt _salt DeleteAssessmentReport' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` assessmentReportId
+
+instance Prelude.NFData DeleteAssessmentReport where
+  rnf DeleteAssessmentReport' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf assessmentReportId
+
+instance Data.ToHeaders DeleteAssessmentReport where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DeleteAssessmentReport where
+  toPath DeleteAssessmentReport' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/reports/",
+        Data.toBS assessmentReportId
+      ]
+
+instance Data.ToQuery DeleteAssessmentReport where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteAssessmentReportResponse' smart constructor.
+data DeleteAssessmentReportResponse = DeleteAssessmentReportResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteAssessmentReportResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteAssessmentReportResponse_httpStatus' - The response's http status code.
+newDeleteAssessmentReportResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteAssessmentReportResponse
+newDeleteAssessmentReportResponse pHttpStatus_ =
+  DeleteAssessmentReportResponse'
+    { httpStatus =
+        pHttpStatus_
+    }
+
+-- | The response's http status code.
+deleteAssessmentReportResponse_httpStatus :: Lens.Lens' DeleteAssessmentReportResponse Prelude.Int
+deleteAssessmentReportResponse_httpStatus = Lens.lens (\DeleteAssessmentReportResponse' {httpStatus} -> httpStatus) (\s@DeleteAssessmentReportResponse' {} a -> s {httpStatus = a} :: DeleteAssessmentReportResponse)
+
+instance
+  Prelude.NFData
+    DeleteAssessmentReportResponse
+  where
+  rnf DeleteAssessmentReportResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/DeleteControl.hs b/gen/Amazonka/AuditManager/DeleteControl.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/DeleteControl.hs
@@ -0,0 +1,143 @@
+{-# 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.AuditManager.DeleteControl
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a custom control in Audit Manager.
+module Amazonka.AuditManager.DeleteControl
+  ( -- * Creating a Request
+    DeleteControl (..),
+    newDeleteControl,
+
+    -- * Request Lenses
+    deleteControl_controlId,
+
+    -- * Destructuring the Response
+    DeleteControlResponse (..),
+    newDeleteControlResponse,
+
+    -- * Response Lenses
+    deleteControlResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newDeleteControl' smart constructor.
+data DeleteControl = DeleteControl'
+  { -- | The unique identifier for the control.
+    controlId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteControl' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controlId', 'deleteControl_controlId' - The unique identifier for the control.
+newDeleteControl ::
+  -- | 'controlId'
+  Prelude.Text ->
+  DeleteControl
+newDeleteControl pControlId_ =
+  DeleteControl' {controlId = pControlId_}
+
+-- | The unique identifier for the control.
+deleteControl_controlId :: Lens.Lens' DeleteControl Prelude.Text
+deleteControl_controlId = Lens.lens (\DeleteControl' {controlId} -> controlId) (\s@DeleteControl' {} a -> s {controlId = a} :: DeleteControl)
+
+instance Core.AWSRequest DeleteControl where
+  type
+    AWSResponse DeleteControl =
+      DeleteControlResponse
+  request overrides =
+    Request.delete (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DeleteControlResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteControl where
+  hashWithSalt _salt DeleteControl' {..} =
+    _salt `Prelude.hashWithSalt` controlId
+
+instance Prelude.NFData DeleteControl where
+  rnf DeleteControl' {..} = Prelude.rnf controlId
+
+instance Data.ToHeaders DeleteControl where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DeleteControl where
+  toPath DeleteControl' {..} =
+    Prelude.mconcat ["/controls/", Data.toBS controlId]
+
+instance Data.ToQuery DeleteControl where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteControlResponse' smart constructor.
+data DeleteControlResponse = DeleteControlResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteControlResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteControlResponse_httpStatus' - The response's http status code.
+newDeleteControlResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteControlResponse
+newDeleteControlResponse pHttpStatus_ =
+  DeleteControlResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+deleteControlResponse_httpStatus :: Lens.Lens' DeleteControlResponse Prelude.Int
+deleteControlResponse_httpStatus = Lens.lens (\DeleteControlResponse' {httpStatus} -> httpStatus) (\s@DeleteControlResponse' {} a -> s {httpStatus = a} :: DeleteControlResponse)
+
+instance Prelude.NFData DeleteControlResponse where
+  rnf DeleteControlResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/DeregisterAccount.hs b/gen/Amazonka/AuditManager/DeregisterAccount.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/DeregisterAccount.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.DeregisterAccount
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deregisters an account in Audit Manager.
+--
+-- Before you deregister, you can use the
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_UpdateSettings.html UpdateSettings>
+-- API operation to set your preferred data retention policy. By default,
+-- Audit Manager retains your data. If you want to delete your data, you
+-- can use the @DeregistrationPolicy@ attribute to request the deletion of
+-- your data.
+--
+-- For more information about data retention, see
+-- <https://docs.aws.amazon.com/audit-manager/latest/userguide/data-protection.html Data Protection>
+-- in the /Audit Manager User Guide/.
+module Amazonka.AuditManager.DeregisterAccount
+  ( -- * Creating a Request
+    DeregisterAccount (..),
+    newDeregisterAccount,
+
+    -- * Destructuring the Response
+    DeregisterAccountResponse (..),
+    newDeregisterAccountResponse,
+
+    -- * Response Lenses
+    deregisterAccountResponse_status,
+    deregisterAccountResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newDeregisterAccount' smart constructor.
+data DeregisterAccount = DeregisterAccount'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeregisterAccount' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newDeregisterAccount ::
+  DeregisterAccount
+newDeregisterAccount = DeregisterAccount'
+
+instance Core.AWSRequest DeregisterAccount where
+  type
+    AWSResponse DeregisterAccount =
+      DeregisterAccountResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeregisterAccountResponse'
+            Prelude.<$> (x Data..?> "status")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeregisterAccount where
+  hashWithSalt _salt _ =
+    _salt `Prelude.hashWithSalt` ()
+
+instance Prelude.NFData DeregisterAccount where
+  rnf _ = ()
+
+instance Data.ToHeaders DeregisterAccount where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON DeregisterAccount where
+  toJSON = Prelude.const (Data.Object Prelude.mempty)
+
+instance Data.ToPath DeregisterAccount where
+  toPath = Prelude.const "/account/deregisterAccount"
+
+instance Data.ToQuery DeregisterAccount where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeregisterAccountResponse' smart constructor.
+data DeregisterAccountResponse = DeregisterAccountResponse'
+  { -- | The registration status of the account.
+    status :: Prelude.Maybe AccountStatus,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeregisterAccountResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'status', 'deregisterAccountResponse_status' - The registration status of the account.
+--
+-- 'httpStatus', 'deregisterAccountResponse_httpStatus' - The response's http status code.
+newDeregisterAccountResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeregisterAccountResponse
+newDeregisterAccountResponse pHttpStatus_ =
+  DeregisterAccountResponse'
+    { status =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The registration status of the account.
+deregisterAccountResponse_status :: Lens.Lens' DeregisterAccountResponse (Prelude.Maybe AccountStatus)
+deregisterAccountResponse_status = Lens.lens (\DeregisterAccountResponse' {status} -> status) (\s@DeregisterAccountResponse' {} a -> s {status = a} :: DeregisterAccountResponse)
+
+-- | The response's http status code.
+deregisterAccountResponse_httpStatus :: Lens.Lens' DeregisterAccountResponse Prelude.Int
+deregisterAccountResponse_httpStatus = Lens.lens (\DeregisterAccountResponse' {httpStatus} -> httpStatus) (\s@DeregisterAccountResponse' {} a -> s {httpStatus = a} :: DeregisterAccountResponse)
+
+instance Prelude.NFData DeregisterAccountResponse where
+  rnf DeregisterAccountResponse' {..} =
+    Prelude.rnf status
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/DeregisterOrganizationAdminAccount.hs b/gen/Amazonka/AuditManager/DeregisterOrganizationAdminAccount.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/DeregisterOrganizationAdminAccount.hs
@@ -0,0 +1,252 @@
+{-# 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.AuditManager.DeregisterOrganizationAdminAccount
+-- 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 specified Amazon Web Services account as a delegated
+-- administrator for Audit Manager.
+--
+-- When you remove a delegated administrator from your Audit Manager
+-- settings, you continue to have access to the evidence that you
+-- previously collected under that account. This is also the case when you
+-- deregister a delegated administrator from Organizations. However, Audit
+-- Manager stops collecting and attaching evidence to that delegated
+-- administrator account moving forward.
+--
+-- Keep in mind the following cleanup task if you use evidence finder:
+--
+-- Before you use your management account to remove a delegated
+-- administrator, make sure that the current delegated administrator
+-- account signs in to Audit Manager and disables evidence finder first.
+-- Disabling evidence finder automatically deletes the event data store
+-- that was created in their account when they enabled evidence finder. If
+-- this task isn’t completed, the event data store remains in their
+-- account. In this case, we recommend that the original delegated
+-- administrator goes to CloudTrail Lake and manually
+-- <https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-eds-disable-termination.html deletes the event data store>.
+--
+-- This cleanup task is necessary to ensure that you don\'t end up with
+-- multiple event data stores. Audit Manager ignores an unused event data
+-- store after you remove or change a delegated administrator account.
+-- However, the unused event data store continues to incur storage costs
+-- from CloudTrail Lake if you don\'t delete it.
+--
+-- When you deregister a delegated administrator account for Audit Manager,
+-- the data for that account isn’t deleted. If you want to delete resource
+-- data for a delegated administrator account, you must perform that task
+-- separately before you deregister the account. Either, you can do this in
+-- the Audit Manager console. Or, you can use one of the delete API
+-- operations that are provided by Audit Manager.
+--
+-- To delete your Audit Manager resource data, see the following
+-- instructions:
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessment.html DeleteAssessment>
+--     (see also:
+--     <https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-assessment.html Deleting an assessment>
+--     in the /Audit Manager User Guide/)
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFramework.html DeleteAssessmentFramework>
+--     (see also:
+--     <https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-custom-framework.html Deleting a custom framework>
+--     in the /Audit Manager User Guide/)
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFrameworkShare.html DeleteAssessmentFrameworkShare>
+--     (see also:
+--     <https://docs.aws.amazon.com/audit-manager/latest/userguide/deleting-shared-framework-requests.html Deleting a share request>
+--     in the /Audit Manager User Guide/)
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentReport.html DeleteAssessmentReport>
+--     (see also:
+--     <https://docs.aws.amazon.com/audit-manager/latest/userguide/generate-assessment-report.html#delete-assessment-report-steps Deleting an assessment report>
+--     in the /Audit Manager User Guide/)
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteControl.html DeleteControl>
+--     (see also:
+--     <https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-controls.html Deleting a custom control>
+--     in the /Audit Manager User Guide/)
+--
+-- At this time, Audit Manager doesn\'t provide an option to delete
+-- evidence for a specific delegated administrator. Instead, when your
+-- management account deregisters Audit Manager, we perform a cleanup for
+-- the current delegated administrator account at the time of
+-- deregistration.
+module Amazonka.AuditManager.DeregisterOrganizationAdminAccount
+  ( -- * Creating a Request
+    DeregisterOrganizationAdminAccount (..),
+    newDeregisterOrganizationAdminAccount,
+
+    -- * Request Lenses
+    deregisterOrganizationAdminAccount_adminAccountId,
+
+    -- * Destructuring the Response
+    DeregisterOrganizationAdminAccountResponse (..),
+    newDeregisterOrganizationAdminAccountResponse,
+
+    -- * Response Lenses
+    deregisterOrganizationAdminAccountResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newDeregisterOrganizationAdminAccount' smart constructor.
+data DeregisterOrganizationAdminAccount = DeregisterOrganizationAdminAccount'
+  { -- | The identifier for the administrator account.
+    adminAccountId :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeregisterOrganizationAdminAccount' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'adminAccountId', 'deregisterOrganizationAdminAccount_adminAccountId' - The identifier for the administrator account.
+newDeregisterOrganizationAdminAccount ::
+  DeregisterOrganizationAdminAccount
+newDeregisterOrganizationAdminAccount =
+  DeregisterOrganizationAdminAccount'
+    { adminAccountId =
+        Prelude.Nothing
+    }
+
+-- | The identifier for the administrator account.
+deregisterOrganizationAdminAccount_adminAccountId :: Lens.Lens' DeregisterOrganizationAdminAccount (Prelude.Maybe Prelude.Text)
+deregisterOrganizationAdminAccount_adminAccountId = Lens.lens (\DeregisterOrganizationAdminAccount' {adminAccountId} -> adminAccountId) (\s@DeregisterOrganizationAdminAccount' {} a -> s {adminAccountId = a} :: DeregisterOrganizationAdminAccount)
+
+instance
+  Core.AWSRequest
+    DeregisterOrganizationAdminAccount
+  where
+  type
+    AWSResponse DeregisterOrganizationAdminAccount =
+      DeregisterOrganizationAdminAccountResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DeregisterOrganizationAdminAccountResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    DeregisterOrganizationAdminAccount
+  where
+  hashWithSalt
+    _salt
+    DeregisterOrganizationAdminAccount' {..} =
+      _salt `Prelude.hashWithSalt` adminAccountId
+
+instance
+  Prelude.NFData
+    DeregisterOrganizationAdminAccount
+  where
+  rnf DeregisterOrganizationAdminAccount' {..} =
+    Prelude.rnf adminAccountId
+
+instance
+  Data.ToHeaders
+    DeregisterOrganizationAdminAccount
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    DeregisterOrganizationAdminAccount
+  where
+  toJSON DeregisterOrganizationAdminAccount' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("adminAccountId" Data..=)
+              Prelude.<$> adminAccountId
+          ]
+      )
+
+instance
+  Data.ToPath
+    DeregisterOrganizationAdminAccount
+  where
+  toPath =
+    Prelude.const
+      "/account/deregisterOrganizationAdminAccount"
+
+instance
+  Data.ToQuery
+    DeregisterOrganizationAdminAccount
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeregisterOrganizationAdminAccountResponse' smart constructor.
+data DeregisterOrganizationAdminAccountResponse = DeregisterOrganizationAdminAccountResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeregisterOrganizationAdminAccountResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deregisterOrganizationAdminAccountResponse_httpStatus' - The response's http status code.
+newDeregisterOrganizationAdminAccountResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeregisterOrganizationAdminAccountResponse
+newDeregisterOrganizationAdminAccountResponse
+  pHttpStatus_ =
+    DeregisterOrganizationAdminAccountResponse'
+      { httpStatus =
+          pHttpStatus_
+      }
+
+-- | The response's http status code.
+deregisterOrganizationAdminAccountResponse_httpStatus :: Lens.Lens' DeregisterOrganizationAdminAccountResponse Prelude.Int
+deregisterOrganizationAdminAccountResponse_httpStatus = Lens.lens (\DeregisterOrganizationAdminAccountResponse' {httpStatus} -> httpStatus) (\s@DeregisterOrganizationAdminAccountResponse' {} a -> s {httpStatus = a} :: DeregisterOrganizationAdminAccountResponse)
+
+instance
+  Prelude.NFData
+    DeregisterOrganizationAdminAccountResponse
+  where
+  rnf DeregisterOrganizationAdminAccountResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/DisassociateAssessmentReportEvidenceFolder.hs b/gen/Amazonka/AuditManager/DisassociateAssessmentReportEvidenceFolder.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/DisassociateAssessmentReportEvidenceFolder.hs
@@ -0,0 +1,213 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.DisassociateAssessmentReportEvidenceFolder
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Disassociates an evidence folder from the specified assessment report in
+-- Audit Manager.
+module Amazonka.AuditManager.DisassociateAssessmentReportEvidenceFolder
+  ( -- * Creating a Request
+    DisassociateAssessmentReportEvidenceFolder (..),
+    newDisassociateAssessmentReportEvidenceFolder,
+
+    -- * Request Lenses
+    disassociateAssessmentReportEvidenceFolder_assessmentId,
+    disassociateAssessmentReportEvidenceFolder_evidenceFolderId,
+
+    -- * Destructuring the Response
+    DisassociateAssessmentReportEvidenceFolderResponse (..),
+    newDisassociateAssessmentReportEvidenceFolderResponse,
+
+    -- * Response Lenses
+    disassociateAssessmentReportEvidenceFolderResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newDisassociateAssessmentReportEvidenceFolder' smart constructor.
+data DisassociateAssessmentReportEvidenceFolder = DisassociateAssessmentReportEvidenceFolder'
+  { -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The unique identifier for the folder that the evidence is stored in.
+    evidenceFolderId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DisassociateAssessmentReportEvidenceFolder' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'disassociateAssessmentReportEvidenceFolder_assessmentId' - The unique identifier for the assessment.
+--
+-- 'evidenceFolderId', 'disassociateAssessmentReportEvidenceFolder_evidenceFolderId' - The unique identifier for the folder that the evidence is stored in.
+newDisassociateAssessmentReportEvidenceFolder ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'evidenceFolderId'
+  Prelude.Text ->
+  DisassociateAssessmentReportEvidenceFolder
+newDisassociateAssessmentReportEvidenceFolder
+  pAssessmentId_
+  pEvidenceFolderId_ =
+    DisassociateAssessmentReportEvidenceFolder'
+      { assessmentId =
+          pAssessmentId_,
+        evidenceFolderId =
+          pEvidenceFolderId_
+      }
+
+-- | The unique identifier for the assessment.
+disassociateAssessmentReportEvidenceFolder_assessmentId :: Lens.Lens' DisassociateAssessmentReportEvidenceFolder Prelude.Text
+disassociateAssessmentReportEvidenceFolder_assessmentId = Lens.lens (\DisassociateAssessmentReportEvidenceFolder' {assessmentId} -> assessmentId) (\s@DisassociateAssessmentReportEvidenceFolder' {} a -> s {assessmentId = a} :: DisassociateAssessmentReportEvidenceFolder)
+
+-- | The unique identifier for the folder that the evidence is stored in.
+disassociateAssessmentReportEvidenceFolder_evidenceFolderId :: Lens.Lens' DisassociateAssessmentReportEvidenceFolder Prelude.Text
+disassociateAssessmentReportEvidenceFolder_evidenceFolderId = Lens.lens (\DisassociateAssessmentReportEvidenceFolder' {evidenceFolderId} -> evidenceFolderId) (\s@DisassociateAssessmentReportEvidenceFolder' {} a -> s {evidenceFolderId = a} :: DisassociateAssessmentReportEvidenceFolder)
+
+instance
+  Core.AWSRequest
+    DisassociateAssessmentReportEvidenceFolder
+  where
+  type
+    AWSResponse
+      DisassociateAssessmentReportEvidenceFolder =
+      DisassociateAssessmentReportEvidenceFolderResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DisassociateAssessmentReportEvidenceFolderResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    DisassociateAssessmentReportEvidenceFolder
+  where
+  hashWithSalt
+    _salt
+    DisassociateAssessmentReportEvidenceFolder' {..} =
+      _salt
+        `Prelude.hashWithSalt` assessmentId
+        `Prelude.hashWithSalt` evidenceFolderId
+
+instance
+  Prelude.NFData
+    DisassociateAssessmentReportEvidenceFolder
+  where
+  rnf DisassociateAssessmentReportEvidenceFolder' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf evidenceFolderId
+
+instance
+  Data.ToHeaders
+    DisassociateAssessmentReportEvidenceFolder
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    DisassociateAssessmentReportEvidenceFolder
+  where
+  toJSON
+    DisassociateAssessmentReportEvidenceFolder' {..} =
+      Data.object
+        ( Prelude.catMaybes
+            [ Prelude.Just
+                ("evidenceFolderId" Data..= evidenceFolderId)
+            ]
+        )
+
+instance
+  Data.ToPath
+    DisassociateAssessmentReportEvidenceFolder
+  where
+  toPath
+    DisassociateAssessmentReportEvidenceFolder' {..} =
+      Prelude.mconcat
+        [ "/assessments/",
+          Data.toBS assessmentId,
+          "/disassociateFromAssessmentReport"
+        ]
+
+instance
+  Data.ToQuery
+    DisassociateAssessmentReportEvidenceFolder
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDisassociateAssessmentReportEvidenceFolderResponse' smart constructor.
+data DisassociateAssessmentReportEvidenceFolderResponse = DisassociateAssessmentReportEvidenceFolderResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DisassociateAssessmentReportEvidenceFolderResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'disassociateAssessmentReportEvidenceFolderResponse_httpStatus' - The response's http status code.
+newDisassociateAssessmentReportEvidenceFolderResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DisassociateAssessmentReportEvidenceFolderResponse
+newDisassociateAssessmentReportEvidenceFolderResponse
+  pHttpStatus_ =
+    DisassociateAssessmentReportEvidenceFolderResponse'
+      { httpStatus =
+          pHttpStatus_
+      }
+
+-- | The response's http status code.
+disassociateAssessmentReportEvidenceFolderResponse_httpStatus :: Lens.Lens' DisassociateAssessmentReportEvidenceFolderResponse Prelude.Int
+disassociateAssessmentReportEvidenceFolderResponse_httpStatus = Lens.lens (\DisassociateAssessmentReportEvidenceFolderResponse' {httpStatus} -> httpStatus) (\s@DisassociateAssessmentReportEvidenceFolderResponse' {} a -> s {httpStatus = a} :: DisassociateAssessmentReportEvidenceFolderResponse)
+
+instance
+  Prelude.NFData
+    DisassociateAssessmentReportEvidenceFolderResponse
+  where
+  rnf
+    DisassociateAssessmentReportEvidenceFolderResponse' {..} =
+      Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetAccountStatus.hs b/gen/Amazonka/AuditManager/GetAccountStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetAccountStatus.hs
@@ -0,0 +1,140 @@
+{-# 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.AuditManager.GetAccountStatus
+-- 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 registration status of an account in Audit Manager.
+module Amazonka.AuditManager.GetAccountStatus
+  ( -- * Creating a Request
+    GetAccountStatus (..),
+    newGetAccountStatus,
+
+    -- * Destructuring the Response
+    GetAccountStatusResponse (..),
+    newGetAccountStatusResponse,
+
+    -- * Response Lenses
+    getAccountStatusResponse_status,
+    getAccountStatusResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetAccountStatus' smart constructor.
+data GetAccountStatus = GetAccountStatus'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetAccountStatus' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newGetAccountStatus ::
+  GetAccountStatus
+newGetAccountStatus = GetAccountStatus'
+
+instance Core.AWSRequest GetAccountStatus where
+  type
+    AWSResponse GetAccountStatus =
+      GetAccountStatusResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetAccountStatusResponse'
+            Prelude.<$> (x Data..?> "status")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetAccountStatus where
+  hashWithSalt _salt _ =
+    _salt `Prelude.hashWithSalt` ()
+
+instance Prelude.NFData GetAccountStatus where
+  rnf _ = ()
+
+instance Data.ToHeaders GetAccountStatus where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetAccountStatus where
+  toPath = Prelude.const "/account/status"
+
+instance Data.ToQuery GetAccountStatus where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetAccountStatusResponse' smart constructor.
+data GetAccountStatusResponse = GetAccountStatusResponse'
+  { -- | The status of the Amazon Web Services account.
+    status :: Prelude.Maybe AccountStatus,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetAccountStatusResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'status', 'getAccountStatusResponse_status' - The status of the Amazon Web Services account.
+--
+-- 'httpStatus', 'getAccountStatusResponse_httpStatus' - The response's http status code.
+newGetAccountStatusResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetAccountStatusResponse
+newGetAccountStatusResponse pHttpStatus_ =
+  GetAccountStatusResponse'
+    { status = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The status of the Amazon Web Services account.
+getAccountStatusResponse_status :: Lens.Lens' GetAccountStatusResponse (Prelude.Maybe AccountStatus)
+getAccountStatusResponse_status = Lens.lens (\GetAccountStatusResponse' {status} -> status) (\s@GetAccountStatusResponse' {} a -> s {status = a} :: GetAccountStatusResponse)
+
+-- | The response's http status code.
+getAccountStatusResponse_httpStatus :: Lens.Lens' GetAccountStatusResponse Prelude.Int
+getAccountStatusResponse_httpStatus = Lens.lens (\GetAccountStatusResponse' {httpStatus} -> httpStatus) (\s@GetAccountStatusResponse' {} a -> s {httpStatus = a} :: GetAccountStatusResponse)
+
+instance Prelude.NFData GetAccountStatusResponse where
+  rnf GetAccountStatusResponse' {..} =
+    Prelude.rnf status
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetAssessment.hs b/gen/Amazonka/AuditManager/GetAssessment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetAssessment.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.AuditManager.GetAssessment
+-- 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 an assessment from Audit Manager.
+module Amazonka.AuditManager.GetAssessment
+  ( -- * Creating a Request
+    GetAssessment (..),
+    newGetAssessment,
+
+    -- * Request Lenses
+    getAssessment_assessmentId,
+
+    -- * Destructuring the Response
+    GetAssessmentResponse (..),
+    newGetAssessmentResponse,
+
+    -- * Response Lenses
+    getAssessmentResponse_assessment,
+    getAssessmentResponse_userRole,
+    getAssessmentResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetAssessment' smart constructor.
+data GetAssessment = GetAssessment'
+  { -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetAssessment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'getAssessment_assessmentId' - The unique identifier for the assessment.
+newGetAssessment ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  GetAssessment
+newGetAssessment pAssessmentId_ =
+  GetAssessment' {assessmentId = pAssessmentId_}
+
+-- | The unique identifier for the assessment.
+getAssessment_assessmentId :: Lens.Lens' GetAssessment Prelude.Text
+getAssessment_assessmentId = Lens.lens (\GetAssessment' {assessmentId} -> assessmentId) (\s@GetAssessment' {} a -> s {assessmentId = a} :: GetAssessment)
+
+instance Core.AWSRequest GetAssessment where
+  type
+    AWSResponse GetAssessment =
+      GetAssessmentResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetAssessmentResponse'
+            Prelude.<$> (x Data..?> "assessment")
+            Prelude.<*> (x Data..?> "userRole")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetAssessment where
+  hashWithSalt _salt GetAssessment' {..} =
+    _salt `Prelude.hashWithSalt` assessmentId
+
+instance Prelude.NFData GetAssessment where
+  rnf GetAssessment' {..} = Prelude.rnf assessmentId
+
+instance Data.ToHeaders GetAssessment where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetAssessment where
+  toPath GetAssessment' {..} =
+    Prelude.mconcat
+      ["/assessments/", Data.toBS assessmentId]
+
+instance Data.ToQuery GetAssessment where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetAssessmentResponse' smart constructor.
+data GetAssessmentResponse = GetAssessmentResponse'
+  { assessment :: Prelude.Maybe Assessment,
+    userRole :: Prelude.Maybe Role,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetAssessmentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessment', 'getAssessmentResponse_assessment' - Undocumented member.
+--
+-- 'userRole', 'getAssessmentResponse_userRole' - Undocumented member.
+--
+-- 'httpStatus', 'getAssessmentResponse_httpStatus' - The response's http status code.
+newGetAssessmentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetAssessmentResponse
+newGetAssessmentResponse pHttpStatus_ =
+  GetAssessmentResponse'
+    { assessment =
+        Prelude.Nothing,
+      userRole = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Undocumented member.
+getAssessmentResponse_assessment :: Lens.Lens' GetAssessmentResponse (Prelude.Maybe Assessment)
+getAssessmentResponse_assessment = Lens.lens (\GetAssessmentResponse' {assessment} -> assessment) (\s@GetAssessmentResponse' {} a -> s {assessment = a} :: GetAssessmentResponse)
+
+-- | Undocumented member.
+getAssessmentResponse_userRole :: Lens.Lens' GetAssessmentResponse (Prelude.Maybe Role)
+getAssessmentResponse_userRole = Lens.lens (\GetAssessmentResponse' {userRole} -> userRole) (\s@GetAssessmentResponse' {} a -> s {userRole = a} :: GetAssessmentResponse)
+
+-- | The response's http status code.
+getAssessmentResponse_httpStatus :: Lens.Lens' GetAssessmentResponse Prelude.Int
+getAssessmentResponse_httpStatus = Lens.lens (\GetAssessmentResponse' {httpStatus} -> httpStatus) (\s@GetAssessmentResponse' {} a -> s {httpStatus = a} :: GetAssessmentResponse)
+
+instance Prelude.NFData GetAssessmentResponse where
+  rnf GetAssessmentResponse' {..} =
+    Prelude.rnf assessment
+      `Prelude.seq` Prelude.rnf userRole
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetAssessmentFramework.hs b/gen/Amazonka/AuditManager/GetAssessmentFramework.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetAssessmentFramework.hs
@@ -0,0 +1,166 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.GetAssessmentFramework
+-- 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 framework from Audit Manager.
+module Amazonka.AuditManager.GetAssessmentFramework
+  ( -- * Creating a Request
+    GetAssessmentFramework (..),
+    newGetAssessmentFramework,
+
+    -- * Request Lenses
+    getAssessmentFramework_frameworkId,
+
+    -- * Destructuring the Response
+    GetAssessmentFrameworkResponse (..),
+    newGetAssessmentFrameworkResponse,
+
+    -- * Response Lenses
+    getAssessmentFrameworkResponse_framework,
+    getAssessmentFrameworkResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetAssessmentFramework' smart constructor.
+data GetAssessmentFramework = GetAssessmentFramework'
+  { -- | The identifier for the framework.
+    frameworkId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetAssessmentFramework' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'frameworkId', 'getAssessmentFramework_frameworkId' - The identifier for the framework.
+newGetAssessmentFramework ::
+  -- | 'frameworkId'
+  Prelude.Text ->
+  GetAssessmentFramework
+newGetAssessmentFramework pFrameworkId_ =
+  GetAssessmentFramework'
+    { frameworkId =
+        pFrameworkId_
+    }
+
+-- | The identifier for the framework.
+getAssessmentFramework_frameworkId :: Lens.Lens' GetAssessmentFramework Prelude.Text
+getAssessmentFramework_frameworkId = Lens.lens (\GetAssessmentFramework' {frameworkId} -> frameworkId) (\s@GetAssessmentFramework' {} a -> s {frameworkId = a} :: GetAssessmentFramework)
+
+instance Core.AWSRequest GetAssessmentFramework where
+  type
+    AWSResponse GetAssessmentFramework =
+      GetAssessmentFrameworkResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetAssessmentFrameworkResponse'
+            Prelude.<$> (x Data..?> "framework")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetAssessmentFramework where
+  hashWithSalt _salt GetAssessmentFramework' {..} =
+    _salt `Prelude.hashWithSalt` frameworkId
+
+instance Prelude.NFData GetAssessmentFramework where
+  rnf GetAssessmentFramework' {..} =
+    Prelude.rnf frameworkId
+
+instance Data.ToHeaders GetAssessmentFramework where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetAssessmentFramework where
+  toPath GetAssessmentFramework' {..} =
+    Prelude.mconcat
+      ["/assessmentFrameworks/", Data.toBS frameworkId]
+
+instance Data.ToQuery GetAssessmentFramework where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetAssessmentFrameworkResponse' smart constructor.
+data GetAssessmentFrameworkResponse = GetAssessmentFrameworkResponse'
+  { -- | The framework that the @GetAssessmentFramework@ API returned.
+    framework :: Prelude.Maybe Framework,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetAssessmentFrameworkResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'framework', 'getAssessmentFrameworkResponse_framework' - The framework that the @GetAssessmentFramework@ API returned.
+--
+-- 'httpStatus', 'getAssessmentFrameworkResponse_httpStatus' - The response's http status code.
+newGetAssessmentFrameworkResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetAssessmentFrameworkResponse
+newGetAssessmentFrameworkResponse pHttpStatus_ =
+  GetAssessmentFrameworkResponse'
+    { framework =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The framework that the @GetAssessmentFramework@ API returned.
+getAssessmentFrameworkResponse_framework :: Lens.Lens' GetAssessmentFrameworkResponse (Prelude.Maybe Framework)
+getAssessmentFrameworkResponse_framework = Lens.lens (\GetAssessmentFrameworkResponse' {framework} -> framework) (\s@GetAssessmentFrameworkResponse' {} a -> s {framework = a} :: GetAssessmentFrameworkResponse)
+
+-- | The response's http status code.
+getAssessmentFrameworkResponse_httpStatus :: Lens.Lens' GetAssessmentFrameworkResponse Prelude.Int
+getAssessmentFrameworkResponse_httpStatus = Lens.lens (\GetAssessmentFrameworkResponse' {httpStatus} -> httpStatus) (\s@GetAssessmentFrameworkResponse' {} a -> s {httpStatus = a} :: GetAssessmentFrameworkResponse)
+
+instance
+  Prelude.NFData
+    GetAssessmentFrameworkResponse
+  where
+  rnf GetAssessmentFrameworkResponse' {..} =
+    Prelude.rnf framework
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetAssessmentReportUrl.hs b/gen/Amazonka/AuditManager/GetAssessmentReportUrl.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetAssessmentReportUrl.hs
@@ -0,0 +1,187 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.GetAssessmentReportUrl
+-- 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 URL of an assessment report in Audit Manager.
+module Amazonka.AuditManager.GetAssessmentReportUrl
+  ( -- * Creating a Request
+    GetAssessmentReportUrl (..),
+    newGetAssessmentReportUrl,
+
+    -- * Request Lenses
+    getAssessmentReportUrl_assessmentReportId,
+    getAssessmentReportUrl_assessmentId,
+
+    -- * Destructuring the Response
+    GetAssessmentReportUrlResponse (..),
+    newGetAssessmentReportUrlResponse,
+
+    -- * Response Lenses
+    getAssessmentReportUrlResponse_preSignedUrl,
+    getAssessmentReportUrlResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetAssessmentReportUrl' smart constructor.
+data GetAssessmentReportUrl = GetAssessmentReportUrl'
+  { -- | The unique identifier for the assessment report.
+    assessmentReportId :: Prelude.Text,
+    -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetAssessmentReportUrl' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentReportId', 'getAssessmentReportUrl_assessmentReportId' - The unique identifier for the assessment report.
+--
+-- 'assessmentId', 'getAssessmentReportUrl_assessmentId' - The unique identifier for the assessment.
+newGetAssessmentReportUrl ::
+  -- | 'assessmentReportId'
+  Prelude.Text ->
+  -- | 'assessmentId'
+  Prelude.Text ->
+  GetAssessmentReportUrl
+newGetAssessmentReportUrl
+  pAssessmentReportId_
+  pAssessmentId_ =
+    GetAssessmentReportUrl'
+      { assessmentReportId =
+          pAssessmentReportId_,
+        assessmentId = pAssessmentId_
+      }
+
+-- | The unique identifier for the assessment report.
+getAssessmentReportUrl_assessmentReportId :: Lens.Lens' GetAssessmentReportUrl Prelude.Text
+getAssessmentReportUrl_assessmentReportId = Lens.lens (\GetAssessmentReportUrl' {assessmentReportId} -> assessmentReportId) (\s@GetAssessmentReportUrl' {} a -> s {assessmentReportId = a} :: GetAssessmentReportUrl)
+
+-- | The unique identifier for the assessment.
+getAssessmentReportUrl_assessmentId :: Lens.Lens' GetAssessmentReportUrl Prelude.Text
+getAssessmentReportUrl_assessmentId = Lens.lens (\GetAssessmentReportUrl' {assessmentId} -> assessmentId) (\s@GetAssessmentReportUrl' {} a -> s {assessmentId = a} :: GetAssessmentReportUrl)
+
+instance Core.AWSRequest GetAssessmentReportUrl where
+  type
+    AWSResponse GetAssessmentReportUrl =
+      GetAssessmentReportUrlResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetAssessmentReportUrlResponse'
+            Prelude.<$> (x Data..?> "preSignedUrl")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetAssessmentReportUrl where
+  hashWithSalt _salt GetAssessmentReportUrl' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentReportId
+      `Prelude.hashWithSalt` assessmentId
+
+instance Prelude.NFData GetAssessmentReportUrl where
+  rnf GetAssessmentReportUrl' {..} =
+    Prelude.rnf assessmentReportId
+      `Prelude.seq` Prelude.rnf assessmentId
+
+instance Data.ToHeaders GetAssessmentReportUrl where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetAssessmentReportUrl where
+  toPath GetAssessmentReportUrl' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/reports/",
+        Data.toBS assessmentReportId,
+        "/url"
+      ]
+
+instance Data.ToQuery GetAssessmentReportUrl where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetAssessmentReportUrlResponse' smart constructor.
+data GetAssessmentReportUrlResponse = GetAssessmentReportUrlResponse'
+  { preSignedUrl :: Prelude.Maybe URL,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetAssessmentReportUrlResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'preSignedUrl', 'getAssessmentReportUrlResponse_preSignedUrl' - Undocumented member.
+--
+-- 'httpStatus', 'getAssessmentReportUrlResponse_httpStatus' - The response's http status code.
+newGetAssessmentReportUrlResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetAssessmentReportUrlResponse
+newGetAssessmentReportUrlResponse pHttpStatus_ =
+  GetAssessmentReportUrlResponse'
+    { preSignedUrl =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Undocumented member.
+getAssessmentReportUrlResponse_preSignedUrl :: Lens.Lens' GetAssessmentReportUrlResponse (Prelude.Maybe URL)
+getAssessmentReportUrlResponse_preSignedUrl = Lens.lens (\GetAssessmentReportUrlResponse' {preSignedUrl} -> preSignedUrl) (\s@GetAssessmentReportUrlResponse' {} a -> s {preSignedUrl = a} :: GetAssessmentReportUrlResponse)
+
+-- | The response's http status code.
+getAssessmentReportUrlResponse_httpStatus :: Lens.Lens' GetAssessmentReportUrlResponse Prelude.Int
+getAssessmentReportUrlResponse_httpStatus = Lens.lens (\GetAssessmentReportUrlResponse' {httpStatus} -> httpStatus) (\s@GetAssessmentReportUrlResponse' {} a -> s {httpStatus = a} :: GetAssessmentReportUrlResponse)
+
+instance
+  Prelude.NFData
+    GetAssessmentReportUrlResponse
+  where
+  rnf GetAssessmentReportUrlResponse' {..} =
+    Prelude.rnf preSignedUrl
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetChangeLogs.hs b/gen/Amazonka/AuditManager/GetChangeLogs.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetChangeLogs.hs
@@ -0,0 +1,235 @@
+{-# 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.AuditManager.GetChangeLogs
+-- 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 changelogs from Audit Manager.
+module Amazonka.AuditManager.GetChangeLogs
+  ( -- * Creating a Request
+    GetChangeLogs (..),
+    newGetChangeLogs,
+
+    -- * Request Lenses
+    getChangeLogs_controlId,
+    getChangeLogs_controlSetId,
+    getChangeLogs_maxResults,
+    getChangeLogs_nextToken,
+    getChangeLogs_assessmentId,
+
+    -- * Destructuring the Response
+    GetChangeLogsResponse (..),
+    newGetChangeLogsResponse,
+
+    -- * Response Lenses
+    getChangeLogsResponse_changeLogs,
+    getChangeLogsResponse_nextToken,
+    getChangeLogsResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetChangeLogs' smart constructor.
+data GetChangeLogs = GetChangeLogs'
+  { -- | The unique identifier for the control.
+    controlId :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the control set.
+    controlSetId :: Prelude.Maybe Prelude.Text,
+    -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetChangeLogs' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controlId', 'getChangeLogs_controlId' - The unique identifier for the control.
+--
+-- 'controlSetId', 'getChangeLogs_controlSetId' - The unique identifier for the control set.
+--
+-- 'maxResults', 'getChangeLogs_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'getChangeLogs_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'assessmentId', 'getChangeLogs_assessmentId' - The unique identifier for the assessment.
+newGetChangeLogs ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  GetChangeLogs
+newGetChangeLogs pAssessmentId_ =
+  GetChangeLogs'
+    { controlId = Prelude.Nothing,
+      controlSetId = Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      assessmentId = pAssessmentId_
+    }
+
+-- | The unique identifier for the control.
+getChangeLogs_controlId :: Lens.Lens' GetChangeLogs (Prelude.Maybe Prelude.Text)
+getChangeLogs_controlId = Lens.lens (\GetChangeLogs' {controlId} -> controlId) (\s@GetChangeLogs' {} a -> s {controlId = a} :: GetChangeLogs)
+
+-- | The unique identifier for the control set.
+getChangeLogs_controlSetId :: Lens.Lens' GetChangeLogs (Prelude.Maybe Prelude.Text)
+getChangeLogs_controlSetId = Lens.lens (\GetChangeLogs' {controlSetId} -> controlSetId) (\s@GetChangeLogs' {} a -> s {controlSetId = a} :: GetChangeLogs)
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+getChangeLogs_maxResults :: Lens.Lens' GetChangeLogs (Prelude.Maybe Prelude.Natural)
+getChangeLogs_maxResults = Lens.lens (\GetChangeLogs' {maxResults} -> maxResults) (\s@GetChangeLogs' {} a -> s {maxResults = a} :: GetChangeLogs)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+getChangeLogs_nextToken :: Lens.Lens' GetChangeLogs (Prelude.Maybe Prelude.Text)
+getChangeLogs_nextToken = Lens.lens (\GetChangeLogs' {nextToken} -> nextToken) (\s@GetChangeLogs' {} a -> s {nextToken = a} :: GetChangeLogs)
+
+-- | The unique identifier for the assessment.
+getChangeLogs_assessmentId :: Lens.Lens' GetChangeLogs Prelude.Text
+getChangeLogs_assessmentId = Lens.lens (\GetChangeLogs' {assessmentId} -> assessmentId) (\s@GetChangeLogs' {} a -> s {assessmentId = a} :: GetChangeLogs)
+
+instance Core.AWSRequest GetChangeLogs where
+  type
+    AWSResponse GetChangeLogs =
+      GetChangeLogsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetChangeLogsResponse'
+            Prelude.<$> (x Data..?> "changeLogs" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetChangeLogs where
+  hashWithSalt _salt GetChangeLogs' {..} =
+    _salt
+      `Prelude.hashWithSalt` controlId
+      `Prelude.hashWithSalt` controlSetId
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` assessmentId
+
+instance Prelude.NFData GetChangeLogs where
+  rnf GetChangeLogs' {..} =
+    Prelude.rnf controlId
+      `Prelude.seq` Prelude.rnf controlSetId
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf assessmentId
+
+instance Data.ToHeaders GetChangeLogs where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetChangeLogs where
+  toPath GetChangeLogs' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/changelogs"
+      ]
+
+instance Data.ToQuery GetChangeLogs where
+  toQuery GetChangeLogs' {..} =
+    Prelude.mconcat
+      [ "controlId" Data.=: controlId,
+        "controlSetId" Data.=: controlSetId,
+        "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newGetChangeLogsResponse' smart constructor.
+data GetChangeLogsResponse = GetChangeLogsResponse'
+  { -- | The list of user activity for the control.
+    changeLogs :: Prelude.Maybe [ChangeLog],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetChangeLogsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'changeLogs', 'getChangeLogsResponse_changeLogs' - The list of user activity for the control.
+--
+-- 'nextToken', 'getChangeLogsResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'getChangeLogsResponse_httpStatus' - The response's http status code.
+newGetChangeLogsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetChangeLogsResponse
+newGetChangeLogsResponse pHttpStatus_ =
+  GetChangeLogsResponse'
+    { changeLogs =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The list of user activity for the control.
+getChangeLogsResponse_changeLogs :: Lens.Lens' GetChangeLogsResponse (Prelude.Maybe [ChangeLog])
+getChangeLogsResponse_changeLogs = Lens.lens (\GetChangeLogsResponse' {changeLogs} -> changeLogs) (\s@GetChangeLogsResponse' {} a -> s {changeLogs = a} :: GetChangeLogsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+getChangeLogsResponse_nextToken :: Lens.Lens' GetChangeLogsResponse (Prelude.Maybe Prelude.Text)
+getChangeLogsResponse_nextToken = Lens.lens (\GetChangeLogsResponse' {nextToken} -> nextToken) (\s@GetChangeLogsResponse' {} a -> s {nextToken = a} :: GetChangeLogsResponse)
+
+-- | The response's http status code.
+getChangeLogsResponse_httpStatus :: Lens.Lens' GetChangeLogsResponse Prelude.Int
+getChangeLogsResponse_httpStatus = Lens.lens (\GetChangeLogsResponse' {httpStatus} -> httpStatus) (\s@GetChangeLogsResponse' {} a -> s {httpStatus = a} :: GetChangeLogsResponse)
+
+instance Prelude.NFData GetChangeLogsResponse where
+  rnf GetChangeLogsResponse' {..} =
+    Prelude.rnf changeLogs
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetControl.hs b/gen/Amazonka/AuditManager/GetControl.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetControl.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.GetControl
+-- 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 control from Audit Manager.
+module Amazonka.AuditManager.GetControl
+  ( -- * Creating a Request
+    GetControl (..),
+    newGetControl,
+
+    -- * Request Lenses
+    getControl_controlId,
+
+    -- * Destructuring the Response
+    GetControlResponse (..),
+    newGetControlResponse,
+
+    -- * Response Lenses
+    getControlResponse_control,
+    getControlResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetControl' smart constructor.
+data GetControl = GetControl'
+  { -- | The identifier for the control.
+    controlId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetControl' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controlId', 'getControl_controlId' - The identifier for the control.
+newGetControl ::
+  -- | 'controlId'
+  Prelude.Text ->
+  GetControl
+newGetControl pControlId_ =
+  GetControl' {controlId = pControlId_}
+
+-- | The identifier for the control.
+getControl_controlId :: Lens.Lens' GetControl Prelude.Text
+getControl_controlId = Lens.lens (\GetControl' {controlId} -> controlId) (\s@GetControl' {} a -> s {controlId = a} :: GetControl)
+
+instance Core.AWSRequest GetControl where
+  type AWSResponse GetControl = GetControlResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetControlResponse'
+            Prelude.<$> (x Data..?> "control")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetControl where
+  hashWithSalt _salt GetControl' {..} =
+    _salt `Prelude.hashWithSalt` controlId
+
+instance Prelude.NFData GetControl where
+  rnf GetControl' {..} = Prelude.rnf controlId
+
+instance Data.ToHeaders GetControl where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetControl where
+  toPath GetControl' {..} =
+    Prelude.mconcat ["/controls/", Data.toBS controlId]
+
+instance Data.ToQuery GetControl where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetControlResponse' smart constructor.
+data GetControlResponse = GetControlResponse'
+  { -- | The name of the control that the @GetControl@ API returned.
+    control :: Prelude.Maybe Control,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetControlResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'control', 'getControlResponse_control' - The name of the control that the @GetControl@ API returned.
+--
+-- 'httpStatus', 'getControlResponse_httpStatus' - The response's http status code.
+newGetControlResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetControlResponse
+newGetControlResponse pHttpStatus_ =
+  GetControlResponse'
+    { control = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The name of the control that the @GetControl@ API returned.
+getControlResponse_control :: Lens.Lens' GetControlResponse (Prelude.Maybe Control)
+getControlResponse_control = Lens.lens (\GetControlResponse' {control} -> control) (\s@GetControlResponse' {} a -> s {control = a} :: GetControlResponse)
+
+-- | The response's http status code.
+getControlResponse_httpStatus :: Lens.Lens' GetControlResponse Prelude.Int
+getControlResponse_httpStatus = Lens.lens (\GetControlResponse' {httpStatus} -> httpStatus) (\s@GetControlResponse' {} a -> s {httpStatus = a} :: GetControlResponse)
+
+instance Prelude.NFData GetControlResponse where
+  rnf GetControlResponse' {..} =
+    Prelude.rnf control
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetDelegations.hs b/gen/Amazonka/AuditManager/GetDelegations.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetDelegations.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.AuditManager.GetDelegations
+-- 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 delegations from an audit owner to a delegate.
+module Amazonka.AuditManager.GetDelegations
+  ( -- * Creating a Request
+    GetDelegations (..),
+    newGetDelegations,
+
+    -- * Request Lenses
+    getDelegations_maxResults,
+    getDelegations_nextToken,
+
+    -- * Destructuring the Response
+    GetDelegationsResponse (..),
+    newGetDelegationsResponse,
+
+    -- * Response Lenses
+    getDelegationsResponse_delegations,
+    getDelegationsResponse_nextToken,
+    getDelegationsResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetDelegations' smart constructor.
+data GetDelegations = GetDelegations'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetDelegations' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDelegations_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'getDelegations_nextToken' - The pagination token that\'s used to fetch the next set of results.
+newGetDelegations ::
+  GetDelegations
+newGetDelegations =
+  GetDelegations'
+    { maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+getDelegations_maxResults :: Lens.Lens' GetDelegations (Prelude.Maybe Prelude.Natural)
+getDelegations_maxResults = Lens.lens (\GetDelegations' {maxResults} -> maxResults) (\s@GetDelegations' {} a -> s {maxResults = a} :: GetDelegations)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+getDelegations_nextToken :: Lens.Lens' GetDelegations (Prelude.Maybe Prelude.Text)
+getDelegations_nextToken = Lens.lens (\GetDelegations' {nextToken} -> nextToken) (\s@GetDelegations' {} a -> s {nextToken = a} :: GetDelegations)
+
+instance Core.AWSRequest GetDelegations where
+  type
+    AWSResponse GetDelegations =
+      GetDelegationsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetDelegationsResponse'
+            Prelude.<$> (x Data..?> "delegations" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetDelegations where
+  hashWithSalt _salt GetDelegations' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData GetDelegations where
+  rnf GetDelegations' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders GetDelegations where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetDelegations where
+  toPath = Prelude.const "/delegations"
+
+instance Data.ToQuery GetDelegations where
+  toQuery GetDelegations' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newGetDelegationsResponse' smart constructor.
+data GetDelegationsResponse = GetDelegationsResponse'
+  { -- | The list of delegations that the @GetDelegations@ API returned.
+    delegations :: Prelude.Maybe [DelegationMetadata],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetDelegationsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'delegations', 'getDelegationsResponse_delegations' - The list of delegations that the @GetDelegations@ API returned.
+--
+-- 'nextToken', 'getDelegationsResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'getDelegationsResponse_httpStatus' - The response's http status code.
+newGetDelegationsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetDelegationsResponse
+newGetDelegationsResponse pHttpStatus_ =
+  GetDelegationsResponse'
+    { delegations =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The list of delegations that the @GetDelegations@ API returned.
+getDelegationsResponse_delegations :: Lens.Lens' GetDelegationsResponse (Prelude.Maybe [DelegationMetadata])
+getDelegationsResponse_delegations = Lens.lens (\GetDelegationsResponse' {delegations} -> delegations) (\s@GetDelegationsResponse' {} a -> s {delegations = a} :: GetDelegationsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+getDelegationsResponse_nextToken :: Lens.Lens' GetDelegationsResponse (Prelude.Maybe Prelude.Text)
+getDelegationsResponse_nextToken = Lens.lens (\GetDelegationsResponse' {nextToken} -> nextToken) (\s@GetDelegationsResponse' {} a -> s {nextToken = a} :: GetDelegationsResponse)
+
+-- | The response's http status code.
+getDelegationsResponse_httpStatus :: Lens.Lens' GetDelegationsResponse Prelude.Int
+getDelegationsResponse_httpStatus = Lens.lens (\GetDelegationsResponse' {httpStatus} -> httpStatus) (\s@GetDelegationsResponse' {} a -> s {httpStatus = a} :: GetDelegationsResponse)
+
+instance Prelude.NFData GetDelegationsResponse where
+  rnf GetDelegationsResponse' {..} =
+    Prelude.rnf delegations
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetEvidence.hs b/gen/Amazonka/AuditManager/GetEvidence.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetEvidence.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.AuditManager.GetEvidence
+-- 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 evidence from Audit Manager.
+module Amazonka.AuditManager.GetEvidence
+  ( -- * Creating a Request
+    GetEvidence (..),
+    newGetEvidence,
+
+    -- * Request Lenses
+    getEvidence_assessmentId,
+    getEvidence_controlSetId,
+    getEvidence_evidenceFolderId,
+    getEvidence_evidenceId,
+
+    -- * Destructuring the Response
+    GetEvidenceResponse (..),
+    newGetEvidenceResponse,
+
+    -- * Response Lenses
+    getEvidenceResponse_evidence,
+    getEvidenceResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetEvidence' smart constructor.
+data GetEvidence = GetEvidence'
+  { -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The unique identifier for the control set.
+    controlSetId :: Prelude.Text,
+    -- | The unique identifier for the folder that the evidence is stored in.
+    evidenceFolderId :: Prelude.Text,
+    -- | The unique identifier for the evidence.
+    evidenceId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetEvidence' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'getEvidence_assessmentId' - The unique identifier for the assessment.
+--
+-- 'controlSetId', 'getEvidence_controlSetId' - The unique identifier for the control set.
+--
+-- 'evidenceFolderId', 'getEvidence_evidenceFolderId' - The unique identifier for the folder that the evidence is stored in.
+--
+-- 'evidenceId', 'getEvidence_evidenceId' - The unique identifier for the evidence.
+newGetEvidence ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'controlSetId'
+  Prelude.Text ->
+  -- | 'evidenceFolderId'
+  Prelude.Text ->
+  -- | 'evidenceId'
+  Prelude.Text ->
+  GetEvidence
+newGetEvidence
+  pAssessmentId_
+  pControlSetId_
+  pEvidenceFolderId_
+  pEvidenceId_ =
+    GetEvidence'
+      { assessmentId = pAssessmentId_,
+        controlSetId = pControlSetId_,
+        evidenceFolderId = pEvidenceFolderId_,
+        evidenceId = pEvidenceId_
+      }
+
+-- | The unique identifier for the assessment.
+getEvidence_assessmentId :: Lens.Lens' GetEvidence Prelude.Text
+getEvidence_assessmentId = Lens.lens (\GetEvidence' {assessmentId} -> assessmentId) (\s@GetEvidence' {} a -> s {assessmentId = a} :: GetEvidence)
+
+-- | The unique identifier for the control set.
+getEvidence_controlSetId :: Lens.Lens' GetEvidence Prelude.Text
+getEvidence_controlSetId = Lens.lens (\GetEvidence' {controlSetId} -> controlSetId) (\s@GetEvidence' {} a -> s {controlSetId = a} :: GetEvidence)
+
+-- | The unique identifier for the folder that the evidence is stored in.
+getEvidence_evidenceFolderId :: Lens.Lens' GetEvidence Prelude.Text
+getEvidence_evidenceFolderId = Lens.lens (\GetEvidence' {evidenceFolderId} -> evidenceFolderId) (\s@GetEvidence' {} a -> s {evidenceFolderId = a} :: GetEvidence)
+
+-- | The unique identifier for the evidence.
+getEvidence_evidenceId :: Lens.Lens' GetEvidence Prelude.Text
+getEvidence_evidenceId = Lens.lens (\GetEvidence' {evidenceId} -> evidenceId) (\s@GetEvidence' {} a -> s {evidenceId = a} :: GetEvidence)
+
+instance Core.AWSRequest GetEvidence where
+  type AWSResponse GetEvidence = GetEvidenceResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetEvidenceResponse'
+            Prelude.<$> (x Data..?> "evidence")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetEvidence where
+  hashWithSalt _salt GetEvidence' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` controlSetId
+      `Prelude.hashWithSalt` evidenceFolderId
+      `Prelude.hashWithSalt` evidenceId
+
+instance Prelude.NFData GetEvidence where
+  rnf GetEvidence' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf controlSetId
+      `Prelude.seq` Prelude.rnf evidenceFolderId
+      `Prelude.seq` Prelude.rnf evidenceId
+
+instance Data.ToHeaders GetEvidence where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetEvidence where
+  toPath GetEvidence' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/controlSets/",
+        Data.toBS controlSetId,
+        "/evidenceFolders/",
+        Data.toBS evidenceFolderId,
+        "/evidence/",
+        Data.toBS evidenceId
+      ]
+
+instance Data.ToQuery GetEvidence where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetEvidenceResponse' smart constructor.
+data GetEvidenceResponse = GetEvidenceResponse'
+  { -- | The evidence that the @GetEvidence@ API returned.
+    evidence :: Prelude.Maybe Evidence,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetEvidenceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'evidence', 'getEvidenceResponse_evidence' - The evidence that the @GetEvidence@ API returned.
+--
+-- 'httpStatus', 'getEvidenceResponse_httpStatus' - The response's http status code.
+newGetEvidenceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetEvidenceResponse
+newGetEvidenceResponse pHttpStatus_ =
+  GetEvidenceResponse'
+    { evidence = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The evidence that the @GetEvidence@ API returned.
+getEvidenceResponse_evidence :: Lens.Lens' GetEvidenceResponse (Prelude.Maybe Evidence)
+getEvidenceResponse_evidence = Lens.lens (\GetEvidenceResponse' {evidence} -> evidence) (\s@GetEvidenceResponse' {} a -> s {evidence = a} :: GetEvidenceResponse)
+
+-- | The response's http status code.
+getEvidenceResponse_httpStatus :: Lens.Lens' GetEvidenceResponse Prelude.Int
+getEvidenceResponse_httpStatus = Lens.lens (\GetEvidenceResponse' {httpStatus} -> httpStatus) (\s@GetEvidenceResponse' {} a -> s {httpStatus = a} :: GetEvidenceResponse)
+
+instance Prelude.NFData GetEvidenceResponse where
+  rnf GetEvidenceResponse' {..} =
+    Prelude.rnf evidence
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetEvidenceByEvidenceFolder.hs b/gen/Amazonka/AuditManager/GetEvidenceByEvidenceFolder.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetEvidenceByEvidenceFolder.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.AuditManager.GetEvidenceByEvidenceFolder
+-- 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 all evidence from a specified evidence folder in Audit Manager.
+module Amazonka.AuditManager.GetEvidenceByEvidenceFolder
+  ( -- * Creating a Request
+    GetEvidenceByEvidenceFolder (..),
+    newGetEvidenceByEvidenceFolder,
+
+    -- * Request Lenses
+    getEvidenceByEvidenceFolder_maxResults,
+    getEvidenceByEvidenceFolder_nextToken,
+    getEvidenceByEvidenceFolder_assessmentId,
+    getEvidenceByEvidenceFolder_controlSetId,
+    getEvidenceByEvidenceFolder_evidenceFolderId,
+
+    -- * Destructuring the Response
+    GetEvidenceByEvidenceFolderResponse (..),
+    newGetEvidenceByEvidenceFolderResponse,
+
+    -- * Response Lenses
+    getEvidenceByEvidenceFolderResponse_evidence,
+    getEvidenceByEvidenceFolderResponse_nextToken,
+    getEvidenceByEvidenceFolderResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetEvidenceByEvidenceFolder' smart constructor.
+data GetEvidenceByEvidenceFolder = GetEvidenceByEvidenceFolder'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The identifier for the control set.
+    controlSetId :: Prelude.Text,
+    -- | The unique identifier for the folder that the evidence is stored in.
+    evidenceFolderId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetEvidenceByEvidenceFolder' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getEvidenceByEvidenceFolder_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'getEvidenceByEvidenceFolder_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'assessmentId', 'getEvidenceByEvidenceFolder_assessmentId' - The identifier for the assessment.
+--
+-- 'controlSetId', 'getEvidenceByEvidenceFolder_controlSetId' - The identifier for the control set.
+--
+-- 'evidenceFolderId', 'getEvidenceByEvidenceFolder_evidenceFolderId' - The unique identifier for the folder that the evidence is stored in.
+newGetEvidenceByEvidenceFolder ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'controlSetId'
+  Prelude.Text ->
+  -- | 'evidenceFolderId'
+  Prelude.Text ->
+  GetEvidenceByEvidenceFolder
+newGetEvidenceByEvidenceFolder
+  pAssessmentId_
+  pControlSetId_
+  pEvidenceFolderId_ =
+    GetEvidenceByEvidenceFolder'
+      { maxResults =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        assessmentId = pAssessmentId_,
+        controlSetId = pControlSetId_,
+        evidenceFolderId = pEvidenceFolderId_
+      }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+getEvidenceByEvidenceFolder_maxResults :: Lens.Lens' GetEvidenceByEvidenceFolder (Prelude.Maybe Prelude.Natural)
+getEvidenceByEvidenceFolder_maxResults = Lens.lens (\GetEvidenceByEvidenceFolder' {maxResults} -> maxResults) (\s@GetEvidenceByEvidenceFolder' {} a -> s {maxResults = a} :: GetEvidenceByEvidenceFolder)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+getEvidenceByEvidenceFolder_nextToken :: Lens.Lens' GetEvidenceByEvidenceFolder (Prelude.Maybe Prelude.Text)
+getEvidenceByEvidenceFolder_nextToken = Lens.lens (\GetEvidenceByEvidenceFolder' {nextToken} -> nextToken) (\s@GetEvidenceByEvidenceFolder' {} a -> s {nextToken = a} :: GetEvidenceByEvidenceFolder)
+
+-- | The identifier for the assessment.
+getEvidenceByEvidenceFolder_assessmentId :: Lens.Lens' GetEvidenceByEvidenceFolder Prelude.Text
+getEvidenceByEvidenceFolder_assessmentId = Lens.lens (\GetEvidenceByEvidenceFolder' {assessmentId} -> assessmentId) (\s@GetEvidenceByEvidenceFolder' {} a -> s {assessmentId = a} :: GetEvidenceByEvidenceFolder)
+
+-- | The identifier for the control set.
+getEvidenceByEvidenceFolder_controlSetId :: Lens.Lens' GetEvidenceByEvidenceFolder Prelude.Text
+getEvidenceByEvidenceFolder_controlSetId = Lens.lens (\GetEvidenceByEvidenceFolder' {controlSetId} -> controlSetId) (\s@GetEvidenceByEvidenceFolder' {} a -> s {controlSetId = a} :: GetEvidenceByEvidenceFolder)
+
+-- | The unique identifier for the folder that the evidence is stored in.
+getEvidenceByEvidenceFolder_evidenceFolderId :: Lens.Lens' GetEvidenceByEvidenceFolder Prelude.Text
+getEvidenceByEvidenceFolder_evidenceFolderId = Lens.lens (\GetEvidenceByEvidenceFolder' {evidenceFolderId} -> evidenceFolderId) (\s@GetEvidenceByEvidenceFolder' {} a -> s {evidenceFolderId = a} :: GetEvidenceByEvidenceFolder)
+
+instance Core.AWSRequest GetEvidenceByEvidenceFolder where
+  type
+    AWSResponse GetEvidenceByEvidenceFolder =
+      GetEvidenceByEvidenceFolderResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetEvidenceByEvidenceFolderResponse'
+            Prelude.<$> (x Data..?> "evidence" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetEvidenceByEvidenceFolder where
+  hashWithSalt _salt GetEvidenceByEvidenceFolder' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` controlSetId
+      `Prelude.hashWithSalt` evidenceFolderId
+
+instance Prelude.NFData GetEvidenceByEvidenceFolder where
+  rnf GetEvidenceByEvidenceFolder' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf controlSetId
+      `Prelude.seq` Prelude.rnf evidenceFolderId
+
+instance Data.ToHeaders GetEvidenceByEvidenceFolder where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetEvidenceByEvidenceFolder where
+  toPath GetEvidenceByEvidenceFolder' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/controlSets/",
+        Data.toBS controlSetId,
+        "/evidenceFolders/",
+        Data.toBS evidenceFolderId,
+        "/evidence"
+      ]
+
+instance Data.ToQuery GetEvidenceByEvidenceFolder where
+  toQuery GetEvidenceByEvidenceFolder' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newGetEvidenceByEvidenceFolderResponse' smart constructor.
+data GetEvidenceByEvidenceFolderResponse = GetEvidenceByEvidenceFolderResponse'
+  { -- | The list of evidence that the @GetEvidenceByEvidenceFolder@ API
+    -- returned.
+    evidence :: Prelude.Maybe [Evidence],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetEvidenceByEvidenceFolderResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'evidence', 'getEvidenceByEvidenceFolderResponse_evidence' - The list of evidence that the @GetEvidenceByEvidenceFolder@ API
+-- returned.
+--
+-- 'nextToken', 'getEvidenceByEvidenceFolderResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'getEvidenceByEvidenceFolderResponse_httpStatus' - The response's http status code.
+newGetEvidenceByEvidenceFolderResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetEvidenceByEvidenceFolderResponse
+newGetEvidenceByEvidenceFolderResponse pHttpStatus_ =
+  GetEvidenceByEvidenceFolderResponse'
+    { evidence =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The list of evidence that the @GetEvidenceByEvidenceFolder@ API
+-- returned.
+getEvidenceByEvidenceFolderResponse_evidence :: Lens.Lens' GetEvidenceByEvidenceFolderResponse (Prelude.Maybe [Evidence])
+getEvidenceByEvidenceFolderResponse_evidence = Lens.lens (\GetEvidenceByEvidenceFolderResponse' {evidence} -> evidence) (\s@GetEvidenceByEvidenceFolderResponse' {} a -> s {evidence = a} :: GetEvidenceByEvidenceFolderResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+getEvidenceByEvidenceFolderResponse_nextToken :: Lens.Lens' GetEvidenceByEvidenceFolderResponse (Prelude.Maybe Prelude.Text)
+getEvidenceByEvidenceFolderResponse_nextToken = Lens.lens (\GetEvidenceByEvidenceFolderResponse' {nextToken} -> nextToken) (\s@GetEvidenceByEvidenceFolderResponse' {} a -> s {nextToken = a} :: GetEvidenceByEvidenceFolderResponse)
+
+-- | The response's http status code.
+getEvidenceByEvidenceFolderResponse_httpStatus :: Lens.Lens' GetEvidenceByEvidenceFolderResponse Prelude.Int
+getEvidenceByEvidenceFolderResponse_httpStatus = Lens.lens (\GetEvidenceByEvidenceFolderResponse' {httpStatus} -> httpStatus) (\s@GetEvidenceByEvidenceFolderResponse' {} a -> s {httpStatus = a} :: GetEvidenceByEvidenceFolderResponse)
+
+instance
+  Prelude.NFData
+    GetEvidenceByEvidenceFolderResponse
+  where
+  rnf GetEvidenceByEvidenceFolderResponse' {..} =
+    Prelude.rnf evidence
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetEvidenceFolder.hs b/gen/Amazonka/AuditManager/GetEvidenceFolder.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetEvidenceFolder.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.AuditManager.GetEvidenceFolder
+-- 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 an evidence folder from the specified assessment in Audit
+-- Manager.
+module Amazonka.AuditManager.GetEvidenceFolder
+  ( -- * Creating a Request
+    GetEvidenceFolder (..),
+    newGetEvidenceFolder,
+
+    -- * Request Lenses
+    getEvidenceFolder_assessmentId,
+    getEvidenceFolder_controlSetId,
+    getEvidenceFolder_evidenceFolderId,
+
+    -- * Destructuring the Response
+    GetEvidenceFolderResponse (..),
+    newGetEvidenceFolderResponse,
+
+    -- * Response Lenses
+    getEvidenceFolderResponse_evidenceFolder,
+    getEvidenceFolderResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetEvidenceFolder' smart constructor.
+data GetEvidenceFolder = GetEvidenceFolder'
+  { -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The unique identifier for the control set.
+    controlSetId :: Prelude.Text,
+    -- | The unique identifier for the folder that the evidence is stored in.
+    evidenceFolderId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetEvidenceFolder' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'getEvidenceFolder_assessmentId' - The unique identifier for the assessment.
+--
+-- 'controlSetId', 'getEvidenceFolder_controlSetId' - The unique identifier for the control set.
+--
+-- 'evidenceFolderId', 'getEvidenceFolder_evidenceFolderId' - The unique identifier for the folder that the evidence is stored in.
+newGetEvidenceFolder ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'controlSetId'
+  Prelude.Text ->
+  -- | 'evidenceFolderId'
+  Prelude.Text ->
+  GetEvidenceFolder
+newGetEvidenceFolder
+  pAssessmentId_
+  pControlSetId_
+  pEvidenceFolderId_ =
+    GetEvidenceFolder'
+      { assessmentId = pAssessmentId_,
+        controlSetId = pControlSetId_,
+        evidenceFolderId = pEvidenceFolderId_
+      }
+
+-- | The unique identifier for the assessment.
+getEvidenceFolder_assessmentId :: Lens.Lens' GetEvidenceFolder Prelude.Text
+getEvidenceFolder_assessmentId = Lens.lens (\GetEvidenceFolder' {assessmentId} -> assessmentId) (\s@GetEvidenceFolder' {} a -> s {assessmentId = a} :: GetEvidenceFolder)
+
+-- | The unique identifier for the control set.
+getEvidenceFolder_controlSetId :: Lens.Lens' GetEvidenceFolder Prelude.Text
+getEvidenceFolder_controlSetId = Lens.lens (\GetEvidenceFolder' {controlSetId} -> controlSetId) (\s@GetEvidenceFolder' {} a -> s {controlSetId = a} :: GetEvidenceFolder)
+
+-- | The unique identifier for the folder that the evidence is stored in.
+getEvidenceFolder_evidenceFolderId :: Lens.Lens' GetEvidenceFolder Prelude.Text
+getEvidenceFolder_evidenceFolderId = Lens.lens (\GetEvidenceFolder' {evidenceFolderId} -> evidenceFolderId) (\s@GetEvidenceFolder' {} a -> s {evidenceFolderId = a} :: GetEvidenceFolder)
+
+instance Core.AWSRequest GetEvidenceFolder where
+  type
+    AWSResponse GetEvidenceFolder =
+      GetEvidenceFolderResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetEvidenceFolderResponse'
+            Prelude.<$> (x Data..?> "evidenceFolder")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetEvidenceFolder where
+  hashWithSalt _salt GetEvidenceFolder' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` controlSetId
+      `Prelude.hashWithSalt` evidenceFolderId
+
+instance Prelude.NFData GetEvidenceFolder where
+  rnf GetEvidenceFolder' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf controlSetId
+      `Prelude.seq` Prelude.rnf evidenceFolderId
+
+instance Data.ToHeaders GetEvidenceFolder where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetEvidenceFolder where
+  toPath GetEvidenceFolder' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/controlSets/",
+        Data.toBS controlSetId,
+        "/evidenceFolders/",
+        Data.toBS evidenceFolderId
+      ]
+
+instance Data.ToQuery GetEvidenceFolder where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetEvidenceFolderResponse' smart constructor.
+data GetEvidenceFolderResponse = GetEvidenceFolderResponse'
+  { -- | The folder that the evidence is stored in.
+    evidenceFolder :: Prelude.Maybe AssessmentEvidenceFolder,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetEvidenceFolderResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'evidenceFolder', 'getEvidenceFolderResponse_evidenceFolder' - The folder that the evidence is stored in.
+--
+-- 'httpStatus', 'getEvidenceFolderResponse_httpStatus' - The response's http status code.
+newGetEvidenceFolderResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetEvidenceFolderResponse
+newGetEvidenceFolderResponse pHttpStatus_ =
+  GetEvidenceFolderResponse'
+    { evidenceFolder =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The folder that the evidence is stored in.
+getEvidenceFolderResponse_evidenceFolder :: Lens.Lens' GetEvidenceFolderResponse (Prelude.Maybe AssessmentEvidenceFolder)
+getEvidenceFolderResponse_evidenceFolder = Lens.lens (\GetEvidenceFolderResponse' {evidenceFolder} -> evidenceFolder) (\s@GetEvidenceFolderResponse' {} a -> s {evidenceFolder = a} :: GetEvidenceFolderResponse)
+
+-- | The response's http status code.
+getEvidenceFolderResponse_httpStatus :: Lens.Lens' GetEvidenceFolderResponse Prelude.Int
+getEvidenceFolderResponse_httpStatus = Lens.lens (\GetEvidenceFolderResponse' {httpStatus} -> httpStatus) (\s@GetEvidenceFolderResponse' {} a -> s {httpStatus = a} :: GetEvidenceFolderResponse)
+
+instance Prelude.NFData GetEvidenceFolderResponse where
+  rnf GetEvidenceFolderResponse' {..} =
+    Prelude.rnf evidenceFolder
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetEvidenceFoldersByAssessment.hs b/gen/Amazonka/AuditManager/GetEvidenceFoldersByAssessment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetEvidenceFoldersByAssessment.hs
@@ -0,0 +1,235 @@
+{-# 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.AuditManager.GetEvidenceFoldersByAssessment
+-- 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 evidence folders from a specified assessment in Audit
+-- Manager.
+module Amazonka.AuditManager.GetEvidenceFoldersByAssessment
+  ( -- * Creating a Request
+    GetEvidenceFoldersByAssessment (..),
+    newGetEvidenceFoldersByAssessment,
+
+    -- * Request Lenses
+    getEvidenceFoldersByAssessment_maxResults,
+    getEvidenceFoldersByAssessment_nextToken,
+    getEvidenceFoldersByAssessment_assessmentId,
+
+    -- * Destructuring the Response
+    GetEvidenceFoldersByAssessmentResponse (..),
+    newGetEvidenceFoldersByAssessmentResponse,
+
+    -- * Response Lenses
+    getEvidenceFoldersByAssessmentResponse_evidenceFolders,
+    getEvidenceFoldersByAssessmentResponse_nextToken,
+    getEvidenceFoldersByAssessmentResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetEvidenceFoldersByAssessment' smart constructor.
+data GetEvidenceFoldersByAssessment = GetEvidenceFoldersByAssessment'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetEvidenceFoldersByAssessment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getEvidenceFoldersByAssessment_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'getEvidenceFoldersByAssessment_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'assessmentId', 'getEvidenceFoldersByAssessment_assessmentId' - The unique identifier for the assessment.
+newGetEvidenceFoldersByAssessment ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  GetEvidenceFoldersByAssessment
+newGetEvidenceFoldersByAssessment pAssessmentId_ =
+  GetEvidenceFoldersByAssessment'
+    { maxResults =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      assessmentId = pAssessmentId_
+    }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+getEvidenceFoldersByAssessment_maxResults :: Lens.Lens' GetEvidenceFoldersByAssessment (Prelude.Maybe Prelude.Natural)
+getEvidenceFoldersByAssessment_maxResults = Lens.lens (\GetEvidenceFoldersByAssessment' {maxResults} -> maxResults) (\s@GetEvidenceFoldersByAssessment' {} a -> s {maxResults = a} :: GetEvidenceFoldersByAssessment)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+getEvidenceFoldersByAssessment_nextToken :: Lens.Lens' GetEvidenceFoldersByAssessment (Prelude.Maybe Prelude.Text)
+getEvidenceFoldersByAssessment_nextToken = Lens.lens (\GetEvidenceFoldersByAssessment' {nextToken} -> nextToken) (\s@GetEvidenceFoldersByAssessment' {} a -> s {nextToken = a} :: GetEvidenceFoldersByAssessment)
+
+-- | The unique identifier for the assessment.
+getEvidenceFoldersByAssessment_assessmentId :: Lens.Lens' GetEvidenceFoldersByAssessment Prelude.Text
+getEvidenceFoldersByAssessment_assessmentId = Lens.lens (\GetEvidenceFoldersByAssessment' {assessmentId} -> assessmentId) (\s@GetEvidenceFoldersByAssessment' {} a -> s {assessmentId = a} :: GetEvidenceFoldersByAssessment)
+
+instance
+  Core.AWSRequest
+    GetEvidenceFoldersByAssessment
+  where
+  type
+    AWSResponse GetEvidenceFoldersByAssessment =
+      GetEvidenceFoldersByAssessmentResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetEvidenceFoldersByAssessmentResponse'
+            Prelude.<$> ( x
+                            Data..?> "evidenceFolders"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    GetEvidenceFoldersByAssessment
+  where
+  hashWithSalt
+    _salt
+    GetEvidenceFoldersByAssessment' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` assessmentId
+
+instance
+  Prelude.NFData
+    GetEvidenceFoldersByAssessment
+  where
+  rnf GetEvidenceFoldersByAssessment' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf assessmentId
+
+instance
+  Data.ToHeaders
+    GetEvidenceFoldersByAssessment
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetEvidenceFoldersByAssessment where
+  toPath GetEvidenceFoldersByAssessment' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/evidenceFolders"
+      ]
+
+instance Data.ToQuery GetEvidenceFoldersByAssessment where
+  toQuery GetEvidenceFoldersByAssessment' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newGetEvidenceFoldersByAssessmentResponse' smart constructor.
+data GetEvidenceFoldersByAssessmentResponse = GetEvidenceFoldersByAssessmentResponse'
+  { -- | The list of evidence folders that the @GetEvidenceFoldersByAssessment@
+    -- API returned.
+    evidenceFolders :: Prelude.Maybe [AssessmentEvidenceFolder],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetEvidenceFoldersByAssessmentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'evidenceFolders', 'getEvidenceFoldersByAssessmentResponse_evidenceFolders' - The list of evidence folders that the @GetEvidenceFoldersByAssessment@
+-- API returned.
+--
+-- 'nextToken', 'getEvidenceFoldersByAssessmentResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'getEvidenceFoldersByAssessmentResponse_httpStatus' - The response's http status code.
+newGetEvidenceFoldersByAssessmentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetEvidenceFoldersByAssessmentResponse
+newGetEvidenceFoldersByAssessmentResponse
+  pHttpStatus_ =
+    GetEvidenceFoldersByAssessmentResponse'
+      { evidenceFolders =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The list of evidence folders that the @GetEvidenceFoldersByAssessment@
+-- API returned.
+getEvidenceFoldersByAssessmentResponse_evidenceFolders :: Lens.Lens' GetEvidenceFoldersByAssessmentResponse (Prelude.Maybe [AssessmentEvidenceFolder])
+getEvidenceFoldersByAssessmentResponse_evidenceFolders = Lens.lens (\GetEvidenceFoldersByAssessmentResponse' {evidenceFolders} -> evidenceFolders) (\s@GetEvidenceFoldersByAssessmentResponse' {} a -> s {evidenceFolders = a} :: GetEvidenceFoldersByAssessmentResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+getEvidenceFoldersByAssessmentResponse_nextToken :: Lens.Lens' GetEvidenceFoldersByAssessmentResponse (Prelude.Maybe Prelude.Text)
+getEvidenceFoldersByAssessmentResponse_nextToken = Lens.lens (\GetEvidenceFoldersByAssessmentResponse' {nextToken} -> nextToken) (\s@GetEvidenceFoldersByAssessmentResponse' {} a -> s {nextToken = a} :: GetEvidenceFoldersByAssessmentResponse)
+
+-- | The response's http status code.
+getEvidenceFoldersByAssessmentResponse_httpStatus :: Lens.Lens' GetEvidenceFoldersByAssessmentResponse Prelude.Int
+getEvidenceFoldersByAssessmentResponse_httpStatus = Lens.lens (\GetEvidenceFoldersByAssessmentResponse' {httpStatus} -> httpStatus) (\s@GetEvidenceFoldersByAssessmentResponse' {} a -> s {httpStatus = a} :: GetEvidenceFoldersByAssessmentResponse)
+
+instance
+  Prelude.NFData
+    GetEvidenceFoldersByAssessmentResponse
+  where
+  rnf GetEvidenceFoldersByAssessmentResponse' {..} =
+    Prelude.rnf evidenceFolders
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetEvidenceFoldersByAssessmentControl.hs b/gen/Amazonka/AuditManager/GetEvidenceFoldersByAssessmentControl.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetEvidenceFoldersByAssessmentControl.hs
@@ -0,0 +1,277 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.GetEvidenceFoldersByAssessmentControl
+-- 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 evidence folders that are associated with a specified
+-- control in an Audit Manager assessment.
+module Amazonka.AuditManager.GetEvidenceFoldersByAssessmentControl
+  ( -- * Creating a Request
+    GetEvidenceFoldersByAssessmentControl (..),
+    newGetEvidenceFoldersByAssessmentControl,
+
+    -- * Request Lenses
+    getEvidenceFoldersByAssessmentControl_maxResults,
+    getEvidenceFoldersByAssessmentControl_nextToken,
+    getEvidenceFoldersByAssessmentControl_assessmentId,
+    getEvidenceFoldersByAssessmentControl_controlSetId,
+    getEvidenceFoldersByAssessmentControl_controlId,
+
+    -- * Destructuring the Response
+    GetEvidenceFoldersByAssessmentControlResponse (..),
+    newGetEvidenceFoldersByAssessmentControlResponse,
+
+    -- * Response Lenses
+    getEvidenceFoldersByAssessmentControlResponse_evidenceFolders,
+    getEvidenceFoldersByAssessmentControlResponse_nextToken,
+    getEvidenceFoldersByAssessmentControlResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetEvidenceFoldersByAssessmentControl' smart constructor.
+data GetEvidenceFoldersByAssessmentControl = GetEvidenceFoldersByAssessmentControl'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The identifier for the control set.
+    controlSetId :: Prelude.Text,
+    -- | The identifier for the control.
+    controlId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetEvidenceFoldersByAssessmentControl' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getEvidenceFoldersByAssessmentControl_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'getEvidenceFoldersByAssessmentControl_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'assessmentId', 'getEvidenceFoldersByAssessmentControl_assessmentId' - The identifier for the assessment.
+--
+-- 'controlSetId', 'getEvidenceFoldersByAssessmentControl_controlSetId' - The identifier for the control set.
+--
+-- 'controlId', 'getEvidenceFoldersByAssessmentControl_controlId' - The identifier for the control.
+newGetEvidenceFoldersByAssessmentControl ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'controlSetId'
+  Prelude.Text ->
+  -- | 'controlId'
+  Prelude.Text ->
+  GetEvidenceFoldersByAssessmentControl
+newGetEvidenceFoldersByAssessmentControl
+  pAssessmentId_
+  pControlSetId_
+  pControlId_ =
+    GetEvidenceFoldersByAssessmentControl'
+      { maxResults =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        assessmentId = pAssessmentId_,
+        controlSetId = pControlSetId_,
+        controlId = pControlId_
+      }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+getEvidenceFoldersByAssessmentControl_maxResults :: Lens.Lens' GetEvidenceFoldersByAssessmentControl (Prelude.Maybe Prelude.Natural)
+getEvidenceFoldersByAssessmentControl_maxResults = Lens.lens (\GetEvidenceFoldersByAssessmentControl' {maxResults} -> maxResults) (\s@GetEvidenceFoldersByAssessmentControl' {} a -> s {maxResults = a} :: GetEvidenceFoldersByAssessmentControl)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+getEvidenceFoldersByAssessmentControl_nextToken :: Lens.Lens' GetEvidenceFoldersByAssessmentControl (Prelude.Maybe Prelude.Text)
+getEvidenceFoldersByAssessmentControl_nextToken = Lens.lens (\GetEvidenceFoldersByAssessmentControl' {nextToken} -> nextToken) (\s@GetEvidenceFoldersByAssessmentControl' {} a -> s {nextToken = a} :: GetEvidenceFoldersByAssessmentControl)
+
+-- | The identifier for the assessment.
+getEvidenceFoldersByAssessmentControl_assessmentId :: Lens.Lens' GetEvidenceFoldersByAssessmentControl Prelude.Text
+getEvidenceFoldersByAssessmentControl_assessmentId = Lens.lens (\GetEvidenceFoldersByAssessmentControl' {assessmentId} -> assessmentId) (\s@GetEvidenceFoldersByAssessmentControl' {} a -> s {assessmentId = a} :: GetEvidenceFoldersByAssessmentControl)
+
+-- | The identifier for the control set.
+getEvidenceFoldersByAssessmentControl_controlSetId :: Lens.Lens' GetEvidenceFoldersByAssessmentControl Prelude.Text
+getEvidenceFoldersByAssessmentControl_controlSetId = Lens.lens (\GetEvidenceFoldersByAssessmentControl' {controlSetId} -> controlSetId) (\s@GetEvidenceFoldersByAssessmentControl' {} a -> s {controlSetId = a} :: GetEvidenceFoldersByAssessmentControl)
+
+-- | The identifier for the control.
+getEvidenceFoldersByAssessmentControl_controlId :: Lens.Lens' GetEvidenceFoldersByAssessmentControl Prelude.Text
+getEvidenceFoldersByAssessmentControl_controlId = Lens.lens (\GetEvidenceFoldersByAssessmentControl' {controlId} -> controlId) (\s@GetEvidenceFoldersByAssessmentControl' {} a -> s {controlId = a} :: GetEvidenceFoldersByAssessmentControl)
+
+instance
+  Core.AWSRequest
+    GetEvidenceFoldersByAssessmentControl
+  where
+  type
+    AWSResponse
+      GetEvidenceFoldersByAssessmentControl =
+      GetEvidenceFoldersByAssessmentControlResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetEvidenceFoldersByAssessmentControlResponse'
+            Prelude.<$> ( x
+                            Data..?> "evidenceFolders"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    GetEvidenceFoldersByAssessmentControl
+  where
+  hashWithSalt
+    _salt
+    GetEvidenceFoldersByAssessmentControl' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` assessmentId
+        `Prelude.hashWithSalt` controlSetId
+        `Prelude.hashWithSalt` controlId
+
+instance
+  Prelude.NFData
+    GetEvidenceFoldersByAssessmentControl
+  where
+  rnf GetEvidenceFoldersByAssessmentControl' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf controlSetId
+      `Prelude.seq` Prelude.rnf controlId
+
+instance
+  Data.ToHeaders
+    GetEvidenceFoldersByAssessmentControl
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToPath
+    GetEvidenceFoldersByAssessmentControl
+  where
+  toPath GetEvidenceFoldersByAssessmentControl' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/evidenceFolders-by-assessment-control/",
+        Data.toBS controlSetId,
+        "/",
+        Data.toBS controlId
+      ]
+
+instance
+  Data.ToQuery
+    GetEvidenceFoldersByAssessmentControl
+  where
+  toQuery GetEvidenceFoldersByAssessmentControl' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newGetEvidenceFoldersByAssessmentControlResponse' smart constructor.
+data GetEvidenceFoldersByAssessmentControlResponse = GetEvidenceFoldersByAssessmentControlResponse'
+  { -- | The list of evidence folders that the
+    -- @GetEvidenceFoldersByAssessmentControl@ API returned.
+    evidenceFolders :: Prelude.Maybe [AssessmentEvidenceFolder],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetEvidenceFoldersByAssessmentControlResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'evidenceFolders', 'getEvidenceFoldersByAssessmentControlResponse_evidenceFolders' - The list of evidence folders that the
+-- @GetEvidenceFoldersByAssessmentControl@ API returned.
+--
+-- 'nextToken', 'getEvidenceFoldersByAssessmentControlResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'getEvidenceFoldersByAssessmentControlResponse_httpStatus' - The response's http status code.
+newGetEvidenceFoldersByAssessmentControlResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetEvidenceFoldersByAssessmentControlResponse
+newGetEvidenceFoldersByAssessmentControlResponse
+  pHttpStatus_ =
+    GetEvidenceFoldersByAssessmentControlResponse'
+      { evidenceFolders =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The list of evidence folders that the
+-- @GetEvidenceFoldersByAssessmentControl@ API returned.
+getEvidenceFoldersByAssessmentControlResponse_evidenceFolders :: Lens.Lens' GetEvidenceFoldersByAssessmentControlResponse (Prelude.Maybe [AssessmentEvidenceFolder])
+getEvidenceFoldersByAssessmentControlResponse_evidenceFolders = Lens.lens (\GetEvidenceFoldersByAssessmentControlResponse' {evidenceFolders} -> evidenceFolders) (\s@GetEvidenceFoldersByAssessmentControlResponse' {} a -> s {evidenceFolders = a} :: GetEvidenceFoldersByAssessmentControlResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+getEvidenceFoldersByAssessmentControlResponse_nextToken :: Lens.Lens' GetEvidenceFoldersByAssessmentControlResponse (Prelude.Maybe Prelude.Text)
+getEvidenceFoldersByAssessmentControlResponse_nextToken = Lens.lens (\GetEvidenceFoldersByAssessmentControlResponse' {nextToken} -> nextToken) (\s@GetEvidenceFoldersByAssessmentControlResponse' {} a -> s {nextToken = a} :: GetEvidenceFoldersByAssessmentControlResponse)
+
+-- | The response's http status code.
+getEvidenceFoldersByAssessmentControlResponse_httpStatus :: Lens.Lens' GetEvidenceFoldersByAssessmentControlResponse Prelude.Int
+getEvidenceFoldersByAssessmentControlResponse_httpStatus = Lens.lens (\GetEvidenceFoldersByAssessmentControlResponse' {httpStatus} -> httpStatus) (\s@GetEvidenceFoldersByAssessmentControlResponse' {} a -> s {httpStatus = a} :: GetEvidenceFoldersByAssessmentControlResponse)
+
+instance
+  Prelude.NFData
+    GetEvidenceFoldersByAssessmentControlResponse
+  where
+  rnf
+    GetEvidenceFoldersByAssessmentControlResponse' {..} =
+      Prelude.rnf evidenceFolders
+        `Prelude.seq` Prelude.rnf nextToken
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetInsights.hs b/gen/Amazonka/AuditManager/GetInsights.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetInsights.hs
@@ -0,0 +1,138 @@
+{-# 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.AuditManager.GetInsights
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the latest analytics data for all your current active assessments.
+module Amazonka.AuditManager.GetInsights
+  ( -- * Creating a Request
+    GetInsights (..),
+    newGetInsights,
+
+    -- * Destructuring the Response
+    GetInsightsResponse (..),
+    newGetInsightsResponse,
+
+    -- * Response Lenses
+    getInsightsResponse_insights,
+    getInsightsResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetInsights' smart constructor.
+data GetInsights = GetInsights'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetInsights' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newGetInsights ::
+  GetInsights
+newGetInsights = GetInsights'
+
+instance Core.AWSRequest GetInsights where
+  type AWSResponse GetInsights = GetInsightsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetInsightsResponse'
+            Prelude.<$> (x Data..?> "insights")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetInsights where
+  hashWithSalt _salt _ =
+    _salt `Prelude.hashWithSalt` ()
+
+instance Prelude.NFData GetInsights where
+  rnf _ = ()
+
+instance Data.ToHeaders GetInsights where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetInsights where
+  toPath = Prelude.const "/insights"
+
+instance Data.ToQuery GetInsights where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetInsightsResponse' smart constructor.
+data GetInsightsResponse = GetInsightsResponse'
+  { -- | The analytics data that the @GetInsights@ API returned.
+    insights :: Prelude.Maybe Insights,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetInsightsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'insights', 'getInsightsResponse_insights' - The analytics data that the @GetInsights@ API returned.
+--
+-- 'httpStatus', 'getInsightsResponse_httpStatus' - The response's http status code.
+newGetInsightsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetInsightsResponse
+newGetInsightsResponse pHttpStatus_ =
+  GetInsightsResponse'
+    { insights = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The analytics data that the @GetInsights@ API returned.
+getInsightsResponse_insights :: Lens.Lens' GetInsightsResponse (Prelude.Maybe Insights)
+getInsightsResponse_insights = Lens.lens (\GetInsightsResponse' {insights} -> insights) (\s@GetInsightsResponse' {} a -> s {insights = a} :: GetInsightsResponse)
+
+-- | The response's http status code.
+getInsightsResponse_httpStatus :: Lens.Lens' GetInsightsResponse Prelude.Int
+getInsightsResponse_httpStatus = Lens.lens (\GetInsightsResponse' {httpStatus} -> httpStatus) (\s@GetInsightsResponse' {} a -> s {httpStatus = a} :: GetInsightsResponse)
+
+instance Prelude.NFData GetInsightsResponse where
+  rnf GetInsightsResponse' {..} =
+    Prelude.rnf insights
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetInsightsByAssessment.hs b/gen/Amazonka/AuditManager/GetInsightsByAssessment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetInsightsByAssessment.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.AuditManager.GetInsightsByAssessment
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the latest analytics data for a specific active assessment.
+module Amazonka.AuditManager.GetInsightsByAssessment
+  ( -- * Creating a Request
+    GetInsightsByAssessment (..),
+    newGetInsightsByAssessment,
+
+    -- * Request Lenses
+    getInsightsByAssessment_assessmentId,
+
+    -- * Destructuring the Response
+    GetInsightsByAssessmentResponse (..),
+    newGetInsightsByAssessmentResponse,
+
+    -- * Response Lenses
+    getInsightsByAssessmentResponse_insights,
+    getInsightsByAssessmentResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetInsightsByAssessment' smart constructor.
+data GetInsightsByAssessment = GetInsightsByAssessment'
+  { -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetInsightsByAssessment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'getInsightsByAssessment_assessmentId' - The unique identifier for the assessment.
+newGetInsightsByAssessment ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  GetInsightsByAssessment
+newGetInsightsByAssessment pAssessmentId_ =
+  GetInsightsByAssessment'
+    { assessmentId =
+        pAssessmentId_
+    }
+
+-- | The unique identifier for the assessment.
+getInsightsByAssessment_assessmentId :: Lens.Lens' GetInsightsByAssessment Prelude.Text
+getInsightsByAssessment_assessmentId = Lens.lens (\GetInsightsByAssessment' {assessmentId} -> assessmentId) (\s@GetInsightsByAssessment' {} a -> s {assessmentId = a} :: GetInsightsByAssessment)
+
+instance Core.AWSRequest GetInsightsByAssessment where
+  type
+    AWSResponse GetInsightsByAssessment =
+      GetInsightsByAssessmentResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetInsightsByAssessmentResponse'
+            Prelude.<$> (x Data..?> "insights")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetInsightsByAssessment where
+  hashWithSalt _salt GetInsightsByAssessment' {..} =
+    _salt `Prelude.hashWithSalt` assessmentId
+
+instance Prelude.NFData GetInsightsByAssessment where
+  rnf GetInsightsByAssessment' {..} =
+    Prelude.rnf assessmentId
+
+instance Data.ToHeaders GetInsightsByAssessment where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetInsightsByAssessment where
+  toPath GetInsightsByAssessment' {..} =
+    Prelude.mconcat
+      ["/insights/assessments/", Data.toBS assessmentId]
+
+instance Data.ToQuery GetInsightsByAssessment where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetInsightsByAssessmentResponse' smart constructor.
+data GetInsightsByAssessmentResponse = GetInsightsByAssessmentResponse'
+  { -- | The assessment analytics data that the @GetInsightsByAssessment@ API
+    -- returned.
+    insights :: Prelude.Maybe InsightsByAssessment,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetInsightsByAssessmentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'insights', 'getInsightsByAssessmentResponse_insights' - The assessment analytics data that the @GetInsightsByAssessment@ API
+-- returned.
+--
+-- 'httpStatus', 'getInsightsByAssessmentResponse_httpStatus' - The response's http status code.
+newGetInsightsByAssessmentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetInsightsByAssessmentResponse
+newGetInsightsByAssessmentResponse pHttpStatus_ =
+  GetInsightsByAssessmentResponse'
+    { insights =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The assessment analytics data that the @GetInsightsByAssessment@ API
+-- returned.
+getInsightsByAssessmentResponse_insights :: Lens.Lens' GetInsightsByAssessmentResponse (Prelude.Maybe InsightsByAssessment)
+getInsightsByAssessmentResponse_insights = Lens.lens (\GetInsightsByAssessmentResponse' {insights} -> insights) (\s@GetInsightsByAssessmentResponse' {} a -> s {insights = a} :: GetInsightsByAssessmentResponse)
+
+-- | The response's http status code.
+getInsightsByAssessmentResponse_httpStatus :: Lens.Lens' GetInsightsByAssessmentResponse Prelude.Int
+getInsightsByAssessmentResponse_httpStatus = Lens.lens (\GetInsightsByAssessmentResponse' {httpStatus} -> httpStatus) (\s@GetInsightsByAssessmentResponse' {} a -> s {httpStatus = a} :: GetInsightsByAssessmentResponse)
+
+instance
+  Prelude.NFData
+    GetInsightsByAssessmentResponse
+  where
+  rnf GetInsightsByAssessmentResponse' {..} =
+    Prelude.rnf insights
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetOrganizationAdminAccount.hs b/gen/Amazonka/AuditManager/GetOrganizationAdminAccount.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetOrganizationAdminAccount.hs
@@ -0,0 +1,159 @@
+{-# 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.AuditManager.GetOrganizationAdminAccount
+-- 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 name of the delegated Amazon Web Services administrator
+-- account for the organization.
+module Amazonka.AuditManager.GetOrganizationAdminAccount
+  ( -- * Creating a Request
+    GetOrganizationAdminAccount (..),
+    newGetOrganizationAdminAccount,
+
+    -- * Destructuring the Response
+    GetOrganizationAdminAccountResponse (..),
+    newGetOrganizationAdminAccountResponse,
+
+    -- * Response Lenses
+    getOrganizationAdminAccountResponse_adminAccountId,
+    getOrganizationAdminAccountResponse_organizationId,
+    getOrganizationAdminAccountResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetOrganizationAdminAccount' smart constructor.
+data GetOrganizationAdminAccount = GetOrganizationAdminAccount'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetOrganizationAdminAccount' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newGetOrganizationAdminAccount ::
+  GetOrganizationAdminAccount
+newGetOrganizationAdminAccount =
+  GetOrganizationAdminAccount'
+
+instance Core.AWSRequest GetOrganizationAdminAccount where
+  type
+    AWSResponse GetOrganizationAdminAccount =
+      GetOrganizationAdminAccountResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetOrganizationAdminAccountResponse'
+            Prelude.<$> (x Data..?> "adminAccountId")
+            Prelude.<*> (x Data..?> "organizationId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetOrganizationAdminAccount where
+  hashWithSalt _salt _ =
+    _salt `Prelude.hashWithSalt` ()
+
+instance Prelude.NFData GetOrganizationAdminAccount where
+  rnf _ = ()
+
+instance Data.ToHeaders GetOrganizationAdminAccount where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetOrganizationAdminAccount where
+  toPath =
+    Prelude.const "/account/organizationAdminAccount"
+
+instance Data.ToQuery GetOrganizationAdminAccount where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetOrganizationAdminAccountResponse' smart constructor.
+data GetOrganizationAdminAccountResponse = GetOrganizationAdminAccountResponse'
+  { -- | The identifier for the administrator account.
+    adminAccountId :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the organization.
+    organizationId :: 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 'GetOrganizationAdminAccountResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'adminAccountId', 'getOrganizationAdminAccountResponse_adminAccountId' - The identifier for the administrator account.
+--
+-- 'organizationId', 'getOrganizationAdminAccountResponse_organizationId' - The identifier for the organization.
+--
+-- 'httpStatus', 'getOrganizationAdminAccountResponse_httpStatus' - The response's http status code.
+newGetOrganizationAdminAccountResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetOrganizationAdminAccountResponse
+newGetOrganizationAdminAccountResponse pHttpStatus_ =
+  GetOrganizationAdminAccountResponse'
+    { adminAccountId =
+        Prelude.Nothing,
+      organizationId = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The identifier for the administrator account.
+getOrganizationAdminAccountResponse_adminAccountId :: Lens.Lens' GetOrganizationAdminAccountResponse (Prelude.Maybe Prelude.Text)
+getOrganizationAdminAccountResponse_adminAccountId = Lens.lens (\GetOrganizationAdminAccountResponse' {adminAccountId} -> adminAccountId) (\s@GetOrganizationAdminAccountResponse' {} a -> s {adminAccountId = a} :: GetOrganizationAdminAccountResponse)
+
+-- | The identifier for the organization.
+getOrganizationAdminAccountResponse_organizationId :: Lens.Lens' GetOrganizationAdminAccountResponse (Prelude.Maybe Prelude.Text)
+getOrganizationAdminAccountResponse_organizationId = Lens.lens (\GetOrganizationAdminAccountResponse' {organizationId} -> organizationId) (\s@GetOrganizationAdminAccountResponse' {} a -> s {organizationId = a} :: GetOrganizationAdminAccountResponse)
+
+-- | The response's http status code.
+getOrganizationAdminAccountResponse_httpStatus :: Lens.Lens' GetOrganizationAdminAccountResponse Prelude.Int
+getOrganizationAdminAccountResponse_httpStatus = Lens.lens (\GetOrganizationAdminAccountResponse' {httpStatus} -> httpStatus) (\s@GetOrganizationAdminAccountResponse' {} a -> s {httpStatus = a} :: GetOrganizationAdminAccountResponse)
+
+instance
+  Prelude.NFData
+    GetOrganizationAdminAccountResponse
+  where
+  rnf GetOrganizationAdminAccountResponse' {..} =
+    Prelude.rnf adminAccountId
+      `Prelude.seq` Prelude.rnf organizationId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetServicesInScope.hs b/gen/Amazonka/AuditManager/GetServicesInScope.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetServicesInScope.hs
@@ -0,0 +1,149 @@
+{-# 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.AuditManager.GetServicesInScope
+-- 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 all of the Amazon Web Services that you can choose to
+-- include in your assessment. When you
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_CreateAssessment.html create an assessment>,
+-- specify which of these services you want to include to narrow the
+-- assessment\'s
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_Scope.html scope>.
+module Amazonka.AuditManager.GetServicesInScope
+  ( -- * Creating a Request
+    GetServicesInScope (..),
+    newGetServicesInScope,
+
+    -- * Destructuring the Response
+    GetServicesInScopeResponse (..),
+    newGetServicesInScopeResponse,
+
+    -- * Response Lenses
+    getServicesInScopeResponse_serviceMetadata,
+    getServicesInScopeResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetServicesInScope' smart constructor.
+data GetServicesInScope = GetServicesInScope'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetServicesInScope' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newGetServicesInScope ::
+  GetServicesInScope
+newGetServicesInScope = GetServicesInScope'
+
+instance Core.AWSRequest GetServicesInScope where
+  type
+    AWSResponse GetServicesInScope =
+      GetServicesInScopeResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetServicesInScopeResponse'
+            Prelude.<$> ( x
+                            Data..?> "serviceMetadata"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetServicesInScope where
+  hashWithSalt _salt _ =
+    _salt `Prelude.hashWithSalt` ()
+
+instance Prelude.NFData GetServicesInScope where
+  rnf _ = ()
+
+instance Data.ToHeaders GetServicesInScope where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetServicesInScope where
+  toPath = Prelude.const "/services"
+
+instance Data.ToQuery GetServicesInScope where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetServicesInScopeResponse' smart constructor.
+data GetServicesInScopeResponse = GetServicesInScopeResponse'
+  { -- | The metadata that\'s associated with the Amazon Web Service.
+    serviceMetadata :: Prelude.Maybe [ServiceMetadata],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetServicesInScopeResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'serviceMetadata', 'getServicesInScopeResponse_serviceMetadata' - The metadata that\'s associated with the Amazon Web Service.
+--
+-- 'httpStatus', 'getServicesInScopeResponse_httpStatus' - The response's http status code.
+newGetServicesInScopeResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetServicesInScopeResponse
+newGetServicesInScopeResponse pHttpStatus_ =
+  GetServicesInScopeResponse'
+    { serviceMetadata =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The metadata that\'s associated with the Amazon Web Service.
+getServicesInScopeResponse_serviceMetadata :: Lens.Lens' GetServicesInScopeResponse (Prelude.Maybe [ServiceMetadata])
+getServicesInScopeResponse_serviceMetadata = Lens.lens (\GetServicesInScopeResponse' {serviceMetadata} -> serviceMetadata) (\s@GetServicesInScopeResponse' {} a -> s {serviceMetadata = a} :: GetServicesInScopeResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+getServicesInScopeResponse_httpStatus :: Lens.Lens' GetServicesInScopeResponse Prelude.Int
+getServicesInScopeResponse_httpStatus = Lens.lens (\GetServicesInScopeResponse' {httpStatus} -> httpStatus) (\s@GetServicesInScopeResponse' {} a -> s {httpStatus = a} :: GetServicesInScopeResponse)
+
+instance Prelude.NFData GetServicesInScopeResponse where
+  rnf GetServicesInScopeResponse' {..} =
+    Prelude.rnf serviceMetadata
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/GetSettings.hs b/gen/Amazonka/AuditManager/GetSettings.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/GetSettings.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.GetSettings
+-- 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 settings for the specified Amazon Web Services account.
+module Amazonka.AuditManager.GetSettings
+  ( -- * Creating a Request
+    GetSettings (..),
+    newGetSettings,
+
+    -- * Request Lenses
+    getSettings_attribute,
+
+    -- * Destructuring the Response
+    GetSettingsResponse (..),
+    newGetSettingsResponse,
+
+    -- * Response Lenses
+    getSettingsResponse_settings,
+    getSettingsResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newGetSettings' smart constructor.
+data GetSettings = GetSettings'
+  { -- | The list of setting attribute enum values.
+    attribute :: SettingAttribute
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetSettings' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'attribute', 'getSettings_attribute' - The list of setting attribute enum values.
+newGetSettings ::
+  -- | 'attribute'
+  SettingAttribute ->
+  GetSettings
+newGetSettings pAttribute_ =
+  GetSettings' {attribute = pAttribute_}
+
+-- | The list of setting attribute enum values.
+getSettings_attribute :: Lens.Lens' GetSettings SettingAttribute
+getSettings_attribute = Lens.lens (\GetSettings' {attribute} -> attribute) (\s@GetSettings' {} a -> s {attribute = a} :: GetSettings)
+
+instance Core.AWSRequest GetSettings where
+  type AWSResponse GetSettings = GetSettingsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          GetSettingsResponse'
+            Prelude.<$> (x Data..?> "settings")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable GetSettings where
+  hashWithSalt _salt GetSettings' {..} =
+    _salt `Prelude.hashWithSalt` attribute
+
+instance Prelude.NFData GetSettings where
+  rnf GetSettings' {..} = Prelude.rnf attribute
+
+instance Data.ToHeaders GetSettings where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath GetSettings where
+  toPath GetSettings' {..} =
+    Prelude.mconcat ["/settings/", Data.toBS attribute]
+
+instance Data.ToQuery GetSettings where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newGetSettingsResponse' smart constructor.
+data GetSettingsResponse = GetSettingsResponse'
+  { -- | The settings object that holds all supported Audit Manager settings.
+    settings :: Prelude.Maybe Settings,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'GetSettingsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'settings', 'getSettingsResponse_settings' - The settings object that holds all supported Audit Manager settings.
+--
+-- 'httpStatus', 'getSettingsResponse_httpStatus' - The response's http status code.
+newGetSettingsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  GetSettingsResponse
+newGetSettingsResponse pHttpStatus_ =
+  GetSettingsResponse'
+    { settings = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The settings object that holds all supported Audit Manager settings.
+getSettingsResponse_settings :: Lens.Lens' GetSettingsResponse (Prelude.Maybe Settings)
+getSettingsResponse_settings = Lens.lens (\GetSettingsResponse' {settings} -> settings) (\s@GetSettingsResponse' {} a -> s {settings = a} :: GetSettingsResponse)
+
+-- | The response's http status code.
+getSettingsResponse_httpStatus :: Lens.Lens' GetSettingsResponse Prelude.Int
+getSettingsResponse_httpStatus = Lens.lens (\GetSettingsResponse' {httpStatus} -> httpStatus) (\s@GetSettingsResponse' {} a -> s {httpStatus = a} :: GetSettingsResponse)
+
+instance Prelude.NFData GetSettingsResponse where
+  rnf GetSettingsResponse' {..} =
+    Prelude.rnf settings
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/Lens.hs b/gen/Amazonka/AuditManager/Lens.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Lens.hs
@@ -0,0 +1,958 @@
+{-# 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.AuditManager.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.AuditManager.Lens
+  ( -- * Operations
+
+    -- ** AssociateAssessmentReportEvidenceFolder
+    associateAssessmentReportEvidenceFolder_assessmentId,
+    associateAssessmentReportEvidenceFolder_evidenceFolderId,
+    associateAssessmentReportEvidenceFolderResponse_httpStatus,
+
+    -- ** BatchAssociateAssessmentReportEvidence
+    batchAssociateAssessmentReportEvidence_assessmentId,
+    batchAssociateAssessmentReportEvidence_evidenceFolderId,
+    batchAssociateAssessmentReportEvidence_evidenceIds,
+    batchAssociateAssessmentReportEvidenceResponse_errors,
+    batchAssociateAssessmentReportEvidenceResponse_evidenceIds,
+    batchAssociateAssessmentReportEvidenceResponse_httpStatus,
+
+    -- ** BatchCreateDelegationByAssessment
+    batchCreateDelegationByAssessment_createDelegationRequests,
+    batchCreateDelegationByAssessment_assessmentId,
+    batchCreateDelegationByAssessmentResponse_delegations,
+    batchCreateDelegationByAssessmentResponse_errors,
+    batchCreateDelegationByAssessmentResponse_httpStatus,
+
+    -- ** BatchDeleteDelegationByAssessment
+    batchDeleteDelegationByAssessment_delegationIds,
+    batchDeleteDelegationByAssessment_assessmentId,
+    batchDeleteDelegationByAssessmentResponse_errors,
+    batchDeleteDelegationByAssessmentResponse_httpStatus,
+
+    -- ** BatchDisassociateAssessmentReportEvidence
+    batchDisassociateAssessmentReportEvidence_assessmentId,
+    batchDisassociateAssessmentReportEvidence_evidenceFolderId,
+    batchDisassociateAssessmentReportEvidence_evidenceIds,
+    batchDisassociateAssessmentReportEvidenceResponse_errors,
+    batchDisassociateAssessmentReportEvidenceResponse_evidenceIds,
+    batchDisassociateAssessmentReportEvidenceResponse_httpStatus,
+
+    -- ** BatchImportEvidenceToAssessmentControl
+    batchImportEvidenceToAssessmentControl_assessmentId,
+    batchImportEvidenceToAssessmentControl_controlSetId,
+    batchImportEvidenceToAssessmentControl_controlId,
+    batchImportEvidenceToAssessmentControl_manualEvidence,
+    batchImportEvidenceToAssessmentControlResponse_errors,
+    batchImportEvidenceToAssessmentControlResponse_httpStatus,
+
+    -- ** CreateAssessment
+    createAssessment_description,
+    createAssessment_tags,
+    createAssessment_name,
+    createAssessment_assessmentReportsDestination,
+    createAssessment_scope,
+    createAssessment_roles,
+    createAssessment_frameworkId,
+    createAssessmentResponse_assessment,
+    createAssessmentResponse_httpStatus,
+
+    -- ** CreateAssessmentFramework
+    createAssessmentFramework_complianceType,
+    createAssessmentFramework_description,
+    createAssessmentFramework_tags,
+    createAssessmentFramework_name,
+    createAssessmentFramework_controlSets,
+    createAssessmentFrameworkResponse_framework,
+    createAssessmentFrameworkResponse_httpStatus,
+
+    -- ** CreateAssessmentReport
+    createAssessmentReport_description,
+    createAssessmentReport_queryStatement,
+    createAssessmentReport_name,
+    createAssessmentReport_assessmentId,
+    createAssessmentReportResponse_assessmentReport,
+    createAssessmentReportResponse_httpStatus,
+
+    -- ** CreateControl
+    createControl_actionPlanInstructions,
+    createControl_actionPlanTitle,
+    createControl_description,
+    createControl_tags,
+    createControl_testingInformation,
+    createControl_name,
+    createControl_controlMappingSources,
+    createControlResponse_control,
+    createControlResponse_httpStatus,
+
+    -- ** DeleteAssessment
+    deleteAssessment_assessmentId,
+    deleteAssessmentResponse_httpStatus,
+
+    -- ** DeleteAssessmentFramework
+    deleteAssessmentFramework_frameworkId,
+    deleteAssessmentFrameworkResponse_httpStatus,
+
+    -- ** DeleteAssessmentFrameworkShare
+    deleteAssessmentFrameworkShare_requestId,
+    deleteAssessmentFrameworkShare_requestType,
+    deleteAssessmentFrameworkShareResponse_httpStatus,
+
+    -- ** DeleteAssessmentReport
+    deleteAssessmentReport_assessmentId,
+    deleteAssessmentReport_assessmentReportId,
+    deleteAssessmentReportResponse_httpStatus,
+
+    -- ** DeleteControl
+    deleteControl_controlId,
+    deleteControlResponse_httpStatus,
+
+    -- ** DeregisterAccount
+    deregisterAccountResponse_status,
+    deregisterAccountResponse_httpStatus,
+
+    -- ** DeregisterOrganizationAdminAccount
+    deregisterOrganizationAdminAccount_adminAccountId,
+    deregisterOrganizationAdminAccountResponse_httpStatus,
+
+    -- ** DisassociateAssessmentReportEvidenceFolder
+    disassociateAssessmentReportEvidenceFolder_assessmentId,
+    disassociateAssessmentReportEvidenceFolder_evidenceFolderId,
+    disassociateAssessmentReportEvidenceFolderResponse_httpStatus,
+
+    -- ** GetAccountStatus
+    getAccountStatusResponse_status,
+    getAccountStatusResponse_httpStatus,
+
+    -- ** GetAssessment
+    getAssessment_assessmentId,
+    getAssessmentResponse_assessment,
+    getAssessmentResponse_userRole,
+    getAssessmentResponse_httpStatus,
+
+    -- ** GetAssessmentFramework
+    getAssessmentFramework_frameworkId,
+    getAssessmentFrameworkResponse_framework,
+    getAssessmentFrameworkResponse_httpStatus,
+
+    -- ** GetAssessmentReportUrl
+    getAssessmentReportUrl_assessmentReportId,
+    getAssessmentReportUrl_assessmentId,
+    getAssessmentReportUrlResponse_preSignedUrl,
+    getAssessmentReportUrlResponse_httpStatus,
+
+    -- ** GetChangeLogs
+    getChangeLogs_controlId,
+    getChangeLogs_controlSetId,
+    getChangeLogs_maxResults,
+    getChangeLogs_nextToken,
+    getChangeLogs_assessmentId,
+    getChangeLogsResponse_changeLogs,
+    getChangeLogsResponse_nextToken,
+    getChangeLogsResponse_httpStatus,
+
+    -- ** GetControl
+    getControl_controlId,
+    getControlResponse_control,
+    getControlResponse_httpStatus,
+
+    -- ** GetDelegations
+    getDelegations_maxResults,
+    getDelegations_nextToken,
+    getDelegationsResponse_delegations,
+    getDelegationsResponse_nextToken,
+    getDelegationsResponse_httpStatus,
+
+    -- ** GetEvidence
+    getEvidence_assessmentId,
+    getEvidence_controlSetId,
+    getEvidence_evidenceFolderId,
+    getEvidence_evidenceId,
+    getEvidenceResponse_evidence,
+    getEvidenceResponse_httpStatus,
+
+    -- ** GetEvidenceByEvidenceFolder
+    getEvidenceByEvidenceFolder_maxResults,
+    getEvidenceByEvidenceFolder_nextToken,
+    getEvidenceByEvidenceFolder_assessmentId,
+    getEvidenceByEvidenceFolder_controlSetId,
+    getEvidenceByEvidenceFolder_evidenceFolderId,
+    getEvidenceByEvidenceFolderResponse_evidence,
+    getEvidenceByEvidenceFolderResponse_nextToken,
+    getEvidenceByEvidenceFolderResponse_httpStatus,
+
+    -- ** GetEvidenceFolder
+    getEvidenceFolder_assessmentId,
+    getEvidenceFolder_controlSetId,
+    getEvidenceFolder_evidenceFolderId,
+    getEvidenceFolderResponse_evidenceFolder,
+    getEvidenceFolderResponse_httpStatus,
+
+    -- ** GetEvidenceFoldersByAssessment
+    getEvidenceFoldersByAssessment_maxResults,
+    getEvidenceFoldersByAssessment_nextToken,
+    getEvidenceFoldersByAssessment_assessmentId,
+    getEvidenceFoldersByAssessmentResponse_evidenceFolders,
+    getEvidenceFoldersByAssessmentResponse_nextToken,
+    getEvidenceFoldersByAssessmentResponse_httpStatus,
+
+    -- ** GetEvidenceFoldersByAssessmentControl
+    getEvidenceFoldersByAssessmentControl_maxResults,
+    getEvidenceFoldersByAssessmentControl_nextToken,
+    getEvidenceFoldersByAssessmentControl_assessmentId,
+    getEvidenceFoldersByAssessmentControl_controlSetId,
+    getEvidenceFoldersByAssessmentControl_controlId,
+    getEvidenceFoldersByAssessmentControlResponse_evidenceFolders,
+    getEvidenceFoldersByAssessmentControlResponse_nextToken,
+    getEvidenceFoldersByAssessmentControlResponse_httpStatus,
+
+    -- ** GetInsights
+    getInsightsResponse_insights,
+    getInsightsResponse_httpStatus,
+
+    -- ** GetInsightsByAssessment
+    getInsightsByAssessment_assessmentId,
+    getInsightsByAssessmentResponse_insights,
+    getInsightsByAssessmentResponse_httpStatus,
+
+    -- ** GetOrganizationAdminAccount
+    getOrganizationAdminAccountResponse_adminAccountId,
+    getOrganizationAdminAccountResponse_organizationId,
+    getOrganizationAdminAccountResponse_httpStatus,
+
+    -- ** GetServicesInScope
+    getServicesInScopeResponse_serviceMetadata,
+    getServicesInScopeResponse_httpStatus,
+
+    -- ** GetSettings
+    getSettings_attribute,
+    getSettingsResponse_settings,
+    getSettingsResponse_httpStatus,
+
+    -- ** ListAssessmentControlInsightsByControlDomain
+    listAssessmentControlInsightsByControlDomain_maxResults,
+    listAssessmentControlInsightsByControlDomain_nextToken,
+    listAssessmentControlInsightsByControlDomain_controlDomainId,
+    listAssessmentControlInsightsByControlDomain_assessmentId,
+    listAssessmentControlInsightsByControlDomainResponse_controlInsightsByAssessment,
+    listAssessmentControlInsightsByControlDomainResponse_nextToken,
+    listAssessmentControlInsightsByControlDomainResponse_httpStatus,
+
+    -- ** ListAssessmentFrameworkShareRequests
+    listAssessmentFrameworkShareRequests_maxResults,
+    listAssessmentFrameworkShareRequests_nextToken,
+    listAssessmentFrameworkShareRequests_requestType,
+    listAssessmentFrameworkShareRequestsResponse_assessmentFrameworkShareRequests,
+    listAssessmentFrameworkShareRequestsResponse_nextToken,
+    listAssessmentFrameworkShareRequestsResponse_httpStatus,
+
+    -- ** ListAssessmentFrameworks
+    listAssessmentFrameworks_maxResults,
+    listAssessmentFrameworks_nextToken,
+    listAssessmentFrameworks_frameworkType,
+    listAssessmentFrameworksResponse_frameworkMetadataList,
+    listAssessmentFrameworksResponse_nextToken,
+    listAssessmentFrameworksResponse_httpStatus,
+
+    -- ** ListAssessmentReports
+    listAssessmentReports_maxResults,
+    listAssessmentReports_nextToken,
+    listAssessmentReportsResponse_assessmentReports,
+    listAssessmentReportsResponse_nextToken,
+    listAssessmentReportsResponse_httpStatus,
+
+    -- ** ListAssessments
+    listAssessments_maxResults,
+    listAssessments_nextToken,
+    listAssessments_status,
+    listAssessmentsResponse_assessmentMetadata,
+    listAssessmentsResponse_nextToken,
+    listAssessmentsResponse_httpStatus,
+
+    -- ** ListControlDomainInsights
+    listControlDomainInsights_maxResults,
+    listControlDomainInsights_nextToken,
+    listControlDomainInsightsResponse_controlDomainInsights,
+    listControlDomainInsightsResponse_nextToken,
+    listControlDomainInsightsResponse_httpStatus,
+
+    -- ** ListControlDomainInsightsByAssessment
+    listControlDomainInsightsByAssessment_maxResults,
+    listControlDomainInsightsByAssessment_nextToken,
+    listControlDomainInsightsByAssessment_assessmentId,
+    listControlDomainInsightsByAssessmentResponse_controlDomainInsights,
+    listControlDomainInsightsByAssessmentResponse_nextToken,
+    listControlDomainInsightsByAssessmentResponse_httpStatus,
+
+    -- ** ListControlInsightsByControlDomain
+    listControlInsightsByControlDomain_maxResults,
+    listControlInsightsByControlDomain_nextToken,
+    listControlInsightsByControlDomain_controlDomainId,
+    listControlInsightsByControlDomainResponse_controlInsightsMetadata,
+    listControlInsightsByControlDomainResponse_nextToken,
+    listControlInsightsByControlDomainResponse_httpStatus,
+
+    -- ** ListControls
+    listControls_maxResults,
+    listControls_nextToken,
+    listControls_controlType,
+    listControlsResponse_controlMetadataList,
+    listControlsResponse_nextToken,
+    listControlsResponse_httpStatus,
+
+    -- ** ListKeywordsForDataSource
+    listKeywordsForDataSource_maxResults,
+    listKeywordsForDataSource_nextToken,
+    listKeywordsForDataSource_source,
+    listKeywordsForDataSourceResponse_keywords,
+    listKeywordsForDataSourceResponse_nextToken,
+    listKeywordsForDataSourceResponse_httpStatus,
+
+    -- ** ListNotifications
+    listNotifications_maxResults,
+    listNotifications_nextToken,
+    listNotificationsResponse_nextToken,
+    listNotificationsResponse_notifications,
+    listNotificationsResponse_httpStatus,
+
+    -- ** ListTagsForResource
+    listTagsForResource_resourceArn,
+    listTagsForResourceResponse_tags,
+    listTagsForResourceResponse_httpStatus,
+
+    -- ** RegisterAccount
+    registerAccount_delegatedAdminAccount,
+    registerAccount_kmsKey,
+    registerAccountResponse_status,
+    registerAccountResponse_httpStatus,
+
+    -- ** RegisterOrganizationAdminAccount
+    registerOrganizationAdminAccount_adminAccountId,
+    registerOrganizationAdminAccountResponse_adminAccountId,
+    registerOrganizationAdminAccountResponse_organizationId,
+    registerOrganizationAdminAccountResponse_httpStatus,
+
+    -- ** StartAssessmentFrameworkShare
+    startAssessmentFrameworkShare_comment,
+    startAssessmentFrameworkShare_frameworkId,
+    startAssessmentFrameworkShare_destinationAccount,
+    startAssessmentFrameworkShare_destinationRegion,
+    startAssessmentFrameworkShareResponse_assessmentFrameworkShareRequest,
+    startAssessmentFrameworkShareResponse_httpStatus,
+
+    -- ** TagResource
+    tagResource_resourceArn,
+    tagResource_tags,
+    tagResourceResponse_httpStatus,
+
+    -- ** UntagResource
+    untagResource_resourceArn,
+    untagResource_tagKeys,
+    untagResourceResponse_httpStatus,
+
+    -- ** UpdateAssessment
+    updateAssessment_assessmentDescription,
+    updateAssessment_assessmentName,
+    updateAssessment_assessmentReportsDestination,
+    updateAssessment_roles,
+    updateAssessment_assessmentId,
+    updateAssessment_scope,
+    updateAssessmentResponse_assessment,
+    updateAssessmentResponse_httpStatus,
+
+    -- ** UpdateAssessmentControl
+    updateAssessmentControl_commentBody,
+    updateAssessmentControl_controlStatus,
+    updateAssessmentControl_assessmentId,
+    updateAssessmentControl_controlSetId,
+    updateAssessmentControl_controlId,
+    updateAssessmentControlResponse_control,
+    updateAssessmentControlResponse_httpStatus,
+
+    -- ** UpdateAssessmentControlSetStatus
+    updateAssessmentControlSetStatus_assessmentId,
+    updateAssessmentControlSetStatus_controlSetId,
+    updateAssessmentControlSetStatus_status,
+    updateAssessmentControlSetStatus_comment,
+    updateAssessmentControlSetStatusResponse_controlSet,
+    updateAssessmentControlSetStatusResponse_httpStatus,
+
+    -- ** UpdateAssessmentFramework
+    updateAssessmentFramework_complianceType,
+    updateAssessmentFramework_description,
+    updateAssessmentFramework_frameworkId,
+    updateAssessmentFramework_name,
+    updateAssessmentFramework_controlSets,
+    updateAssessmentFrameworkResponse_framework,
+    updateAssessmentFrameworkResponse_httpStatus,
+
+    -- ** UpdateAssessmentFrameworkShare
+    updateAssessmentFrameworkShare_requestId,
+    updateAssessmentFrameworkShare_requestType,
+    updateAssessmentFrameworkShare_action,
+    updateAssessmentFrameworkShareResponse_assessmentFrameworkShareRequest,
+    updateAssessmentFrameworkShareResponse_httpStatus,
+
+    -- ** UpdateAssessmentStatus
+    updateAssessmentStatus_assessmentId,
+    updateAssessmentStatus_status,
+    updateAssessmentStatusResponse_assessment,
+    updateAssessmentStatusResponse_httpStatus,
+
+    -- ** UpdateControl
+    updateControl_actionPlanInstructions,
+    updateControl_actionPlanTitle,
+    updateControl_description,
+    updateControl_testingInformation,
+    updateControl_controlId,
+    updateControl_name,
+    updateControl_controlMappingSources,
+    updateControlResponse_control,
+    updateControlResponse_httpStatus,
+
+    -- ** UpdateSettings
+    updateSettings_defaultAssessmentReportsDestination,
+    updateSettings_defaultProcessOwners,
+    updateSettings_deregistrationPolicy,
+    updateSettings_evidenceFinderEnabled,
+    updateSettings_kmsKey,
+    updateSettings_snsTopic,
+    updateSettingsResponse_settings,
+    updateSettingsResponse_httpStatus,
+
+    -- ** ValidateAssessmentReportIntegrity
+    validateAssessmentReportIntegrity_s3RelativePath,
+    validateAssessmentReportIntegrityResponse_signatureAlgorithm,
+    validateAssessmentReportIntegrityResponse_signatureDateTime,
+    validateAssessmentReportIntegrityResponse_signatureKeyId,
+    validateAssessmentReportIntegrityResponse_signatureValid,
+    validateAssessmentReportIntegrityResponse_validationErrors,
+    validateAssessmentReportIntegrityResponse_httpStatus,
+
+    -- * Types
+
+    -- ** AWSAccount
+    aWSAccount_emailAddress,
+    aWSAccount_id,
+    aWSAccount_name,
+
+    -- ** AWSService
+    aWSService_serviceName,
+
+    -- ** Assessment
+    assessment_arn,
+    assessment_awsAccount,
+    assessment_framework,
+    assessment_metadata,
+    assessment_tags,
+
+    -- ** AssessmentControl
+    assessmentControl_assessmentReportEvidenceCount,
+    assessmentControl_comments,
+    assessmentControl_description,
+    assessmentControl_evidenceCount,
+    assessmentControl_evidenceSources,
+    assessmentControl_id,
+    assessmentControl_name,
+    assessmentControl_response,
+    assessmentControl_status,
+
+    -- ** AssessmentControlSet
+    assessmentControlSet_controls,
+    assessmentControlSet_delegations,
+    assessmentControlSet_description,
+    assessmentControlSet_id,
+    assessmentControlSet_manualEvidenceCount,
+    assessmentControlSet_roles,
+    assessmentControlSet_status,
+    assessmentControlSet_systemEvidenceCount,
+
+    -- ** AssessmentEvidenceFolder
+    assessmentEvidenceFolder_assessmentId,
+    assessmentEvidenceFolder_assessmentReportSelectionCount,
+    assessmentEvidenceFolder_author,
+    assessmentEvidenceFolder_controlId,
+    assessmentEvidenceFolder_controlName,
+    assessmentEvidenceFolder_controlSetId,
+    assessmentEvidenceFolder_dataSource,
+    assessmentEvidenceFolder_date,
+    assessmentEvidenceFolder_evidenceAwsServiceSourceCount,
+    assessmentEvidenceFolder_evidenceByTypeComplianceCheckCount,
+    assessmentEvidenceFolder_evidenceByTypeComplianceCheckIssuesCount,
+    assessmentEvidenceFolder_evidenceByTypeConfigurationDataCount,
+    assessmentEvidenceFolder_evidenceByTypeManualCount,
+    assessmentEvidenceFolder_evidenceByTypeUserActivityCount,
+    assessmentEvidenceFolder_evidenceResourcesIncludedCount,
+    assessmentEvidenceFolder_id,
+    assessmentEvidenceFolder_name,
+    assessmentEvidenceFolder_totalEvidence,
+
+    -- ** AssessmentFramework
+    assessmentFramework_arn,
+    assessmentFramework_controlSets,
+    assessmentFramework_id,
+    assessmentFramework_metadata,
+
+    -- ** AssessmentFrameworkMetadata
+    assessmentFrameworkMetadata_arn,
+    assessmentFrameworkMetadata_complianceType,
+    assessmentFrameworkMetadata_controlSetsCount,
+    assessmentFrameworkMetadata_controlsCount,
+    assessmentFrameworkMetadata_createdAt,
+    assessmentFrameworkMetadata_description,
+    assessmentFrameworkMetadata_id,
+    assessmentFrameworkMetadata_lastUpdatedAt,
+    assessmentFrameworkMetadata_logo,
+    assessmentFrameworkMetadata_name,
+    assessmentFrameworkMetadata_type,
+
+    -- ** AssessmentFrameworkShareRequest
+    assessmentFrameworkShareRequest_comment,
+    assessmentFrameworkShareRequest_complianceType,
+    assessmentFrameworkShareRequest_creationTime,
+    assessmentFrameworkShareRequest_customControlsCount,
+    assessmentFrameworkShareRequest_destinationAccount,
+    assessmentFrameworkShareRequest_destinationRegion,
+    assessmentFrameworkShareRequest_expirationTime,
+    assessmentFrameworkShareRequest_frameworkDescription,
+    assessmentFrameworkShareRequest_frameworkId,
+    assessmentFrameworkShareRequest_frameworkName,
+    assessmentFrameworkShareRequest_id,
+    assessmentFrameworkShareRequest_lastUpdated,
+    assessmentFrameworkShareRequest_sourceAccount,
+    assessmentFrameworkShareRequest_standardControlsCount,
+    assessmentFrameworkShareRequest_status,
+
+    -- ** AssessmentMetadata
+    assessmentMetadata_assessmentReportsDestination,
+    assessmentMetadata_complianceType,
+    assessmentMetadata_creationTime,
+    assessmentMetadata_delegations,
+    assessmentMetadata_description,
+    assessmentMetadata_id,
+    assessmentMetadata_lastUpdated,
+    assessmentMetadata_name,
+    assessmentMetadata_roles,
+    assessmentMetadata_scope,
+    assessmentMetadata_status,
+
+    -- ** AssessmentMetadataItem
+    assessmentMetadataItem_complianceType,
+    assessmentMetadataItem_creationTime,
+    assessmentMetadataItem_delegations,
+    assessmentMetadataItem_id,
+    assessmentMetadataItem_lastUpdated,
+    assessmentMetadataItem_name,
+    assessmentMetadataItem_roles,
+    assessmentMetadataItem_status,
+
+    -- ** AssessmentReport
+    assessmentReport_assessmentId,
+    assessmentReport_assessmentName,
+    assessmentReport_author,
+    assessmentReport_awsAccountId,
+    assessmentReport_creationTime,
+    assessmentReport_description,
+    assessmentReport_id,
+    assessmentReport_name,
+    assessmentReport_status,
+
+    -- ** AssessmentReportEvidenceError
+    assessmentReportEvidenceError_errorCode,
+    assessmentReportEvidenceError_errorMessage,
+    assessmentReportEvidenceError_evidenceId,
+
+    -- ** AssessmentReportMetadata
+    assessmentReportMetadata_assessmentId,
+    assessmentReportMetadata_assessmentName,
+    assessmentReportMetadata_author,
+    assessmentReportMetadata_creationTime,
+    assessmentReportMetadata_description,
+    assessmentReportMetadata_id,
+    assessmentReportMetadata_name,
+    assessmentReportMetadata_status,
+
+    -- ** AssessmentReportsDestination
+    assessmentReportsDestination_destination,
+    assessmentReportsDestination_destinationType,
+
+    -- ** BatchCreateDelegationByAssessmentError
+    batchCreateDelegationByAssessmentError_createDelegationRequest,
+    batchCreateDelegationByAssessmentError_errorCode,
+    batchCreateDelegationByAssessmentError_errorMessage,
+
+    -- ** BatchDeleteDelegationByAssessmentError
+    batchDeleteDelegationByAssessmentError_delegationId,
+    batchDeleteDelegationByAssessmentError_errorCode,
+    batchDeleteDelegationByAssessmentError_errorMessage,
+
+    -- ** BatchImportEvidenceToAssessmentControlError
+    batchImportEvidenceToAssessmentControlError_errorCode,
+    batchImportEvidenceToAssessmentControlError_errorMessage,
+    batchImportEvidenceToAssessmentControlError_manualEvidence,
+
+    -- ** ChangeLog
+    changeLog_action,
+    changeLog_createdAt,
+    changeLog_createdBy,
+    changeLog_objectName,
+    changeLog_objectType,
+
+    -- ** Control
+    control_actionPlanInstructions,
+    control_actionPlanTitle,
+    control_arn,
+    control_controlMappingSources,
+    control_controlSources,
+    control_createdAt,
+    control_createdBy,
+    control_description,
+    control_id,
+    control_lastUpdatedAt,
+    control_lastUpdatedBy,
+    control_name,
+    control_tags,
+    control_testingInformation,
+    control_type,
+
+    -- ** ControlComment
+    controlComment_authorName,
+    controlComment_commentBody,
+    controlComment_postedDate,
+
+    -- ** ControlDomainInsights
+    controlDomainInsights_controlsCountByNoncompliantEvidence,
+    controlDomainInsights_evidenceInsights,
+    controlDomainInsights_id,
+    controlDomainInsights_lastUpdated,
+    controlDomainInsights_name,
+    controlDomainInsights_totalControlsCount,
+
+    -- ** ControlInsightsMetadataByAssessmentItem
+    controlInsightsMetadataByAssessmentItem_controlSetName,
+    controlInsightsMetadataByAssessmentItem_evidenceInsights,
+    controlInsightsMetadataByAssessmentItem_id,
+    controlInsightsMetadataByAssessmentItem_lastUpdated,
+    controlInsightsMetadataByAssessmentItem_name,
+
+    -- ** ControlInsightsMetadataItem
+    controlInsightsMetadataItem_evidenceInsights,
+    controlInsightsMetadataItem_id,
+    controlInsightsMetadataItem_lastUpdated,
+    controlInsightsMetadataItem_name,
+
+    -- ** ControlMappingSource
+    controlMappingSource_sourceDescription,
+    controlMappingSource_sourceFrequency,
+    controlMappingSource_sourceId,
+    controlMappingSource_sourceKeyword,
+    controlMappingSource_sourceName,
+    controlMappingSource_sourceSetUpOption,
+    controlMappingSource_sourceType,
+    controlMappingSource_troubleshootingText,
+
+    -- ** ControlMetadata
+    controlMetadata_arn,
+    controlMetadata_controlSources,
+    controlMetadata_createdAt,
+    controlMetadata_id,
+    controlMetadata_lastUpdatedAt,
+    controlMetadata_name,
+
+    -- ** ControlSet
+    controlSet_controls,
+    controlSet_id,
+    controlSet_name,
+
+    -- ** CreateAssessmentFrameworkControl
+    createAssessmentFrameworkControl_id,
+
+    -- ** CreateAssessmentFrameworkControlSet
+    createAssessmentFrameworkControlSet_controls,
+    createAssessmentFrameworkControlSet_name,
+
+    -- ** CreateControlMappingSource
+    createControlMappingSource_sourceDescription,
+    createControlMappingSource_sourceFrequency,
+    createControlMappingSource_sourceKeyword,
+    createControlMappingSource_sourceName,
+    createControlMappingSource_sourceSetUpOption,
+    createControlMappingSource_sourceType,
+    createControlMappingSource_troubleshootingText,
+
+    -- ** CreateDelegationRequest
+    createDelegationRequest_comment,
+    createDelegationRequest_controlSetId,
+    createDelegationRequest_roleArn,
+    createDelegationRequest_roleType,
+
+    -- ** Delegation
+    delegation_assessmentId,
+    delegation_assessmentName,
+    delegation_comment,
+    delegation_controlSetId,
+    delegation_createdBy,
+    delegation_creationTime,
+    delegation_id,
+    delegation_lastUpdated,
+    delegation_roleArn,
+    delegation_roleType,
+    delegation_status,
+
+    -- ** DelegationMetadata
+    delegationMetadata_assessmentId,
+    delegationMetadata_assessmentName,
+    delegationMetadata_controlSetName,
+    delegationMetadata_creationTime,
+    delegationMetadata_id,
+    delegationMetadata_roleArn,
+    delegationMetadata_status,
+
+    -- ** DeregistrationPolicy
+    deregistrationPolicy_deleteResources,
+
+    -- ** Evidence
+    evidence_assessmentReportSelection,
+    evidence_attributes,
+    evidence_awsAccountId,
+    evidence_awsOrganization,
+    evidence_complianceCheck,
+    evidence_dataSource,
+    evidence_eventName,
+    evidence_eventSource,
+    evidence_evidenceAwsAccountId,
+    evidence_evidenceByType,
+    evidence_evidenceFolderId,
+    evidence_iamId,
+    evidence_id,
+    evidence_resourcesIncluded,
+    evidence_time,
+
+    -- ** EvidenceFinderEnablement
+    evidenceFinderEnablement_backfillStatus,
+    evidenceFinderEnablement_enablementStatus,
+    evidenceFinderEnablement_error,
+    evidenceFinderEnablement_eventDataStoreArn,
+
+    -- ** EvidenceInsights
+    evidenceInsights_compliantEvidenceCount,
+    evidenceInsights_inconclusiveEvidenceCount,
+    evidenceInsights_noncompliantEvidenceCount,
+
+    -- ** Framework
+    framework_arn,
+    framework_complianceType,
+    framework_controlSets,
+    framework_controlSources,
+    framework_createdAt,
+    framework_createdBy,
+    framework_description,
+    framework_id,
+    framework_lastUpdatedAt,
+    framework_lastUpdatedBy,
+    framework_logo,
+    framework_name,
+    framework_tags,
+    framework_type,
+
+    -- ** FrameworkMetadata
+    frameworkMetadata_complianceType,
+    frameworkMetadata_description,
+    frameworkMetadata_logo,
+    frameworkMetadata_name,
+
+    -- ** Insights
+    insights_activeAssessmentsCount,
+    insights_assessmentControlsCountByNoncompliantEvidence,
+    insights_compliantEvidenceCount,
+    insights_inconclusiveEvidenceCount,
+    insights_lastUpdated,
+    insights_noncompliantEvidenceCount,
+    insights_totalAssessmentControlsCount,
+
+    -- ** InsightsByAssessment
+    insightsByAssessment_assessmentControlsCountByNoncompliantEvidence,
+    insightsByAssessment_compliantEvidenceCount,
+    insightsByAssessment_inconclusiveEvidenceCount,
+    insightsByAssessment_lastUpdated,
+    insightsByAssessment_noncompliantEvidenceCount,
+    insightsByAssessment_totalAssessmentControlsCount,
+
+    -- ** ManualEvidence
+    manualEvidence_s3ResourcePath,
+
+    -- ** Notification
+    notification_assessmentId,
+    notification_assessmentName,
+    notification_controlSetId,
+    notification_controlSetName,
+    notification_description,
+    notification_eventTime,
+    notification_id,
+    notification_source,
+
+    -- ** Resource
+    resource_arn,
+    resource_complianceCheck,
+    resource_value,
+
+    -- ** Role
+    role_roleType,
+    role_roleArn,
+
+    -- ** Scope
+    scope_awsAccounts,
+    scope_awsServices,
+
+    -- ** ServiceMetadata
+    serviceMetadata_category,
+    serviceMetadata_description,
+    serviceMetadata_displayName,
+    serviceMetadata_name,
+
+    -- ** Settings
+    settings_defaultAssessmentReportsDestination,
+    settings_defaultProcessOwners,
+    settings_deregistrationPolicy,
+    settings_evidenceFinderEnablement,
+    settings_isAwsOrgEnabled,
+    settings_kmsKey,
+    settings_snsTopic,
+
+    -- ** SourceKeyword
+    sourceKeyword_keywordInputType,
+    sourceKeyword_keywordValue,
+
+    -- ** URL
+    url_hyperlinkName,
+    url_link,
+
+    -- ** UpdateAssessmentFrameworkControlSet
+    updateAssessmentFrameworkControlSet_id,
+    updateAssessmentFrameworkControlSet_name,
+    updateAssessmentFrameworkControlSet_controls,
+  )
+where
+
+import Amazonka.AuditManager.AssociateAssessmentReportEvidenceFolder
+import Amazonka.AuditManager.BatchAssociateAssessmentReportEvidence
+import Amazonka.AuditManager.BatchCreateDelegationByAssessment
+import Amazonka.AuditManager.BatchDeleteDelegationByAssessment
+import Amazonka.AuditManager.BatchDisassociateAssessmentReportEvidence
+import Amazonka.AuditManager.BatchImportEvidenceToAssessmentControl
+import Amazonka.AuditManager.CreateAssessment
+import Amazonka.AuditManager.CreateAssessmentFramework
+import Amazonka.AuditManager.CreateAssessmentReport
+import Amazonka.AuditManager.CreateControl
+import Amazonka.AuditManager.DeleteAssessment
+import Amazonka.AuditManager.DeleteAssessmentFramework
+import Amazonka.AuditManager.DeleteAssessmentFrameworkShare
+import Amazonka.AuditManager.DeleteAssessmentReport
+import Amazonka.AuditManager.DeleteControl
+import Amazonka.AuditManager.DeregisterAccount
+import Amazonka.AuditManager.DeregisterOrganizationAdminAccount
+import Amazonka.AuditManager.DisassociateAssessmentReportEvidenceFolder
+import Amazonka.AuditManager.GetAccountStatus
+import Amazonka.AuditManager.GetAssessment
+import Amazonka.AuditManager.GetAssessmentFramework
+import Amazonka.AuditManager.GetAssessmentReportUrl
+import Amazonka.AuditManager.GetChangeLogs
+import Amazonka.AuditManager.GetControl
+import Amazonka.AuditManager.GetDelegations
+import Amazonka.AuditManager.GetEvidence
+import Amazonka.AuditManager.GetEvidenceByEvidenceFolder
+import Amazonka.AuditManager.GetEvidenceFolder
+import Amazonka.AuditManager.GetEvidenceFoldersByAssessment
+import Amazonka.AuditManager.GetEvidenceFoldersByAssessmentControl
+import Amazonka.AuditManager.GetInsights
+import Amazonka.AuditManager.GetInsightsByAssessment
+import Amazonka.AuditManager.GetOrganizationAdminAccount
+import Amazonka.AuditManager.GetServicesInScope
+import Amazonka.AuditManager.GetSettings
+import Amazonka.AuditManager.ListAssessmentControlInsightsByControlDomain
+import Amazonka.AuditManager.ListAssessmentFrameworkShareRequests
+import Amazonka.AuditManager.ListAssessmentFrameworks
+import Amazonka.AuditManager.ListAssessmentReports
+import Amazonka.AuditManager.ListAssessments
+import Amazonka.AuditManager.ListControlDomainInsights
+import Amazonka.AuditManager.ListControlDomainInsightsByAssessment
+import Amazonka.AuditManager.ListControlInsightsByControlDomain
+import Amazonka.AuditManager.ListControls
+import Amazonka.AuditManager.ListKeywordsForDataSource
+import Amazonka.AuditManager.ListNotifications
+import Amazonka.AuditManager.ListTagsForResource
+import Amazonka.AuditManager.RegisterAccount
+import Amazonka.AuditManager.RegisterOrganizationAdminAccount
+import Amazonka.AuditManager.StartAssessmentFrameworkShare
+import Amazonka.AuditManager.TagResource
+import Amazonka.AuditManager.Types.AWSAccount
+import Amazonka.AuditManager.Types.AWSService
+import Amazonka.AuditManager.Types.Assessment
+import Amazonka.AuditManager.Types.AssessmentControl
+import Amazonka.AuditManager.Types.AssessmentControlSet
+import Amazonka.AuditManager.Types.AssessmentEvidenceFolder
+import Amazonka.AuditManager.Types.AssessmentFramework
+import Amazonka.AuditManager.Types.AssessmentFrameworkMetadata
+import Amazonka.AuditManager.Types.AssessmentFrameworkShareRequest
+import Amazonka.AuditManager.Types.AssessmentMetadata
+import Amazonka.AuditManager.Types.AssessmentMetadataItem
+import Amazonka.AuditManager.Types.AssessmentReport
+import Amazonka.AuditManager.Types.AssessmentReportEvidenceError
+import Amazonka.AuditManager.Types.AssessmentReportMetadata
+import Amazonka.AuditManager.Types.AssessmentReportsDestination
+import Amazonka.AuditManager.Types.BatchCreateDelegationByAssessmentError
+import Amazonka.AuditManager.Types.BatchDeleteDelegationByAssessmentError
+import Amazonka.AuditManager.Types.BatchImportEvidenceToAssessmentControlError
+import Amazonka.AuditManager.Types.ChangeLog
+import Amazonka.AuditManager.Types.Control
+import Amazonka.AuditManager.Types.ControlComment
+import Amazonka.AuditManager.Types.ControlDomainInsights
+import Amazonka.AuditManager.Types.ControlInsightsMetadataByAssessmentItem
+import Amazonka.AuditManager.Types.ControlInsightsMetadataItem
+import Amazonka.AuditManager.Types.ControlMappingSource
+import Amazonka.AuditManager.Types.ControlMetadata
+import Amazonka.AuditManager.Types.ControlSet
+import Amazonka.AuditManager.Types.CreateAssessmentFrameworkControl
+import Amazonka.AuditManager.Types.CreateAssessmentFrameworkControlSet
+import Amazonka.AuditManager.Types.CreateControlMappingSource
+import Amazonka.AuditManager.Types.CreateDelegationRequest
+import Amazonka.AuditManager.Types.Delegation
+import Amazonka.AuditManager.Types.DelegationMetadata
+import Amazonka.AuditManager.Types.DeregistrationPolicy
+import Amazonka.AuditManager.Types.Evidence
+import Amazonka.AuditManager.Types.EvidenceFinderEnablement
+import Amazonka.AuditManager.Types.EvidenceInsights
+import Amazonka.AuditManager.Types.Framework
+import Amazonka.AuditManager.Types.FrameworkMetadata
+import Amazonka.AuditManager.Types.Insights
+import Amazonka.AuditManager.Types.InsightsByAssessment
+import Amazonka.AuditManager.Types.ManualEvidence
+import Amazonka.AuditManager.Types.Notification
+import Amazonka.AuditManager.Types.Resource
+import Amazonka.AuditManager.Types.Role
+import Amazonka.AuditManager.Types.Scope
+import Amazonka.AuditManager.Types.ServiceMetadata
+import Amazonka.AuditManager.Types.Settings
+import Amazonka.AuditManager.Types.SourceKeyword
+import Amazonka.AuditManager.Types.URL
+import Amazonka.AuditManager.Types.UpdateAssessmentFrameworkControlSet
+import Amazonka.AuditManager.UntagResource
+import Amazonka.AuditManager.UpdateAssessment
+import Amazonka.AuditManager.UpdateAssessmentControl
+import Amazonka.AuditManager.UpdateAssessmentControlSetStatus
+import Amazonka.AuditManager.UpdateAssessmentFramework
+import Amazonka.AuditManager.UpdateAssessmentFrameworkShare
+import Amazonka.AuditManager.UpdateAssessmentStatus
+import Amazonka.AuditManager.UpdateControl
+import Amazonka.AuditManager.UpdateSettings
+import Amazonka.AuditManager.ValidateAssessmentReportIntegrity
diff --git a/gen/Amazonka/AuditManager/ListAssessmentControlInsightsByControlDomain.hs b/gen/Amazonka/AuditManager/ListAssessmentControlInsightsByControlDomain.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ListAssessmentControlInsightsByControlDomain.hs
@@ -0,0 +1,267 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.ListAssessmentControlInsightsByControlDomain
+-- 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 the latest analytics data for controls within a specific control
+-- domain and a specific active assessment.
+--
+-- Control insights are listed only if the control belongs to the control
+-- domain and assessment that was specified. Moreover, the control must
+-- have collected evidence on the @lastUpdated@ date of
+-- @controlInsightsByAssessment@. If neither of these conditions are met,
+-- no data is listed for that control.
+module Amazonka.AuditManager.ListAssessmentControlInsightsByControlDomain
+  ( -- * Creating a Request
+    ListAssessmentControlInsightsByControlDomain (..),
+    newListAssessmentControlInsightsByControlDomain,
+
+    -- * Request Lenses
+    listAssessmentControlInsightsByControlDomain_maxResults,
+    listAssessmentControlInsightsByControlDomain_nextToken,
+    listAssessmentControlInsightsByControlDomain_controlDomainId,
+    listAssessmentControlInsightsByControlDomain_assessmentId,
+
+    -- * Destructuring the Response
+    ListAssessmentControlInsightsByControlDomainResponse (..),
+    newListAssessmentControlInsightsByControlDomainResponse,
+
+    -- * Response Lenses
+    listAssessmentControlInsightsByControlDomainResponse_controlInsightsByAssessment,
+    listAssessmentControlInsightsByControlDomainResponse_nextToken,
+    listAssessmentControlInsightsByControlDomainResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newListAssessmentControlInsightsByControlDomain' smart constructor.
+data ListAssessmentControlInsightsByControlDomain = ListAssessmentControlInsightsByControlDomain'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the control domain.
+    controlDomainId :: Prelude.Text,
+    -- | The unique identifier for the active assessment.
+    assessmentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListAssessmentControlInsightsByControlDomain' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAssessmentControlInsightsByControlDomain_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'listAssessmentControlInsightsByControlDomain_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'controlDomainId', 'listAssessmentControlInsightsByControlDomain_controlDomainId' - The unique identifier for the control domain.
+--
+-- 'assessmentId', 'listAssessmentControlInsightsByControlDomain_assessmentId' - The unique identifier for the active assessment.
+newListAssessmentControlInsightsByControlDomain ::
+  -- | 'controlDomainId'
+  Prelude.Text ->
+  -- | 'assessmentId'
+  Prelude.Text ->
+  ListAssessmentControlInsightsByControlDomain
+newListAssessmentControlInsightsByControlDomain
+  pControlDomainId_
+  pAssessmentId_ =
+    ListAssessmentControlInsightsByControlDomain'
+      { maxResults =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        controlDomainId =
+          pControlDomainId_,
+        assessmentId = pAssessmentId_
+      }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+listAssessmentControlInsightsByControlDomain_maxResults :: Lens.Lens' ListAssessmentControlInsightsByControlDomain (Prelude.Maybe Prelude.Natural)
+listAssessmentControlInsightsByControlDomain_maxResults = Lens.lens (\ListAssessmentControlInsightsByControlDomain' {maxResults} -> maxResults) (\s@ListAssessmentControlInsightsByControlDomain' {} a -> s {maxResults = a} :: ListAssessmentControlInsightsByControlDomain)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listAssessmentControlInsightsByControlDomain_nextToken :: Lens.Lens' ListAssessmentControlInsightsByControlDomain (Prelude.Maybe Prelude.Text)
+listAssessmentControlInsightsByControlDomain_nextToken = Lens.lens (\ListAssessmentControlInsightsByControlDomain' {nextToken} -> nextToken) (\s@ListAssessmentControlInsightsByControlDomain' {} a -> s {nextToken = a} :: ListAssessmentControlInsightsByControlDomain)
+
+-- | The unique identifier for the control domain.
+listAssessmentControlInsightsByControlDomain_controlDomainId :: Lens.Lens' ListAssessmentControlInsightsByControlDomain Prelude.Text
+listAssessmentControlInsightsByControlDomain_controlDomainId = Lens.lens (\ListAssessmentControlInsightsByControlDomain' {controlDomainId} -> controlDomainId) (\s@ListAssessmentControlInsightsByControlDomain' {} a -> s {controlDomainId = a} :: ListAssessmentControlInsightsByControlDomain)
+
+-- | The unique identifier for the active assessment.
+listAssessmentControlInsightsByControlDomain_assessmentId :: Lens.Lens' ListAssessmentControlInsightsByControlDomain Prelude.Text
+listAssessmentControlInsightsByControlDomain_assessmentId = Lens.lens (\ListAssessmentControlInsightsByControlDomain' {assessmentId} -> assessmentId) (\s@ListAssessmentControlInsightsByControlDomain' {} a -> s {assessmentId = a} :: ListAssessmentControlInsightsByControlDomain)
+
+instance
+  Core.AWSRequest
+    ListAssessmentControlInsightsByControlDomain
+  where
+  type
+    AWSResponse
+      ListAssessmentControlInsightsByControlDomain =
+      ListAssessmentControlInsightsByControlDomainResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListAssessmentControlInsightsByControlDomainResponse'
+            Prelude.<$> ( x
+                            Data..?> "controlInsightsByAssessment"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListAssessmentControlInsightsByControlDomain
+  where
+  hashWithSalt
+    _salt
+    ListAssessmentControlInsightsByControlDomain' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` controlDomainId
+        `Prelude.hashWithSalt` assessmentId
+
+instance
+  Prelude.NFData
+    ListAssessmentControlInsightsByControlDomain
+  where
+  rnf ListAssessmentControlInsightsByControlDomain' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf controlDomainId
+      `Prelude.seq` Prelude.rnf assessmentId
+
+instance
+  Data.ToHeaders
+    ListAssessmentControlInsightsByControlDomain
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToPath
+    ListAssessmentControlInsightsByControlDomain
+  where
+  toPath =
+    Prelude.const "/insights/controls-by-assessment"
+
+instance
+  Data.ToQuery
+    ListAssessmentControlInsightsByControlDomain
+  where
+  toQuery
+    ListAssessmentControlInsightsByControlDomain' {..} =
+      Prelude.mconcat
+        [ "maxResults" Data.=: maxResults,
+          "nextToken" Data.=: nextToken,
+          "controlDomainId" Data.=: controlDomainId,
+          "assessmentId" Data.=: assessmentId
+        ]
+
+-- | /See:/ 'newListAssessmentControlInsightsByControlDomainResponse' smart constructor.
+data ListAssessmentControlInsightsByControlDomainResponse = ListAssessmentControlInsightsByControlDomainResponse'
+  { -- | The assessment control analytics data that the
+    -- @ListAssessmentControlInsightsByControlDomain@ API returned.
+    controlInsightsByAssessment :: Prelude.Maybe [ControlInsightsMetadataByAssessmentItem],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListAssessmentControlInsightsByControlDomainResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controlInsightsByAssessment', 'listAssessmentControlInsightsByControlDomainResponse_controlInsightsByAssessment' - The assessment control analytics data that the
+-- @ListAssessmentControlInsightsByControlDomain@ API returned.
+--
+-- 'nextToken', 'listAssessmentControlInsightsByControlDomainResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'listAssessmentControlInsightsByControlDomainResponse_httpStatus' - The response's http status code.
+newListAssessmentControlInsightsByControlDomainResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListAssessmentControlInsightsByControlDomainResponse
+newListAssessmentControlInsightsByControlDomainResponse
+  pHttpStatus_ =
+    ListAssessmentControlInsightsByControlDomainResponse'
+      { controlInsightsByAssessment =
+          Prelude.Nothing,
+        nextToken =
+          Prelude.Nothing,
+        httpStatus =
+          pHttpStatus_
+      }
+
+-- | The assessment control analytics data that the
+-- @ListAssessmentControlInsightsByControlDomain@ API returned.
+listAssessmentControlInsightsByControlDomainResponse_controlInsightsByAssessment :: Lens.Lens' ListAssessmentControlInsightsByControlDomainResponse (Prelude.Maybe [ControlInsightsMetadataByAssessmentItem])
+listAssessmentControlInsightsByControlDomainResponse_controlInsightsByAssessment = Lens.lens (\ListAssessmentControlInsightsByControlDomainResponse' {controlInsightsByAssessment} -> controlInsightsByAssessment) (\s@ListAssessmentControlInsightsByControlDomainResponse' {} a -> s {controlInsightsByAssessment = a} :: ListAssessmentControlInsightsByControlDomainResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listAssessmentControlInsightsByControlDomainResponse_nextToken :: Lens.Lens' ListAssessmentControlInsightsByControlDomainResponse (Prelude.Maybe Prelude.Text)
+listAssessmentControlInsightsByControlDomainResponse_nextToken = Lens.lens (\ListAssessmentControlInsightsByControlDomainResponse' {nextToken} -> nextToken) (\s@ListAssessmentControlInsightsByControlDomainResponse' {} a -> s {nextToken = a} :: ListAssessmentControlInsightsByControlDomainResponse)
+
+-- | The response's http status code.
+listAssessmentControlInsightsByControlDomainResponse_httpStatus :: Lens.Lens' ListAssessmentControlInsightsByControlDomainResponse Prelude.Int
+listAssessmentControlInsightsByControlDomainResponse_httpStatus = Lens.lens (\ListAssessmentControlInsightsByControlDomainResponse' {httpStatus} -> httpStatus) (\s@ListAssessmentControlInsightsByControlDomainResponse' {} a -> s {httpStatus = a} :: ListAssessmentControlInsightsByControlDomainResponse)
+
+instance
+  Prelude.NFData
+    ListAssessmentControlInsightsByControlDomainResponse
+  where
+  rnf
+    ListAssessmentControlInsightsByControlDomainResponse' {..} =
+      Prelude.rnf controlInsightsByAssessment
+        `Prelude.seq` Prelude.rnf nextToken
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/ListAssessmentFrameworkShareRequests.hs b/gen/Amazonka/AuditManager/ListAssessmentFrameworkShareRequests.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ListAssessmentFrameworkShareRequests.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.AuditManager.ListAssessmentFrameworkShareRequests
+-- 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 sent or received share requests for custom frameworks
+-- in Audit Manager.
+module Amazonka.AuditManager.ListAssessmentFrameworkShareRequests
+  ( -- * Creating a Request
+    ListAssessmentFrameworkShareRequests (..),
+    newListAssessmentFrameworkShareRequests,
+
+    -- * Request Lenses
+    listAssessmentFrameworkShareRequests_maxResults,
+    listAssessmentFrameworkShareRequests_nextToken,
+    listAssessmentFrameworkShareRequests_requestType,
+
+    -- * Destructuring the Response
+    ListAssessmentFrameworkShareRequestsResponse (..),
+    newListAssessmentFrameworkShareRequestsResponse,
+
+    -- * Response Lenses
+    listAssessmentFrameworkShareRequestsResponse_assessmentFrameworkShareRequests,
+    listAssessmentFrameworkShareRequestsResponse_nextToken,
+    listAssessmentFrameworkShareRequestsResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newListAssessmentFrameworkShareRequests' smart constructor.
+data ListAssessmentFrameworkShareRequests = ListAssessmentFrameworkShareRequests'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Specifies whether the share request is a sent request or a received
+    -- request.
+    requestType :: ShareRequestType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListAssessmentFrameworkShareRequests' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAssessmentFrameworkShareRequests_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'listAssessmentFrameworkShareRequests_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'requestType', 'listAssessmentFrameworkShareRequests_requestType' - Specifies whether the share request is a sent request or a received
+-- request.
+newListAssessmentFrameworkShareRequests ::
+  -- | 'requestType'
+  ShareRequestType ->
+  ListAssessmentFrameworkShareRequests
+newListAssessmentFrameworkShareRequests pRequestType_ =
+  ListAssessmentFrameworkShareRequests'
+    { maxResults =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      requestType = pRequestType_
+    }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+listAssessmentFrameworkShareRequests_maxResults :: Lens.Lens' ListAssessmentFrameworkShareRequests (Prelude.Maybe Prelude.Natural)
+listAssessmentFrameworkShareRequests_maxResults = Lens.lens (\ListAssessmentFrameworkShareRequests' {maxResults} -> maxResults) (\s@ListAssessmentFrameworkShareRequests' {} a -> s {maxResults = a} :: ListAssessmentFrameworkShareRequests)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listAssessmentFrameworkShareRequests_nextToken :: Lens.Lens' ListAssessmentFrameworkShareRequests (Prelude.Maybe Prelude.Text)
+listAssessmentFrameworkShareRequests_nextToken = Lens.lens (\ListAssessmentFrameworkShareRequests' {nextToken} -> nextToken) (\s@ListAssessmentFrameworkShareRequests' {} a -> s {nextToken = a} :: ListAssessmentFrameworkShareRequests)
+
+-- | Specifies whether the share request is a sent request or a received
+-- request.
+listAssessmentFrameworkShareRequests_requestType :: Lens.Lens' ListAssessmentFrameworkShareRequests ShareRequestType
+listAssessmentFrameworkShareRequests_requestType = Lens.lens (\ListAssessmentFrameworkShareRequests' {requestType} -> requestType) (\s@ListAssessmentFrameworkShareRequests' {} a -> s {requestType = a} :: ListAssessmentFrameworkShareRequests)
+
+instance
+  Core.AWSRequest
+    ListAssessmentFrameworkShareRequests
+  where
+  type
+    AWSResponse ListAssessmentFrameworkShareRequests =
+      ListAssessmentFrameworkShareRequestsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListAssessmentFrameworkShareRequestsResponse'
+            Prelude.<$> ( x
+                            Data..?> "assessmentFrameworkShareRequests"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListAssessmentFrameworkShareRequests
+  where
+  hashWithSalt
+    _salt
+    ListAssessmentFrameworkShareRequests' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` requestType
+
+instance
+  Prelude.NFData
+    ListAssessmentFrameworkShareRequests
+  where
+  rnf ListAssessmentFrameworkShareRequests' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf requestType
+
+instance
+  Data.ToHeaders
+    ListAssessmentFrameworkShareRequests
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToPath
+    ListAssessmentFrameworkShareRequests
+  where
+  toPath =
+    Prelude.const "/assessmentFrameworkShareRequests"
+
+instance
+  Data.ToQuery
+    ListAssessmentFrameworkShareRequests
+  where
+  toQuery ListAssessmentFrameworkShareRequests' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken,
+        "requestType" Data.=: requestType
+      ]
+
+-- | /See:/ 'newListAssessmentFrameworkShareRequestsResponse' smart constructor.
+data ListAssessmentFrameworkShareRequestsResponse = ListAssessmentFrameworkShareRequestsResponse'
+  { -- | The list of share requests that the
+    -- @ListAssessmentFrameworkShareRequests@ API returned.
+    assessmentFrameworkShareRequests :: Prelude.Maybe [AssessmentFrameworkShareRequest],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListAssessmentFrameworkShareRequestsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentFrameworkShareRequests', 'listAssessmentFrameworkShareRequestsResponse_assessmentFrameworkShareRequests' - The list of share requests that the
+-- @ListAssessmentFrameworkShareRequests@ API returned.
+--
+-- 'nextToken', 'listAssessmentFrameworkShareRequestsResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'listAssessmentFrameworkShareRequestsResponse_httpStatus' - The response's http status code.
+newListAssessmentFrameworkShareRequestsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListAssessmentFrameworkShareRequestsResponse
+newListAssessmentFrameworkShareRequestsResponse
+  pHttpStatus_ =
+    ListAssessmentFrameworkShareRequestsResponse'
+      { assessmentFrameworkShareRequests =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The list of share requests that the
+-- @ListAssessmentFrameworkShareRequests@ API returned.
+listAssessmentFrameworkShareRequestsResponse_assessmentFrameworkShareRequests :: Lens.Lens' ListAssessmentFrameworkShareRequestsResponse (Prelude.Maybe [AssessmentFrameworkShareRequest])
+listAssessmentFrameworkShareRequestsResponse_assessmentFrameworkShareRequests = Lens.lens (\ListAssessmentFrameworkShareRequestsResponse' {assessmentFrameworkShareRequests} -> assessmentFrameworkShareRequests) (\s@ListAssessmentFrameworkShareRequestsResponse' {} a -> s {assessmentFrameworkShareRequests = a} :: ListAssessmentFrameworkShareRequestsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listAssessmentFrameworkShareRequestsResponse_nextToken :: Lens.Lens' ListAssessmentFrameworkShareRequestsResponse (Prelude.Maybe Prelude.Text)
+listAssessmentFrameworkShareRequestsResponse_nextToken = Lens.lens (\ListAssessmentFrameworkShareRequestsResponse' {nextToken} -> nextToken) (\s@ListAssessmentFrameworkShareRequestsResponse' {} a -> s {nextToken = a} :: ListAssessmentFrameworkShareRequestsResponse)
+
+-- | The response's http status code.
+listAssessmentFrameworkShareRequestsResponse_httpStatus :: Lens.Lens' ListAssessmentFrameworkShareRequestsResponse Prelude.Int
+listAssessmentFrameworkShareRequestsResponse_httpStatus = Lens.lens (\ListAssessmentFrameworkShareRequestsResponse' {httpStatus} -> httpStatus) (\s@ListAssessmentFrameworkShareRequestsResponse' {} a -> s {httpStatus = a} :: ListAssessmentFrameworkShareRequestsResponse)
+
+instance
+  Prelude.NFData
+    ListAssessmentFrameworkShareRequestsResponse
+  where
+  rnf ListAssessmentFrameworkShareRequestsResponse' {..} =
+    Prelude.rnf assessmentFrameworkShareRequests
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/ListAssessmentFrameworks.hs b/gen/Amazonka/AuditManager/ListAssessmentFrameworks.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ListAssessmentFrameworks.hs
@@ -0,0 +1,216 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.ListAssessmentFrameworks
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a list of the frameworks that are available in the Audit Manager
+-- framework library.
+module Amazonka.AuditManager.ListAssessmentFrameworks
+  ( -- * Creating a Request
+    ListAssessmentFrameworks (..),
+    newListAssessmentFrameworks,
+
+    -- * Request Lenses
+    listAssessmentFrameworks_maxResults,
+    listAssessmentFrameworks_nextToken,
+    listAssessmentFrameworks_frameworkType,
+
+    -- * Destructuring the Response
+    ListAssessmentFrameworksResponse (..),
+    newListAssessmentFrameworksResponse,
+
+    -- * Response Lenses
+    listAssessmentFrameworksResponse_frameworkMetadataList,
+    listAssessmentFrameworksResponse_nextToken,
+    listAssessmentFrameworksResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newListAssessmentFrameworks' smart constructor.
+data ListAssessmentFrameworks = ListAssessmentFrameworks'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The type of framework, such as a standard framework or a custom
+    -- framework.
+    frameworkType :: FrameworkType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListAssessmentFrameworks' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAssessmentFrameworks_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'listAssessmentFrameworks_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'frameworkType', 'listAssessmentFrameworks_frameworkType' - The type of framework, such as a standard framework or a custom
+-- framework.
+newListAssessmentFrameworks ::
+  -- | 'frameworkType'
+  FrameworkType ->
+  ListAssessmentFrameworks
+newListAssessmentFrameworks pFrameworkType_ =
+  ListAssessmentFrameworks'
+    { maxResults =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      frameworkType = pFrameworkType_
+    }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+listAssessmentFrameworks_maxResults :: Lens.Lens' ListAssessmentFrameworks (Prelude.Maybe Prelude.Natural)
+listAssessmentFrameworks_maxResults = Lens.lens (\ListAssessmentFrameworks' {maxResults} -> maxResults) (\s@ListAssessmentFrameworks' {} a -> s {maxResults = a} :: ListAssessmentFrameworks)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listAssessmentFrameworks_nextToken :: Lens.Lens' ListAssessmentFrameworks (Prelude.Maybe Prelude.Text)
+listAssessmentFrameworks_nextToken = Lens.lens (\ListAssessmentFrameworks' {nextToken} -> nextToken) (\s@ListAssessmentFrameworks' {} a -> s {nextToken = a} :: ListAssessmentFrameworks)
+
+-- | The type of framework, such as a standard framework or a custom
+-- framework.
+listAssessmentFrameworks_frameworkType :: Lens.Lens' ListAssessmentFrameworks FrameworkType
+listAssessmentFrameworks_frameworkType = Lens.lens (\ListAssessmentFrameworks' {frameworkType} -> frameworkType) (\s@ListAssessmentFrameworks' {} a -> s {frameworkType = a} :: ListAssessmentFrameworks)
+
+instance Core.AWSRequest ListAssessmentFrameworks where
+  type
+    AWSResponse ListAssessmentFrameworks =
+      ListAssessmentFrameworksResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListAssessmentFrameworksResponse'
+            Prelude.<$> ( x
+                            Data..?> "frameworkMetadataList"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListAssessmentFrameworks where
+  hashWithSalt _salt ListAssessmentFrameworks' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` frameworkType
+
+instance Prelude.NFData ListAssessmentFrameworks where
+  rnf ListAssessmentFrameworks' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf frameworkType
+
+instance Data.ToHeaders ListAssessmentFrameworks where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListAssessmentFrameworks where
+  toPath = Prelude.const "/assessmentFrameworks"
+
+instance Data.ToQuery ListAssessmentFrameworks where
+  toQuery ListAssessmentFrameworks' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken,
+        "frameworkType" Data.=: frameworkType
+      ]
+
+-- | /See:/ 'newListAssessmentFrameworksResponse' smart constructor.
+data ListAssessmentFrameworksResponse = ListAssessmentFrameworksResponse'
+  { -- | The list of metadata objects for the framework.
+    frameworkMetadataList :: Prelude.Maybe [AssessmentFrameworkMetadata],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListAssessmentFrameworksResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'frameworkMetadataList', 'listAssessmentFrameworksResponse_frameworkMetadataList' - The list of metadata objects for the framework.
+--
+-- 'nextToken', 'listAssessmentFrameworksResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'listAssessmentFrameworksResponse_httpStatus' - The response's http status code.
+newListAssessmentFrameworksResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListAssessmentFrameworksResponse
+newListAssessmentFrameworksResponse pHttpStatus_ =
+  ListAssessmentFrameworksResponse'
+    { frameworkMetadataList =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The list of metadata objects for the framework.
+listAssessmentFrameworksResponse_frameworkMetadataList :: Lens.Lens' ListAssessmentFrameworksResponse (Prelude.Maybe [AssessmentFrameworkMetadata])
+listAssessmentFrameworksResponse_frameworkMetadataList = Lens.lens (\ListAssessmentFrameworksResponse' {frameworkMetadataList} -> frameworkMetadataList) (\s@ListAssessmentFrameworksResponse' {} a -> s {frameworkMetadataList = a} :: ListAssessmentFrameworksResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listAssessmentFrameworksResponse_nextToken :: Lens.Lens' ListAssessmentFrameworksResponse (Prelude.Maybe Prelude.Text)
+listAssessmentFrameworksResponse_nextToken = Lens.lens (\ListAssessmentFrameworksResponse' {nextToken} -> nextToken) (\s@ListAssessmentFrameworksResponse' {} a -> s {nextToken = a} :: ListAssessmentFrameworksResponse)
+
+-- | The response's http status code.
+listAssessmentFrameworksResponse_httpStatus :: Lens.Lens' ListAssessmentFrameworksResponse Prelude.Int
+listAssessmentFrameworksResponse_httpStatus = Lens.lens (\ListAssessmentFrameworksResponse' {httpStatus} -> httpStatus) (\s@ListAssessmentFrameworksResponse' {} a -> s {httpStatus = a} :: ListAssessmentFrameworksResponse)
+
+instance
+  Prelude.NFData
+    ListAssessmentFrameworksResponse
+  where
+  rnf ListAssessmentFrameworksResponse' {..} =
+    Prelude.rnf frameworkMetadataList
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/ListAssessmentReports.hs b/gen/Amazonka/AuditManager/ListAssessmentReports.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ListAssessmentReports.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.AuditManager.ListAssessmentReports
+-- 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 assessment reports created in Audit Manager.
+module Amazonka.AuditManager.ListAssessmentReports
+  ( -- * Creating a Request
+    ListAssessmentReports (..),
+    newListAssessmentReports,
+
+    -- * Request Lenses
+    listAssessmentReports_maxResults,
+    listAssessmentReports_nextToken,
+
+    -- * Destructuring the Response
+    ListAssessmentReportsResponse (..),
+    newListAssessmentReportsResponse,
+
+    -- * Response Lenses
+    listAssessmentReportsResponse_assessmentReports,
+    listAssessmentReportsResponse_nextToken,
+    listAssessmentReportsResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newListAssessmentReports' smart constructor.
+data ListAssessmentReports = ListAssessmentReports'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListAssessmentReports' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAssessmentReports_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'listAssessmentReports_nextToken' - The pagination token that\'s used to fetch the next set of results.
+newListAssessmentReports ::
+  ListAssessmentReports
+newListAssessmentReports =
+  ListAssessmentReports'
+    { maxResults =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+listAssessmentReports_maxResults :: Lens.Lens' ListAssessmentReports (Prelude.Maybe Prelude.Natural)
+listAssessmentReports_maxResults = Lens.lens (\ListAssessmentReports' {maxResults} -> maxResults) (\s@ListAssessmentReports' {} a -> s {maxResults = a} :: ListAssessmentReports)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listAssessmentReports_nextToken :: Lens.Lens' ListAssessmentReports (Prelude.Maybe Prelude.Text)
+listAssessmentReports_nextToken = Lens.lens (\ListAssessmentReports' {nextToken} -> nextToken) (\s@ListAssessmentReports' {} a -> s {nextToken = a} :: ListAssessmentReports)
+
+instance Core.AWSRequest ListAssessmentReports where
+  type
+    AWSResponse ListAssessmentReports =
+      ListAssessmentReportsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListAssessmentReportsResponse'
+            Prelude.<$> ( x
+                            Data..?> "assessmentReports"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListAssessmentReports where
+  hashWithSalt _salt ListAssessmentReports' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListAssessmentReports where
+  rnf ListAssessmentReports' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListAssessmentReports where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListAssessmentReports where
+  toPath = Prelude.const "/assessmentReports"
+
+instance Data.ToQuery ListAssessmentReports where
+  toQuery ListAssessmentReports' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newListAssessmentReportsResponse' smart constructor.
+data ListAssessmentReportsResponse = ListAssessmentReportsResponse'
+  { -- | The list of assessment reports that the @ListAssessmentReports@ API
+    -- returned.
+    assessmentReports :: Prelude.Maybe [AssessmentReportMetadata],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListAssessmentReportsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentReports', 'listAssessmentReportsResponse_assessmentReports' - The list of assessment reports that the @ListAssessmentReports@ API
+-- returned.
+--
+-- 'nextToken', 'listAssessmentReportsResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'listAssessmentReportsResponse_httpStatus' - The response's http status code.
+newListAssessmentReportsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListAssessmentReportsResponse
+newListAssessmentReportsResponse pHttpStatus_ =
+  ListAssessmentReportsResponse'
+    { assessmentReports =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The list of assessment reports that the @ListAssessmentReports@ API
+-- returned.
+listAssessmentReportsResponse_assessmentReports :: Lens.Lens' ListAssessmentReportsResponse (Prelude.Maybe [AssessmentReportMetadata])
+listAssessmentReportsResponse_assessmentReports = Lens.lens (\ListAssessmentReportsResponse' {assessmentReports} -> assessmentReports) (\s@ListAssessmentReportsResponse' {} a -> s {assessmentReports = a} :: ListAssessmentReportsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listAssessmentReportsResponse_nextToken :: Lens.Lens' ListAssessmentReportsResponse (Prelude.Maybe Prelude.Text)
+listAssessmentReportsResponse_nextToken = Lens.lens (\ListAssessmentReportsResponse' {nextToken} -> nextToken) (\s@ListAssessmentReportsResponse' {} a -> s {nextToken = a} :: ListAssessmentReportsResponse)
+
+-- | The response's http status code.
+listAssessmentReportsResponse_httpStatus :: Lens.Lens' ListAssessmentReportsResponse Prelude.Int
+listAssessmentReportsResponse_httpStatus = Lens.lens (\ListAssessmentReportsResponse' {httpStatus} -> httpStatus) (\s@ListAssessmentReportsResponse' {} a -> s {httpStatus = a} :: ListAssessmentReportsResponse)
+
+instance Prelude.NFData ListAssessmentReportsResponse where
+  rnf ListAssessmentReportsResponse' {..} =
+    Prelude.rnf assessmentReports
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/ListAssessments.hs b/gen/Amazonka/AuditManager/ListAssessments.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ListAssessments.hs
@@ -0,0 +1,206 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.ListAssessments
+-- 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 current and past assessments from Audit Manager.
+module Amazonka.AuditManager.ListAssessments
+  ( -- * Creating a Request
+    ListAssessments (..),
+    newListAssessments,
+
+    -- * Request Lenses
+    listAssessments_maxResults,
+    listAssessments_nextToken,
+    listAssessments_status,
+
+    -- * Destructuring the Response
+    ListAssessmentsResponse (..),
+    newListAssessmentsResponse,
+
+    -- * Response Lenses
+    listAssessmentsResponse_assessmentMetadata,
+    listAssessmentsResponse_nextToken,
+    listAssessmentsResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newListAssessments' smart constructor.
+data ListAssessments = ListAssessments'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The current status of the assessment.
+    status :: Prelude.Maybe AssessmentStatus
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListAssessments' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAssessments_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'listAssessments_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'status', 'listAssessments_status' - The current status of the assessment.
+newListAssessments ::
+  ListAssessments
+newListAssessments =
+  ListAssessments'
+    { maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+listAssessments_maxResults :: Lens.Lens' ListAssessments (Prelude.Maybe Prelude.Natural)
+listAssessments_maxResults = Lens.lens (\ListAssessments' {maxResults} -> maxResults) (\s@ListAssessments' {} a -> s {maxResults = a} :: ListAssessments)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listAssessments_nextToken :: Lens.Lens' ListAssessments (Prelude.Maybe Prelude.Text)
+listAssessments_nextToken = Lens.lens (\ListAssessments' {nextToken} -> nextToken) (\s@ListAssessments' {} a -> s {nextToken = a} :: ListAssessments)
+
+-- | The current status of the assessment.
+listAssessments_status :: Lens.Lens' ListAssessments (Prelude.Maybe AssessmentStatus)
+listAssessments_status = Lens.lens (\ListAssessments' {status} -> status) (\s@ListAssessments' {} a -> s {status = a} :: ListAssessments)
+
+instance Core.AWSRequest ListAssessments where
+  type
+    AWSResponse ListAssessments =
+      ListAssessmentsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListAssessmentsResponse'
+            Prelude.<$> ( x
+                            Data..?> "assessmentMetadata"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListAssessments where
+  hashWithSalt _salt ListAssessments' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData ListAssessments where
+  rnf ListAssessments' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf status
+
+instance Data.ToHeaders ListAssessments where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListAssessments where
+  toPath = Prelude.const "/assessments"
+
+instance Data.ToQuery ListAssessments where
+  toQuery ListAssessments' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken,
+        "status" Data.=: status
+      ]
+
+-- | /See:/ 'newListAssessmentsResponse' smart constructor.
+data ListAssessmentsResponse = ListAssessmentsResponse'
+  { -- | The metadata that\'s associated with the assessment.
+    assessmentMetadata :: Prelude.Maybe [AssessmentMetadataItem],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListAssessmentsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentMetadata', 'listAssessmentsResponse_assessmentMetadata' - The metadata that\'s associated with the assessment.
+--
+-- 'nextToken', 'listAssessmentsResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'listAssessmentsResponse_httpStatus' - The response's http status code.
+newListAssessmentsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListAssessmentsResponse
+newListAssessmentsResponse pHttpStatus_ =
+  ListAssessmentsResponse'
+    { assessmentMetadata =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The metadata that\'s associated with the assessment.
+listAssessmentsResponse_assessmentMetadata :: Lens.Lens' ListAssessmentsResponse (Prelude.Maybe [AssessmentMetadataItem])
+listAssessmentsResponse_assessmentMetadata = Lens.lens (\ListAssessmentsResponse' {assessmentMetadata} -> assessmentMetadata) (\s@ListAssessmentsResponse' {} a -> s {assessmentMetadata = a} :: ListAssessmentsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listAssessmentsResponse_nextToken :: Lens.Lens' ListAssessmentsResponse (Prelude.Maybe Prelude.Text)
+listAssessmentsResponse_nextToken = Lens.lens (\ListAssessmentsResponse' {nextToken} -> nextToken) (\s@ListAssessmentsResponse' {} a -> s {nextToken = a} :: ListAssessmentsResponse)
+
+-- | The response's http status code.
+listAssessmentsResponse_httpStatus :: Lens.Lens' ListAssessmentsResponse Prelude.Int
+listAssessmentsResponse_httpStatus = Lens.lens (\ListAssessmentsResponse' {httpStatus} -> httpStatus) (\s@ListAssessmentsResponse' {} a -> s {httpStatus = a} :: ListAssessmentsResponse)
+
+instance Prelude.NFData ListAssessmentsResponse where
+  rnf ListAssessmentsResponse' {..} =
+    Prelude.rnf assessmentMetadata
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/ListControlDomainInsights.hs b/gen/Amazonka/AuditManager/ListControlDomainInsights.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ListControlDomainInsights.hs
@@ -0,0 +1,206 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.ListControlDomainInsights
+-- 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 the latest analytics data for control domains across all of your
+-- active assessments.
+--
+-- A control domain is listed only if at least one of the controls within
+-- that domain collected evidence on the @lastUpdated@ date of
+-- @controlDomainInsights@. If this condition isn’t met, no data is listed
+-- for that control domain.
+module Amazonka.AuditManager.ListControlDomainInsights
+  ( -- * Creating a Request
+    ListControlDomainInsights (..),
+    newListControlDomainInsights,
+
+    -- * Request Lenses
+    listControlDomainInsights_maxResults,
+    listControlDomainInsights_nextToken,
+
+    -- * Destructuring the Response
+    ListControlDomainInsightsResponse (..),
+    newListControlDomainInsightsResponse,
+
+    -- * Response Lenses
+    listControlDomainInsightsResponse_controlDomainInsights,
+    listControlDomainInsightsResponse_nextToken,
+    listControlDomainInsightsResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newListControlDomainInsights' smart constructor.
+data ListControlDomainInsights = ListControlDomainInsights'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListControlDomainInsights' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listControlDomainInsights_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'listControlDomainInsights_nextToken' - The pagination token that\'s used to fetch the next set of results.
+newListControlDomainInsights ::
+  ListControlDomainInsights
+newListControlDomainInsights =
+  ListControlDomainInsights'
+    { maxResults =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+listControlDomainInsights_maxResults :: Lens.Lens' ListControlDomainInsights (Prelude.Maybe Prelude.Natural)
+listControlDomainInsights_maxResults = Lens.lens (\ListControlDomainInsights' {maxResults} -> maxResults) (\s@ListControlDomainInsights' {} a -> s {maxResults = a} :: ListControlDomainInsights)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listControlDomainInsights_nextToken :: Lens.Lens' ListControlDomainInsights (Prelude.Maybe Prelude.Text)
+listControlDomainInsights_nextToken = Lens.lens (\ListControlDomainInsights' {nextToken} -> nextToken) (\s@ListControlDomainInsights' {} a -> s {nextToken = a} :: ListControlDomainInsights)
+
+instance Core.AWSRequest ListControlDomainInsights where
+  type
+    AWSResponse ListControlDomainInsights =
+      ListControlDomainInsightsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListControlDomainInsightsResponse'
+            Prelude.<$> ( x
+                            Data..?> "controlDomainInsights"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListControlDomainInsights where
+  hashWithSalt _salt ListControlDomainInsights' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListControlDomainInsights where
+  rnf ListControlDomainInsights' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListControlDomainInsights where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListControlDomainInsights where
+  toPath = Prelude.const "/insights/control-domains"
+
+instance Data.ToQuery ListControlDomainInsights where
+  toQuery ListControlDomainInsights' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newListControlDomainInsightsResponse' smart constructor.
+data ListControlDomainInsightsResponse = ListControlDomainInsightsResponse'
+  { -- | The control domain analytics data that the @ListControlDomainInsights@
+    -- API returned.
+    controlDomainInsights :: Prelude.Maybe [ControlDomainInsights],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListControlDomainInsightsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controlDomainInsights', 'listControlDomainInsightsResponse_controlDomainInsights' - The control domain analytics data that the @ListControlDomainInsights@
+-- API returned.
+--
+-- 'nextToken', 'listControlDomainInsightsResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'listControlDomainInsightsResponse_httpStatus' - The response's http status code.
+newListControlDomainInsightsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListControlDomainInsightsResponse
+newListControlDomainInsightsResponse pHttpStatus_ =
+  ListControlDomainInsightsResponse'
+    { controlDomainInsights =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The control domain analytics data that the @ListControlDomainInsights@
+-- API returned.
+listControlDomainInsightsResponse_controlDomainInsights :: Lens.Lens' ListControlDomainInsightsResponse (Prelude.Maybe [ControlDomainInsights])
+listControlDomainInsightsResponse_controlDomainInsights = Lens.lens (\ListControlDomainInsightsResponse' {controlDomainInsights} -> controlDomainInsights) (\s@ListControlDomainInsightsResponse' {} a -> s {controlDomainInsights = a} :: ListControlDomainInsightsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listControlDomainInsightsResponse_nextToken :: Lens.Lens' ListControlDomainInsightsResponse (Prelude.Maybe Prelude.Text)
+listControlDomainInsightsResponse_nextToken = Lens.lens (\ListControlDomainInsightsResponse' {nextToken} -> nextToken) (\s@ListControlDomainInsightsResponse' {} a -> s {nextToken = a} :: ListControlDomainInsightsResponse)
+
+-- | The response's http status code.
+listControlDomainInsightsResponse_httpStatus :: Lens.Lens' ListControlDomainInsightsResponse Prelude.Int
+listControlDomainInsightsResponse_httpStatus = Lens.lens (\ListControlDomainInsightsResponse' {httpStatus} -> httpStatus) (\s@ListControlDomainInsightsResponse' {} a -> s {httpStatus = a} :: ListControlDomainInsightsResponse)
+
+instance
+  Prelude.NFData
+    ListControlDomainInsightsResponse
+  where
+  rnf ListControlDomainInsightsResponse' {..} =
+    Prelude.rnf controlDomainInsights
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/ListControlDomainInsightsByAssessment.hs b/gen/Amazonka/AuditManager/ListControlDomainInsightsByAssessment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ListControlDomainInsightsByAssessment.hs
@@ -0,0 +1,247 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.ListControlDomainInsightsByAssessment
+-- 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 analytics data for control domains within a specified active
+-- assessment.
+--
+-- A control domain is listed only if at least one of the controls within
+-- that domain collected evidence on the @lastUpdated@ date of
+-- @controlDomainInsights@. If this condition isn’t met, no data is listed
+-- for that domain.
+module Amazonka.AuditManager.ListControlDomainInsightsByAssessment
+  ( -- * Creating a Request
+    ListControlDomainInsightsByAssessment (..),
+    newListControlDomainInsightsByAssessment,
+
+    -- * Request Lenses
+    listControlDomainInsightsByAssessment_maxResults,
+    listControlDomainInsightsByAssessment_nextToken,
+    listControlDomainInsightsByAssessment_assessmentId,
+
+    -- * Destructuring the Response
+    ListControlDomainInsightsByAssessmentResponse (..),
+    newListControlDomainInsightsByAssessmentResponse,
+
+    -- * Response Lenses
+    listControlDomainInsightsByAssessmentResponse_controlDomainInsights,
+    listControlDomainInsightsByAssessmentResponse_nextToken,
+    listControlDomainInsightsByAssessmentResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newListControlDomainInsightsByAssessment' smart constructor.
+data ListControlDomainInsightsByAssessment = ListControlDomainInsightsByAssessment'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the active assessment.
+    assessmentId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListControlDomainInsightsByAssessment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listControlDomainInsightsByAssessment_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'listControlDomainInsightsByAssessment_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'assessmentId', 'listControlDomainInsightsByAssessment_assessmentId' - The unique identifier for the active assessment.
+newListControlDomainInsightsByAssessment ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  ListControlDomainInsightsByAssessment
+newListControlDomainInsightsByAssessment
+  pAssessmentId_ =
+    ListControlDomainInsightsByAssessment'
+      { maxResults =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        assessmentId = pAssessmentId_
+      }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+listControlDomainInsightsByAssessment_maxResults :: Lens.Lens' ListControlDomainInsightsByAssessment (Prelude.Maybe Prelude.Natural)
+listControlDomainInsightsByAssessment_maxResults = Lens.lens (\ListControlDomainInsightsByAssessment' {maxResults} -> maxResults) (\s@ListControlDomainInsightsByAssessment' {} a -> s {maxResults = a} :: ListControlDomainInsightsByAssessment)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listControlDomainInsightsByAssessment_nextToken :: Lens.Lens' ListControlDomainInsightsByAssessment (Prelude.Maybe Prelude.Text)
+listControlDomainInsightsByAssessment_nextToken = Lens.lens (\ListControlDomainInsightsByAssessment' {nextToken} -> nextToken) (\s@ListControlDomainInsightsByAssessment' {} a -> s {nextToken = a} :: ListControlDomainInsightsByAssessment)
+
+-- | The unique identifier for the active assessment.
+listControlDomainInsightsByAssessment_assessmentId :: Lens.Lens' ListControlDomainInsightsByAssessment Prelude.Text
+listControlDomainInsightsByAssessment_assessmentId = Lens.lens (\ListControlDomainInsightsByAssessment' {assessmentId} -> assessmentId) (\s@ListControlDomainInsightsByAssessment' {} a -> s {assessmentId = a} :: ListControlDomainInsightsByAssessment)
+
+instance
+  Core.AWSRequest
+    ListControlDomainInsightsByAssessment
+  where
+  type
+    AWSResponse
+      ListControlDomainInsightsByAssessment =
+      ListControlDomainInsightsByAssessmentResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListControlDomainInsightsByAssessmentResponse'
+            Prelude.<$> ( x
+                            Data..?> "controlDomainInsights"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListControlDomainInsightsByAssessment
+  where
+  hashWithSalt
+    _salt
+    ListControlDomainInsightsByAssessment' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` assessmentId
+
+instance
+  Prelude.NFData
+    ListControlDomainInsightsByAssessment
+  where
+  rnf ListControlDomainInsightsByAssessment' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf assessmentId
+
+instance
+  Data.ToHeaders
+    ListControlDomainInsightsByAssessment
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToPath
+    ListControlDomainInsightsByAssessment
+  where
+  toPath =
+    Prelude.const
+      "/insights/control-domains-by-assessment"
+
+instance
+  Data.ToQuery
+    ListControlDomainInsightsByAssessment
+  where
+  toQuery ListControlDomainInsightsByAssessment' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken,
+        "assessmentId" Data.=: assessmentId
+      ]
+
+-- | /See:/ 'newListControlDomainInsightsByAssessmentResponse' smart constructor.
+data ListControlDomainInsightsByAssessmentResponse = ListControlDomainInsightsByAssessmentResponse'
+  { -- | The control domain analytics data that the
+    -- @ListControlDomainInsightsByAssessment@ API returned.
+    controlDomainInsights :: Prelude.Maybe [ControlDomainInsights],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListControlDomainInsightsByAssessmentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controlDomainInsights', 'listControlDomainInsightsByAssessmentResponse_controlDomainInsights' - The control domain analytics data that the
+-- @ListControlDomainInsightsByAssessment@ API returned.
+--
+-- 'nextToken', 'listControlDomainInsightsByAssessmentResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'listControlDomainInsightsByAssessmentResponse_httpStatus' - The response's http status code.
+newListControlDomainInsightsByAssessmentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListControlDomainInsightsByAssessmentResponse
+newListControlDomainInsightsByAssessmentResponse
+  pHttpStatus_ =
+    ListControlDomainInsightsByAssessmentResponse'
+      { controlDomainInsights =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The control domain analytics data that the
+-- @ListControlDomainInsightsByAssessment@ API returned.
+listControlDomainInsightsByAssessmentResponse_controlDomainInsights :: Lens.Lens' ListControlDomainInsightsByAssessmentResponse (Prelude.Maybe [ControlDomainInsights])
+listControlDomainInsightsByAssessmentResponse_controlDomainInsights = Lens.lens (\ListControlDomainInsightsByAssessmentResponse' {controlDomainInsights} -> controlDomainInsights) (\s@ListControlDomainInsightsByAssessmentResponse' {} a -> s {controlDomainInsights = a} :: ListControlDomainInsightsByAssessmentResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listControlDomainInsightsByAssessmentResponse_nextToken :: Lens.Lens' ListControlDomainInsightsByAssessmentResponse (Prelude.Maybe Prelude.Text)
+listControlDomainInsightsByAssessmentResponse_nextToken = Lens.lens (\ListControlDomainInsightsByAssessmentResponse' {nextToken} -> nextToken) (\s@ListControlDomainInsightsByAssessmentResponse' {} a -> s {nextToken = a} :: ListControlDomainInsightsByAssessmentResponse)
+
+-- | The response's http status code.
+listControlDomainInsightsByAssessmentResponse_httpStatus :: Lens.Lens' ListControlDomainInsightsByAssessmentResponse Prelude.Int
+listControlDomainInsightsByAssessmentResponse_httpStatus = Lens.lens (\ListControlDomainInsightsByAssessmentResponse' {httpStatus} -> httpStatus) (\s@ListControlDomainInsightsByAssessmentResponse' {} a -> s {httpStatus = a} :: ListControlDomainInsightsByAssessmentResponse)
+
+instance
+  Prelude.NFData
+    ListControlDomainInsightsByAssessmentResponse
+  where
+  rnf
+    ListControlDomainInsightsByAssessmentResponse' {..} =
+      Prelude.rnf controlDomainInsights
+        `Prelude.seq` Prelude.rnf nextToken
+        `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/ListControlInsightsByControlDomain.hs b/gen/Amazonka/AuditManager/ListControlInsightsByControlDomain.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ListControlInsightsByControlDomain.hs
@@ -0,0 +1,243 @@
+{-# 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.AuditManager.ListControlInsightsByControlDomain
+-- 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 the latest analytics data for controls within a specific control
+-- domain across all active assessments.
+--
+-- Control insights are listed only if the control belongs to the control
+-- domain that was specified and the control collected evidence on the
+-- @lastUpdated@ date of @controlInsightsMetadata@. If neither of these
+-- conditions are met, no data is listed for that control.
+module Amazonka.AuditManager.ListControlInsightsByControlDomain
+  ( -- * Creating a Request
+    ListControlInsightsByControlDomain (..),
+    newListControlInsightsByControlDomain,
+
+    -- * Request Lenses
+    listControlInsightsByControlDomain_maxResults,
+    listControlInsightsByControlDomain_nextToken,
+    listControlInsightsByControlDomain_controlDomainId,
+
+    -- * Destructuring the Response
+    ListControlInsightsByControlDomainResponse (..),
+    newListControlInsightsByControlDomainResponse,
+
+    -- * Response Lenses
+    listControlInsightsByControlDomainResponse_controlInsightsMetadata,
+    listControlInsightsByControlDomainResponse_nextToken,
+    listControlInsightsByControlDomainResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newListControlInsightsByControlDomain' smart constructor.
+data ListControlInsightsByControlDomain = ListControlInsightsByControlDomain'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the control domain.
+    controlDomainId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListControlInsightsByControlDomain' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listControlInsightsByControlDomain_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'listControlInsightsByControlDomain_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'controlDomainId', 'listControlInsightsByControlDomain_controlDomainId' - The unique identifier for the control domain.
+newListControlInsightsByControlDomain ::
+  -- | 'controlDomainId'
+  Prelude.Text ->
+  ListControlInsightsByControlDomain
+newListControlInsightsByControlDomain
+  pControlDomainId_ =
+    ListControlInsightsByControlDomain'
+      { maxResults =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        controlDomainId = pControlDomainId_
+      }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+listControlInsightsByControlDomain_maxResults :: Lens.Lens' ListControlInsightsByControlDomain (Prelude.Maybe Prelude.Natural)
+listControlInsightsByControlDomain_maxResults = Lens.lens (\ListControlInsightsByControlDomain' {maxResults} -> maxResults) (\s@ListControlInsightsByControlDomain' {} a -> s {maxResults = a} :: ListControlInsightsByControlDomain)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listControlInsightsByControlDomain_nextToken :: Lens.Lens' ListControlInsightsByControlDomain (Prelude.Maybe Prelude.Text)
+listControlInsightsByControlDomain_nextToken = Lens.lens (\ListControlInsightsByControlDomain' {nextToken} -> nextToken) (\s@ListControlInsightsByControlDomain' {} a -> s {nextToken = a} :: ListControlInsightsByControlDomain)
+
+-- | The unique identifier for the control domain.
+listControlInsightsByControlDomain_controlDomainId :: Lens.Lens' ListControlInsightsByControlDomain Prelude.Text
+listControlInsightsByControlDomain_controlDomainId = Lens.lens (\ListControlInsightsByControlDomain' {controlDomainId} -> controlDomainId) (\s@ListControlInsightsByControlDomain' {} a -> s {controlDomainId = a} :: ListControlInsightsByControlDomain)
+
+instance
+  Core.AWSRequest
+    ListControlInsightsByControlDomain
+  where
+  type
+    AWSResponse ListControlInsightsByControlDomain =
+      ListControlInsightsByControlDomainResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListControlInsightsByControlDomainResponse'
+            Prelude.<$> ( x
+                            Data..?> "controlInsightsMetadata"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ListControlInsightsByControlDomain
+  where
+  hashWithSalt
+    _salt
+    ListControlInsightsByControlDomain' {..} =
+      _salt
+        `Prelude.hashWithSalt` maxResults
+        `Prelude.hashWithSalt` nextToken
+        `Prelude.hashWithSalt` controlDomainId
+
+instance
+  Prelude.NFData
+    ListControlInsightsByControlDomain
+  where
+  rnf ListControlInsightsByControlDomain' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf controlDomainId
+
+instance
+  Data.ToHeaders
+    ListControlInsightsByControlDomain
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToPath
+    ListControlInsightsByControlDomain
+  where
+  toPath = Prelude.const "/insights/controls"
+
+instance
+  Data.ToQuery
+    ListControlInsightsByControlDomain
+  where
+  toQuery ListControlInsightsByControlDomain' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken,
+        "controlDomainId" Data.=: controlDomainId
+      ]
+
+-- | /See:/ 'newListControlInsightsByControlDomainResponse' smart constructor.
+data ListControlInsightsByControlDomainResponse = ListControlInsightsByControlDomainResponse'
+  { -- | The control analytics data that the @ListControlInsightsByControlDomain@
+    -- API returned.
+    controlInsightsMetadata :: Prelude.Maybe [ControlInsightsMetadataItem],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListControlInsightsByControlDomainResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controlInsightsMetadata', 'listControlInsightsByControlDomainResponse_controlInsightsMetadata' - The control analytics data that the @ListControlInsightsByControlDomain@
+-- API returned.
+--
+-- 'nextToken', 'listControlInsightsByControlDomainResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'listControlInsightsByControlDomainResponse_httpStatus' - The response's http status code.
+newListControlInsightsByControlDomainResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListControlInsightsByControlDomainResponse
+newListControlInsightsByControlDomainResponse
+  pHttpStatus_ =
+    ListControlInsightsByControlDomainResponse'
+      { controlInsightsMetadata =
+          Prelude.Nothing,
+        nextToken = Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The control analytics data that the @ListControlInsightsByControlDomain@
+-- API returned.
+listControlInsightsByControlDomainResponse_controlInsightsMetadata :: Lens.Lens' ListControlInsightsByControlDomainResponse (Prelude.Maybe [ControlInsightsMetadataItem])
+listControlInsightsByControlDomainResponse_controlInsightsMetadata = Lens.lens (\ListControlInsightsByControlDomainResponse' {controlInsightsMetadata} -> controlInsightsMetadata) (\s@ListControlInsightsByControlDomainResponse' {} a -> s {controlInsightsMetadata = a} :: ListControlInsightsByControlDomainResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listControlInsightsByControlDomainResponse_nextToken :: Lens.Lens' ListControlInsightsByControlDomainResponse (Prelude.Maybe Prelude.Text)
+listControlInsightsByControlDomainResponse_nextToken = Lens.lens (\ListControlInsightsByControlDomainResponse' {nextToken} -> nextToken) (\s@ListControlInsightsByControlDomainResponse' {} a -> s {nextToken = a} :: ListControlInsightsByControlDomainResponse)
+
+-- | The response's http status code.
+listControlInsightsByControlDomainResponse_httpStatus :: Lens.Lens' ListControlInsightsByControlDomainResponse Prelude.Int
+listControlInsightsByControlDomainResponse_httpStatus = Lens.lens (\ListControlInsightsByControlDomainResponse' {httpStatus} -> httpStatus) (\s@ListControlInsightsByControlDomainResponse' {} a -> s {httpStatus = a} :: ListControlInsightsByControlDomainResponse)
+
+instance
+  Prelude.NFData
+    ListControlInsightsByControlDomainResponse
+  where
+  rnf ListControlInsightsByControlDomainResponse' {..} =
+    Prelude.rnf controlInsightsMetadata
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/ListControls.hs b/gen/Amazonka/AuditManager/ListControls.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ListControls.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.AuditManager.ListControls
+-- 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 controls from Audit Manager.
+module Amazonka.AuditManager.ListControls
+  ( -- * Creating a Request
+    ListControls (..),
+    newListControls,
+
+    -- * Request Lenses
+    listControls_maxResults,
+    listControls_nextToken,
+    listControls_controlType,
+
+    -- * Destructuring the Response
+    ListControlsResponse (..),
+    newListControlsResponse,
+
+    -- * Response Lenses
+    listControlsResponse_controlMetadataList,
+    listControlsResponse_nextToken,
+    listControlsResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newListControls' smart constructor.
+data ListControls = ListControls'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The type of control, such as a standard control or a custom control.
+    controlType :: ControlType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListControls' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listControls_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'listControls_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'controlType', 'listControls_controlType' - The type of control, such as a standard control or a custom control.
+newListControls ::
+  -- | 'controlType'
+  ControlType ->
+  ListControls
+newListControls pControlType_ =
+  ListControls'
+    { maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      controlType = pControlType_
+    }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+listControls_maxResults :: Lens.Lens' ListControls (Prelude.Maybe Prelude.Natural)
+listControls_maxResults = Lens.lens (\ListControls' {maxResults} -> maxResults) (\s@ListControls' {} a -> s {maxResults = a} :: ListControls)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listControls_nextToken :: Lens.Lens' ListControls (Prelude.Maybe Prelude.Text)
+listControls_nextToken = Lens.lens (\ListControls' {nextToken} -> nextToken) (\s@ListControls' {} a -> s {nextToken = a} :: ListControls)
+
+-- | The type of control, such as a standard control or a custom control.
+listControls_controlType :: Lens.Lens' ListControls ControlType
+listControls_controlType = Lens.lens (\ListControls' {controlType} -> controlType) (\s@ListControls' {} a -> s {controlType = a} :: ListControls)
+
+instance Core.AWSRequest ListControls where
+  type AWSResponse ListControls = ListControlsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListControlsResponse'
+            Prelude.<$> ( x
+                            Data..?> "controlMetadataList"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListControls where
+  hashWithSalt _salt ListControls' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` controlType
+
+instance Prelude.NFData ListControls where
+  rnf ListControls' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf controlType
+
+instance Data.ToHeaders ListControls where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListControls where
+  toPath = Prelude.const "/controls"
+
+instance Data.ToQuery ListControls where
+  toQuery ListControls' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken,
+        "controlType" Data.=: controlType
+      ]
+
+-- | /See:/ 'newListControlsResponse' smart constructor.
+data ListControlsResponse = ListControlsResponse'
+  { -- | The list of control metadata objects that the @ListControls@ API
+    -- returned.
+    controlMetadataList :: Prelude.Maybe [ControlMetadata],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListControlsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controlMetadataList', 'listControlsResponse_controlMetadataList' - The list of control metadata objects that the @ListControls@ API
+-- returned.
+--
+-- 'nextToken', 'listControlsResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'listControlsResponse_httpStatus' - The response's http status code.
+newListControlsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListControlsResponse
+newListControlsResponse pHttpStatus_ =
+  ListControlsResponse'
+    { controlMetadataList =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The list of control metadata objects that the @ListControls@ API
+-- returned.
+listControlsResponse_controlMetadataList :: Lens.Lens' ListControlsResponse (Prelude.Maybe [ControlMetadata])
+listControlsResponse_controlMetadataList = Lens.lens (\ListControlsResponse' {controlMetadataList} -> controlMetadataList) (\s@ListControlsResponse' {} a -> s {controlMetadataList = a} :: ListControlsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listControlsResponse_nextToken :: Lens.Lens' ListControlsResponse (Prelude.Maybe Prelude.Text)
+listControlsResponse_nextToken = Lens.lens (\ListControlsResponse' {nextToken} -> nextToken) (\s@ListControlsResponse' {} a -> s {nextToken = a} :: ListControlsResponse)
+
+-- | The response's http status code.
+listControlsResponse_httpStatus :: Lens.Lens' ListControlsResponse Prelude.Int
+listControlsResponse_httpStatus = Lens.lens (\ListControlsResponse' {httpStatus} -> httpStatus) (\s@ListControlsResponse' {} a -> s {httpStatus = a} :: ListControlsResponse)
+
+instance Prelude.NFData ListControlsResponse where
+  rnf ListControlsResponse' {..} =
+    Prelude.rnf controlMetadataList
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/ListKeywordsForDataSource.hs b/gen/Amazonka/AuditManager/ListKeywordsForDataSource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ListKeywordsForDataSource.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.AuditManager.ListKeywordsForDataSource
+-- 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 keywords that are pre-mapped to the specified control
+-- data source.
+module Amazonka.AuditManager.ListKeywordsForDataSource
+  ( -- * Creating a Request
+    ListKeywordsForDataSource (..),
+    newListKeywordsForDataSource,
+
+    -- * Request Lenses
+    listKeywordsForDataSource_maxResults,
+    listKeywordsForDataSource_nextToken,
+    listKeywordsForDataSource_source,
+
+    -- * Destructuring the Response
+    ListKeywordsForDataSourceResponse (..),
+    newListKeywordsForDataSourceResponse,
+
+    -- * Response Lenses
+    listKeywordsForDataSourceResponse_keywords,
+    listKeywordsForDataSourceResponse_nextToken,
+    listKeywordsForDataSourceResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newListKeywordsForDataSource' smart constructor.
+data ListKeywordsForDataSource = ListKeywordsForDataSource'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The control mapping data source that the keywords apply to.
+    source :: SourceType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListKeywordsForDataSource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listKeywordsForDataSource_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'listKeywordsForDataSource_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'source', 'listKeywordsForDataSource_source' - The control mapping data source that the keywords apply to.
+newListKeywordsForDataSource ::
+  -- | 'source'
+  SourceType ->
+  ListKeywordsForDataSource
+newListKeywordsForDataSource pSource_ =
+  ListKeywordsForDataSource'
+    { maxResults =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      source = pSource_
+    }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+listKeywordsForDataSource_maxResults :: Lens.Lens' ListKeywordsForDataSource (Prelude.Maybe Prelude.Natural)
+listKeywordsForDataSource_maxResults = Lens.lens (\ListKeywordsForDataSource' {maxResults} -> maxResults) (\s@ListKeywordsForDataSource' {} a -> s {maxResults = a} :: ListKeywordsForDataSource)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listKeywordsForDataSource_nextToken :: Lens.Lens' ListKeywordsForDataSource (Prelude.Maybe Prelude.Text)
+listKeywordsForDataSource_nextToken = Lens.lens (\ListKeywordsForDataSource' {nextToken} -> nextToken) (\s@ListKeywordsForDataSource' {} a -> s {nextToken = a} :: ListKeywordsForDataSource)
+
+-- | The control mapping data source that the keywords apply to.
+listKeywordsForDataSource_source :: Lens.Lens' ListKeywordsForDataSource SourceType
+listKeywordsForDataSource_source = Lens.lens (\ListKeywordsForDataSource' {source} -> source) (\s@ListKeywordsForDataSource' {} a -> s {source = a} :: ListKeywordsForDataSource)
+
+instance Core.AWSRequest ListKeywordsForDataSource where
+  type
+    AWSResponse ListKeywordsForDataSource =
+      ListKeywordsForDataSourceResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListKeywordsForDataSourceResponse'
+            Prelude.<$> (x Data..?> "keywords" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListKeywordsForDataSource where
+  hashWithSalt _salt ListKeywordsForDataSource' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` source
+
+instance Prelude.NFData ListKeywordsForDataSource where
+  rnf ListKeywordsForDataSource' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf source
+
+instance Data.ToHeaders ListKeywordsForDataSource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListKeywordsForDataSource where
+  toPath = Prelude.const "/dataSourceKeywords"
+
+instance Data.ToQuery ListKeywordsForDataSource where
+  toQuery ListKeywordsForDataSource' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken,
+        "source" Data.=: source
+      ]
+
+-- | /See:/ 'newListKeywordsForDataSourceResponse' smart constructor.
+data ListKeywordsForDataSourceResponse = ListKeywordsForDataSourceResponse'
+  { -- | The list of keywords for the event mapping source.
+    keywords :: Prelude.Maybe [Prelude.Text],
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListKeywordsForDataSourceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'keywords', 'listKeywordsForDataSourceResponse_keywords' - The list of keywords for the event mapping source.
+--
+-- 'nextToken', 'listKeywordsForDataSourceResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'httpStatus', 'listKeywordsForDataSourceResponse_httpStatus' - The response's http status code.
+newListKeywordsForDataSourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListKeywordsForDataSourceResponse
+newListKeywordsForDataSourceResponse pHttpStatus_ =
+  ListKeywordsForDataSourceResponse'
+    { keywords =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The list of keywords for the event mapping source.
+listKeywordsForDataSourceResponse_keywords :: Lens.Lens' ListKeywordsForDataSourceResponse (Prelude.Maybe [Prelude.Text])
+listKeywordsForDataSourceResponse_keywords = Lens.lens (\ListKeywordsForDataSourceResponse' {keywords} -> keywords) (\s@ListKeywordsForDataSourceResponse' {} a -> s {keywords = a} :: ListKeywordsForDataSourceResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listKeywordsForDataSourceResponse_nextToken :: Lens.Lens' ListKeywordsForDataSourceResponse (Prelude.Maybe Prelude.Text)
+listKeywordsForDataSourceResponse_nextToken = Lens.lens (\ListKeywordsForDataSourceResponse' {nextToken} -> nextToken) (\s@ListKeywordsForDataSourceResponse' {} a -> s {nextToken = a} :: ListKeywordsForDataSourceResponse)
+
+-- | The response's http status code.
+listKeywordsForDataSourceResponse_httpStatus :: Lens.Lens' ListKeywordsForDataSourceResponse Prelude.Int
+listKeywordsForDataSourceResponse_httpStatus = Lens.lens (\ListKeywordsForDataSourceResponse' {httpStatus} -> httpStatus) (\s@ListKeywordsForDataSourceResponse' {} a -> s {httpStatus = a} :: ListKeywordsForDataSourceResponse)
+
+instance
+  Prelude.NFData
+    ListKeywordsForDataSourceResponse
+  where
+  rnf ListKeywordsForDataSourceResponse' {..} =
+    Prelude.rnf keywords
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/ListNotifications.hs b/gen/Amazonka/AuditManager/ListNotifications.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ListNotifications.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.AuditManager.ListNotifications
+-- 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 all Audit Manager notifications.
+module Amazonka.AuditManager.ListNotifications
+  ( -- * Creating a Request
+    ListNotifications (..),
+    newListNotifications,
+
+    -- * Request Lenses
+    listNotifications_maxResults,
+    listNotifications_nextToken,
+
+    -- * Destructuring the Response
+    ListNotificationsResponse (..),
+    newListNotificationsResponse,
+
+    -- * Response Lenses
+    listNotificationsResponse_nextToken,
+    listNotificationsResponse_notifications,
+    listNotificationsResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newListNotifications' smart constructor.
+data ListNotifications = ListNotifications'
+  { -- | Represents the maximum number of results on a page or for an API request
+    -- call.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListNotifications' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listNotifications_maxResults' - Represents the maximum number of results on a page or for an API request
+-- call.
+--
+-- 'nextToken', 'listNotifications_nextToken' - The pagination token that\'s used to fetch the next set of results.
+newListNotifications ::
+  ListNotifications
+newListNotifications =
+  ListNotifications'
+    { maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Represents the maximum number of results on a page or for an API request
+-- call.
+listNotifications_maxResults :: Lens.Lens' ListNotifications (Prelude.Maybe Prelude.Natural)
+listNotifications_maxResults = Lens.lens (\ListNotifications' {maxResults} -> maxResults) (\s@ListNotifications' {} a -> s {maxResults = a} :: ListNotifications)
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listNotifications_nextToken :: Lens.Lens' ListNotifications (Prelude.Maybe Prelude.Text)
+listNotifications_nextToken = Lens.lens (\ListNotifications' {nextToken} -> nextToken) (\s@ListNotifications' {} a -> s {nextToken = a} :: ListNotifications)
+
+instance Core.AWSRequest ListNotifications where
+  type
+    AWSResponse ListNotifications =
+      ListNotificationsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListNotificationsResponse'
+            Prelude.<$> (x Data..?> "nextToken")
+            Prelude.<*> (x Data..?> "notifications" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListNotifications where
+  hashWithSalt _salt ListNotifications' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListNotifications where
+  rnf ListNotifications' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListNotifications where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListNotifications where
+  toPath = Prelude.const "/notifications"
+
+instance Data.ToQuery ListNotifications where
+  toQuery ListNotifications' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newListNotificationsResponse' smart constructor.
+data ListNotificationsResponse = ListNotificationsResponse'
+  { -- | The pagination token that\'s used to fetch the next set of results.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The returned list of notifications.
+    notifications :: Prelude.Maybe [Notification],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListNotificationsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listNotificationsResponse_nextToken' - The pagination token that\'s used to fetch the next set of results.
+--
+-- 'notifications', 'listNotificationsResponse_notifications' - The returned list of notifications.
+--
+-- 'httpStatus', 'listNotificationsResponse_httpStatus' - The response's http status code.
+newListNotificationsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListNotificationsResponse
+newListNotificationsResponse pHttpStatus_ =
+  ListNotificationsResponse'
+    { nextToken =
+        Prelude.Nothing,
+      notifications = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The pagination token that\'s used to fetch the next set of results.
+listNotificationsResponse_nextToken :: Lens.Lens' ListNotificationsResponse (Prelude.Maybe Prelude.Text)
+listNotificationsResponse_nextToken = Lens.lens (\ListNotificationsResponse' {nextToken} -> nextToken) (\s@ListNotificationsResponse' {} a -> s {nextToken = a} :: ListNotificationsResponse)
+
+-- | The returned list of notifications.
+listNotificationsResponse_notifications :: Lens.Lens' ListNotificationsResponse (Prelude.Maybe [Notification])
+listNotificationsResponse_notifications = Lens.lens (\ListNotificationsResponse' {notifications} -> notifications) (\s@ListNotificationsResponse' {} a -> s {notifications = a} :: ListNotificationsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listNotificationsResponse_httpStatus :: Lens.Lens' ListNotificationsResponse Prelude.Int
+listNotificationsResponse_httpStatus = Lens.lens (\ListNotificationsResponse' {httpStatus} -> httpStatus) (\s@ListNotificationsResponse' {} a -> s {httpStatus = a} :: ListNotificationsResponse)
+
+instance Prelude.NFData ListNotificationsResponse where
+  rnf ListNotificationsResponse' {..} =
+    Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf notifications
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/ListTagsForResource.hs b/gen/Amazonka/AuditManager/ListTagsForResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ListTagsForResource.hs
@@ -0,0 +1,159 @@
+{-# 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.AuditManager.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)
+--
+-- Returns a list of tags for the specified resource in Audit Manager.
+module Amazonka.AuditManager.ListTagsForResource
+  ( -- * Creating a Request
+    ListTagsForResource (..),
+    newListTagsForResource,
+
+    -- * Request Lenses
+    listTagsForResource_resourceArn,
+
+    -- * Destructuring the Response
+    ListTagsForResourceResponse (..),
+    newListTagsForResourceResponse,
+
+    -- * Response Lenses
+    listTagsForResourceResponse_tags,
+    listTagsForResourceResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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'
+  { -- | The Amazon Resource Name (ARN) of the resource.
+    resourceArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListTagsForResource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) of the resource.
+newListTagsForResource ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  ListTagsForResource
+newListTagsForResource pResourceArn_ =
+  ListTagsForResource' {resourceArn = pResourceArn_}
+
+-- | The Amazon Resource Name (ARN) of the resource.
+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.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListTagsForResourceResponse'
+            Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListTagsForResource where
+  hashWithSalt _salt ListTagsForResource' {..} =
+    _salt `Prelude.hashWithSalt` resourceArn
+
+instance Prelude.NFData ListTagsForResource where
+  rnf ListTagsForResource' {..} =
+    Prelude.rnf resourceArn
+
+instance Data.ToHeaders ListTagsForResource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListTagsForResource where
+  toPath ListTagsForResource' {..} =
+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]
+
+instance Data.ToQuery ListTagsForResource where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListTagsForResourceResponse' smart constructor.
+data ListTagsForResourceResponse = ListTagsForResourceResponse'
+  { -- | The list of tags that the @ListTagsForResource@ API returned.
+    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:
+--
+-- 'tags', 'listTagsForResourceResponse_tags' - The list of tags that the @ListTagsForResource@ API returned.
+--
+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.
+newListTagsForResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListTagsForResourceResponse
+newListTagsForResourceResponse pHttpStatus_ =
+  ListTagsForResourceResponse'
+    { tags =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The list of tags that the @ListTagsForResource@ API returned.
+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 tags
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/RegisterAccount.hs b/gen/Amazonka/AuditManager/RegisterAccount.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/RegisterAccount.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.AuditManager.RegisterAccount
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Enables Audit Manager for the specified Amazon Web Services account.
+module Amazonka.AuditManager.RegisterAccount
+  ( -- * Creating a Request
+    RegisterAccount (..),
+    newRegisterAccount,
+
+    -- * Request Lenses
+    registerAccount_delegatedAdminAccount,
+    registerAccount_kmsKey,
+
+    -- * Destructuring the Response
+    RegisterAccountResponse (..),
+    newRegisterAccountResponse,
+
+    -- * Response Lenses
+    registerAccountResponse_status,
+    registerAccountResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newRegisterAccount' smart constructor.
+data RegisterAccount = RegisterAccount'
+  { -- | The delegated administrator account for Audit Manager.
+    delegatedAdminAccount :: Prelude.Maybe Prelude.Text,
+    -- | The KMS key details.
+    kmsKey :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RegisterAccount' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'delegatedAdminAccount', 'registerAccount_delegatedAdminAccount' - The delegated administrator account for Audit Manager.
+--
+-- 'kmsKey', 'registerAccount_kmsKey' - The KMS key details.
+newRegisterAccount ::
+  RegisterAccount
+newRegisterAccount =
+  RegisterAccount'
+    { delegatedAdminAccount =
+        Prelude.Nothing,
+      kmsKey = Prelude.Nothing
+    }
+
+-- | The delegated administrator account for Audit Manager.
+registerAccount_delegatedAdminAccount :: Lens.Lens' RegisterAccount (Prelude.Maybe Prelude.Text)
+registerAccount_delegatedAdminAccount = Lens.lens (\RegisterAccount' {delegatedAdminAccount} -> delegatedAdminAccount) (\s@RegisterAccount' {} a -> s {delegatedAdminAccount = a} :: RegisterAccount)
+
+-- | The KMS key details.
+registerAccount_kmsKey :: Lens.Lens' RegisterAccount (Prelude.Maybe Prelude.Text)
+registerAccount_kmsKey = Lens.lens (\RegisterAccount' {kmsKey} -> kmsKey) (\s@RegisterAccount' {} a -> s {kmsKey = a} :: RegisterAccount)
+
+instance Core.AWSRequest RegisterAccount where
+  type
+    AWSResponse RegisterAccount =
+      RegisterAccountResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          RegisterAccountResponse'
+            Prelude.<$> (x Data..?> "status")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable RegisterAccount where
+  hashWithSalt _salt RegisterAccount' {..} =
+    _salt
+      `Prelude.hashWithSalt` delegatedAdminAccount
+      `Prelude.hashWithSalt` kmsKey
+
+instance Prelude.NFData RegisterAccount where
+  rnf RegisterAccount' {..} =
+    Prelude.rnf delegatedAdminAccount
+      `Prelude.seq` Prelude.rnf kmsKey
+
+instance Data.ToHeaders RegisterAccount where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON RegisterAccount where
+  toJSON RegisterAccount' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("delegatedAdminAccount" Data..=)
+              Prelude.<$> delegatedAdminAccount,
+            ("kmsKey" Data..=) Prelude.<$> kmsKey
+          ]
+      )
+
+instance Data.ToPath RegisterAccount where
+  toPath = Prelude.const "/account/registerAccount"
+
+instance Data.ToQuery RegisterAccount where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newRegisterAccountResponse' smart constructor.
+data RegisterAccountResponse = RegisterAccountResponse'
+  { -- | The status of the account registration request.
+    status :: Prelude.Maybe AccountStatus,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RegisterAccountResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'status', 'registerAccountResponse_status' - The status of the account registration request.
+--
+-- 'httpStatus', 'registerAccountResponse_httpStatus' - The response's http status code.
+newRegisterAccountResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  RegisterAccountResponse
+newRegisterAccountResponse pHttpStatus_ =
+  RegisterAccountResponse'
+    { status = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The status of the account registration request.
+registerAccountResponse_status :: Lens.Lens' RegisterAccountResponse (Prelude.Maybe AccountStatus)
+registerAccountResponse_status = Lens.lens (\RegisterAccountResponse' {status} -> status) (\s@RegisterAccountResponse' {} a -> s {status = a} :: RegisterAccountResponse)
+
+-- | The response's http status code.
+registerAccountResponse_httpStatus :: Lens.Lens' RegisterAccountResponse Prelude.Int
+registerAccountResponse_httpStatus = Lens.lens (\RegisterAccountResponse' {httpStatus} -> httpStatus) (\s@RegisterAccountResponse' {} a -> s {httpStatus = a} :: RegisterAccountResponse)
+
+instance Prelude.NFData RegisterAccountResponse where
+  rnf RegisterAccountResponse' {..} =
+    Prelude.rnf status
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/RegisterOrganizationAdminAccount.hs b/gen/Amazonka/AuditManager/RegisterOrganizationAdminAccount.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/RegisterOrganizationAdminAccount.hs
@@ -0,0 +1,206 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.RegisterOrganizationAdminAccount
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Enables an Amazon Web Services account within the organization as the
+-- delegated administrator for Audit Manager.
+module Amazonka.AuditManager.RegisterOrganizationAdminAccount
+  ( -- * Creating a Request
+    RegisterOrganizationAdminAccount (..),
+    newRegisterOrganizationAdminAccount,
+
+    -- * Request Lenses
+    registerOrganizationAdminAccount_adminAccountId,
+
+    -- * Destructuring the Response
+    RegisterOrganizationAdminAccountResponse (..),
+    newRegisterOrganizationAdminAccountResponse,
+
+    -- * Response Lenses
+    registerOrganizationAdminAccountResponse_adminAccountId,
+    registerOrganizationAdminAccountResponse_organizationId,
+    registerOrganizationAdminAccountResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newRegisterOrganizationAdminAccount' smart constructor.
+data RegisterOrganizationAdminAccount = RegisterOrganizationAdminAccount'
+  { -- | The identifier for the delegated administrator account.
+    adminAccountId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RegisterOrganizationAdminAccount' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'adminAccountId', 'registerOrganizationAdminAccount_adminAccountId' - The identifier for the delegated administrator account.
+newRegisterOrganizationAdminAccount ::
+  -- | 'adminAccountId'
+  Prelude.Text ->
+  RegisterOrganizationAdminAccount
+newRegisterOrganizationAdminAccount pAdminAccountId_ =
+  RegisterOrganizationAdminAccount'
+    { adminAccountId =
+        pAdminAccountId_
+    }
+
+-- | The identifier for the delegated administrator account.
+registerOrganizationAdminAccount_adminAccountId :: Lens.Lens' RegisterOrganizationAdminAccount Prelude.Text
+registerOrganizationAdminAccount_adminAccountId = Lens.lens (\RegisterOrganizationAdminAccount' {adminAccountId} -> adminAccountId) (\s@RegisterOrganizationAdminAccount' {} a -> s {adminAccountId = a} :: RegisterOrganizationAdminAccount)
+
+instance
+  Core.AWSRequest
+    RegisterOrganizationAdminAccount
+  where
+  type
+    AWSResponse RegisterOrganizationAdminAccount =
+      RegisterOrganizationAdminAccountResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          RegisterOrganizationAdminAccountResponse'
+            Prelude.<$> (x Data..?> "adminAccountId")
+            Prelude.<*> (x Data..?> "organizationId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    RegisterOrganizationAdminAccount
+  where
+  hashWithSalt
+    _salt
+    RegisterOrganizationAdminAccount' {..} =
+      _salt `Prelude.hashWithSalt` adminAccountId
+
+instance
+  Prelude.NFData
+    RegisterOrganizationAdminAccount
+  where
+  rnf RegisterOrganizationAdminAccount' {..} =
+    Prelude.rnf adminAccountId
+
+instance
+  Data.ToHeaders
+    RegisterOrganizationAdminAccount
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON RegisterOrganizationAdminAccount where
+  toJSON RegisterOrganizationAdminAccount' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("adminAccountId" Data..= adminAccountId)
+          ]
+      )
+
+instance Data.ToPath RegisterOrganizationAdminAccount where
+  toPath =
+    Prelude.const
+      "/account/registerOrganizationAdminAccount"
+
+instance
+  Data.ToQuery
+    RegisterOrganizationAdminAccount
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newRegisterOrganizationAdminAccountResponse' smart constructor.
+data RegisterOrganizationAdminAccountResponse = RegisterOrganizationAdminAccountResponse'
+  { -- | The identifier for the delegated administrator account.
+    adminAccountId :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the organization.
+    organizationId :: 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 'RegisterOrganizationAdminAccountResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'adminAccountId', 'registerOrganizationAdminAccountResponse_adminAccountId' - The identifier for the delegated administrator account.
+--
+-- 'organizationId', 'registerOrganizationAdminAccountResponse_organizationId' - The identifier for the organization.
+--
+-- 'httpStatus', 'registerOrganizationAdminAccountResponse_httpStatus' - The response's http status code.
+newRegisterOrganizationAdminAccountResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  RegisterOrganizationAdminAccountResponse
+newRegisterOrganizationAdminAccountResponse
+  pHttpStatus_ =
+    RegisterOrganizationAdminAccountResponse'
+      { adminAccountId =
+          Prelude.Nothing,
+        organizationId = Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The identifier for the delegated administrator account.
+registerOrganizationAdminAccountResponse_adminAccountId :: Lens.Lens' RegisterOrganizationAdminAccountResponse (Prelude.Maybe Prelude.Text)
+registerOrganizationAdminAccountResponse_adminAccountId = Lens.lens (\RegisterOrganizationAdminAccountResponse' {adminAccountId} -> adminAccountId) (\s@RegisterOrganizationAdminAccountResponse' {} a -> s {adminAccountId = a} :: RegisterOrganizationAdminAccountResponse)
+
+-- | The identifier for the organization.
+registerOrganizationAdminAccountResponse_organizationId :: Lens.Lens' RegisterOrganizationAdminAccountResponse (Prelude.Maybe Prelude.Text)
+registerOrganizationAdminAccountResponse_organizationId = Lens.lens (\RegisterOrganizationAdminAccountResponse' {organizationId} -> organizationId) (\s@RegisterOrganizationAdminAccountResponse' {} a -> s {organizationId = a} :: RegisterOrganizationAdminAccountResponse)
+
+-- | The response's http status code.
+registerOrganizationAdminAccountResponse_httpStatus :: Lens.Lens' RegisterOrganizationAdminAccountResponse Prelude.Int
+registerOrganizationAdminAccountResponse_httpStatus = Lens.lens (\RegisterOrganizationAdminAccountResponse' {httpStatus} -> httpStatus) (\s@RegisterOrganizationAdminAccountResponse' {} a -> s {httpStatus = a} :: RegisterOrganizationAdminAccountResponse)
+
+instance
+  Prelude.NFData
+    RegisterOrganizationAdminAccountResponse
+  where
+  rnf RegisterOrganizationAdminAccountResponse' {..} =
+    Prelude.rnf adminAccountId
+      `Prelude.seq` Prelude.rnf organizationId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/StartAssessmentFrameworkShare.hs b/gen/Amazonka/AuditManager/StartAssessmentFrameworkShare.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/StartAssessmentFrameworkShare.hs
@@ -0,0 +1,275 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.StartAssessmentFrameworkShare
+-- 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 share request for a custom framework in Audit Manager.
+--
+-- The share request specifies a recipient and notifies them that a custom
+-- framework is available. Recipients have 120 days to accept or decline
+-- the request. If no action is taken, the share request expires.
+--
+-- When you create a share request, Audit Manager stores a snapshot of your
+-- custom framework in the US East (N. Virginia) Amazon Web Services
+-- Region. Audit Manager also stores a backup of the same snapshot in the
+-- US West (Oregon) Amazon Web Services Region.
+--
+-- Audit Manager deletes the snapshot and the backup snapshot when one of
+-- the following events occurs:
+--
+-- -   The sender revokes the share request.
+--
+-- -   The recipient declines the share request.
+--
+-- -   The recipient encounters an error and doesn\'t successfully accept
+--     the share request.
+--
+-- -   The share request expires before the recipient responds to the
+--     request.
+--
+-- When a sender
+-- <https://docs.aws.amazon.com/audit-manager/latest/userguide/framework-sharing.html#framework-sharing-resend resends a share request>,
+-- the snapshot is replaced with an updated version that corresponds with
+-- the latest version of the custom framework.
+--
+-- When a recipient accepts a share request, the snapshot is replicated
+-- into their Amazon Web Services account under the Amazon Web Services
+-- Region that was specified in the share request.
+--
+-- When you invoke the @StartAssessmentFrameworkShare@ API, you are about
+-- to share a custom framework with another Amazon Web Services account.
+-- You may not share a custom framework that is derived from a standard
+-- framework if the standard framework is designated as not eligible for
+-- sharing by Amazon Web Services, unless you have obtained permission to
+-- do so from the owner of the standard framework. To learn more about
+-- which standard frameworks are eligible for sharing, see
+-- <https://docs.aws.amazon.com/audit-manager/latest/userguide/share-custom-framework-concepts-and-terminology.html#eligibility Framework sharing eligibility>
+-- in the /Audit Manager User Guide/.
+module Amazonka.AuditManager.StartAssessmentFrameworkShare
+  ( -- * Creating a Request
+    StartAssessmentFrameworkShare (..),
+    newStartAssessmentFrameworkShare,
+
+    -- * Request Lenses
+    startAssessmentFrameworkShare_comment,
+    startAssessmentFrameworkShare_frameworkId,
+    startAssessmentFrameworkShare_destinationAccount,
+    startAssessmentFrameworkShare_destinationRegion,
+
+    -- * Destructuring the Response
+    StartAssessmentFrameworkShareResponse (..),
+    newStartAssessmentFrameworkShareResponse,
+
+    -- * Response Lenses
+    startAssessmentFrameworkShareResponse_assessmentFrameworkShareRequest,
+    startAssessmentFrameworkShareResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newStartAssessmentFrameworkShare' smart constructor.
+data StartAssessmentFrameworkShare = StartAssessmentFrameworkShare'
+  { -- | An optional comment from the sender about the share request.
+    comment :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the custom framework to be shared.
+    frameworkId :: Prelude.Text,
+    -- | The Amazon Web Services account of the recipient.
+    destinationAccount :: Prelude.Text,
+    -- | The Amazon Web Services Region of the recipient.
+    destinationRegion :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'StartAssessmentFrameworkShare' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'startAssessmentFrameworkShare_comment' - An optional comment from the sender about the share request.
+--
+-- 'frameworkId', 'startAssessmentFrameworkShare_frameworkId' - The unique identifier for the custom framework to be shared.
+--
+-- 'destinationAccount', 'startAssessmentFrameworkShare_destinationAccount' - The Amazon Web Services account of the recipient.
+--
+-- 'destinationRegion', 'startAssessmentFrameworkShare_destinationRegion' - The Amazon Web Services Region of the recipient.
+newStartAssessmentFrameworkShare ::
+  -- | 'frameworkId'
+  Prelude.Text ->
+  -- | 'destinationAccount'
+  Prelude.Text ->
+  -- | 'destinationRegion'
+  Prelude.Text ->
+  StartAssessmentFrameworkShare
+newStartAssessmentFrameworkShare
+  pFrameworkId_
+  pDestinationAccount_
+  pDestinationRegion_ =
+    StartAssessmentFrameworkShare'
+      { comment =
+          Prelude.Nothing,
+        frameworkId = pFrameworkId_,
+        destinationAccount = pDestinationAccount_,
+        destinationRegion = pDestinationRegion_
+      }
+
+-- | An optional comment from the sender about the share request.
+startAssessmentFrameworkShare_comment :: Lens.Lens' StartAssessmentFrameworkShare (Prelude.Maybe Prelude.Text)
+startAssessmentFrameworkShare_comment = Lens.lens (\StartAssessmentFrameworkShare' {comment} -> comment) (\s@StartAssessmentFrameworkShare' {} a -> s {comment = a} :: StartAssessmentFrameworkShare)
+
+-- | The unique identifier for the custom framework to be shared.
+startAssessmentFrameworkShare_frameworkId :: Lens.Lens' StartAssessmentFrameworkShare Prelude.Text
+startAssessmentFrameworkShare_frameworkId = Lens.lens (\StartAssessmentFrameworkShare' {frameworkId} -> frameworkId) (\s@StartAssessmentFrameworkShare' {} a -> s {frameworkId = a} :: StartAssessmentFrameworkShare)
+
+-- | The Amazon Web Services account of the recipient.
+startAssessmentFrameworkShare_destinationAccount :: Lens.Lens' StartAssessmentFrameworkShare Prelude.Text
+startAssessmentFrameworkShare_destinationAccount = Lens.lens (\StartAssessmentFrameworkShare' {destinationAccount} -> destinationAccount) (\s@StartAssessmentFrameworkShare' {} a -> s {destinationAccount = a} :: StartAssessmentFrameworkShare)
+
+-- | The Amazon Web Services Region of the recipient.
+startAssessmentFrameworkShare_destinationRegion :: Lens.Lens' StartAssessmentFrameworkShare Prelude.Text
+startAssessmentFrameworkShare_destinationRegion = Lens.lens (\StartAssessmentFrameworkShare' {destinationRegion} -> destinationRegion) (\s@StartAssessmentFrameworkShare' {} a -> s {destinationRegion = a} :: StartAssessmentFrameworkShare)
+
+instance
+  Core.AWSRequest
+    StartAssessmentFrameworkShare
+  where
+  type
+    AWSResponse StartAssessmentFrameworkShare =
+      StartAssessmentFrameworkShareResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          StartAssessmentFrameworkShareResponse'
+            Prelude.<$> (x Data..?> "assessmentFrameworkShareRequest")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    StartAssessmentFrameworkShare
+  where
+  hashWithSalt _salt StartAssessmentFrameworkShare' {..} =
+    _salt
+      `Prelude.hashWithSalt` comment
+      `Prelude.hashWithSalt` frameworkId
+      `Prelude.hashWithSalt` destinationAccount
+      `Prelude.hashWithSalt` destinationRegion
+
+instance Prelude.NFData StartAssessmentFrameworkShare where
+  rnf StartAssessmentFrameworkShare' {..} =
+    Prelude.rnf comment
+      `Prelude.seq` Prelude.rnf frameworkId
+      `Prelude.seq` Prelude.rnf destinationAccount
+      `Prelude.seq` Prelude.rnf destinationRegion
+
+instance Data.ToHeaders StartAssessmentFrameworkShare where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON StartAssessmentFrameworkShare where
+  toJSON StartAssessmentFrameworkShare' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("comment" Data..=) Prelude.<$> comment,
+            Prelude.Just
+              ("destinationAccount" Data..= destinationAccount),
+            Prelude.Just
+              ("destinationRegion" Data..= destinationRegion)
+          ]
+      )
+
+instance Data.ToPath StartAssessmentFrameworkShare where
+  toPath StartAssessmentFrameworkShare' {..} =
+    Prelude.mconcat
+      [ "/assessmentFrameworks/",
+        Data.toBS frameworkId,
+        "/shareRequests"
+      ]
+
+instance Data.ToQuery StartAssessmentFrameworkShare where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newStartAssessmentFrameworkShareResponse' smart constructor.
+data StartAssessmentFrameworkShareResponse = StartAssessmentFrameworkShareResponse'
+  { -- | The share request that\'s created by the @StartAssessmentFrameworkShare@
+    -- API.
+    assessmentFrameworkShareRequest :: Prelude.Maybe AssessmentFrameworkShareRequest,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'StartAssessmentFrameworkShareResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentFrameworkShareRequest', 'startAssessmentFrameworkShareResponse_assessmentFrameworkShareRequest' - The share request that\'s created by the @StartAssessmentFrameworkShare@
+-- API.
+--
+-- 'httpStatus', 'startAssessmentFrameworkShareResponse_httpStatus' - The response's http status code.
+newStartAssessmentFrameworkShareResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  StartAssessmentFrameworkShareResponse
+newStartAssessmentFrameworkShareResponse pHttpStatus_ =
+  StartAssessmentFrameworkShareResponse'
+    { assessmentFrameworkShareRequest =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The share request that\'s created by the @StartAssessmentFrameworkShare@
+-- API.
+startAssessmentFrameworkShareResponse_assessmentFrameworkShareRequest :: Lens.Lens' StartAssessmentFrameworkShareResponse (Prelude.Maybe AssessmentFrameworkShareRequest)
+startAssessmentFrameworkShareResponse_assessmentFrameworkShareRequest = Lens.lens (\StartAssessmentFrameworkShareResponse' {assessmentFrameworkShareRequest} -> assessmentFrameworkShareRequest) (\s@StartAssessmentFrameworkShareResponse' {} a -> s {assessmentFrameworkShareRequest = a} :: StartAssessmentFrameworkShareResponse)
+
+-- | The response's http status code.
+startAssessmentFrameworkShareResponse_httpStatus :: Lens.Lens' StartAssessmentFrameworkShareResponse Prelude.Int
+startAssessmentFrameworkShareResponse_httpStatus = Lens.lens (\StartAssessmentFrameworkShareResponse' {httpStatus} -> httpStatus) (\s@StartAssessmentFrameworkShareResponse' {} a -> s {httpStatus = a} :: StartAssessmentFrameworkShareResponse)
+
+instance
+  Prelude.NFData
+    StartAssessmentFrameworkShareResponse
+  where
+  rnf StartAssessmentFrameworkShareResponse' {..} =
+    Prelude.rnf assessmentFrameworkShareRequest
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/TagResource.hs b/gen/Amazonka/AuditManager/TagResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/TagResource.hs
@@ -0,0 +1,163 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.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)
+--
+-- Tags the specified resource in Audit Manager.
+module Amazonka.AuditManager.TagResource
+  ( -- * Creating a Request
+    TagResource (..),
+    newTagResource,
+
+    -- * Request Lenses
+    tagResource_resourceArn,
+    tagResource_tags,
+
+    -- * Destructuring the Response
+    TagResourceResponse (..),
+    newTagResourceResponse,
+
+    -- * Response Lenses
+    tagResourceResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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.
+    resourceArn :: Prelude.Text,
+    -- | The tags that are associated with the resource.
+    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.
+--
+-- 'tags', 'tagResource_tags' - The tags that are associated with the resource.
+newTagResource ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  TagResource
+newTagResource pResourceArn_ =
+  TagResource'
+    { resourceArn = pResourceArn_,
+      tags = Prelude.mempty
+    }
+
+-- | The Amazon Resource Name (ARN) of the resource.
+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text
+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)
+
+-- | The tags that are associated with the resource.
+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.receiveEmpty
+      ( \s h x ->
+          TagResourceResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable TagResource where
+  hashWithSalt _salt TagResource' {..} =
+    _salt
+      `Prelude.hashWithSalt` resourceArn
+      `Prelude.hashWithSalt` tags
+
+instance Prelude.NFData TagResource where
+  rnf TagResource' {..} =
+    Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf tags
+
+instance Data.ToHeaders TagResource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON TagResource where
+  toJSON TagResource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("tags" Data..= tags)]
+      )
+
+instance Data.ToPath TagResource where
+  toPath TagResource' {..} =
+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]
+
+instance Data.ToQuery TagResource where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newTagResourceResponse' smart constructor.
+data TagResourceResponse = TagResourceResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'TagResourceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.
+newTagResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  TagResourceResponse
+newTagResourceResponse pHttpStatus_ =
+  TagResourceResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int
+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)
+
+instance Prelude.NFData TagResourceResponse where
+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/Types.hs b/gen/Amazonka/AuditManager/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types.hs
@@ -0,0 +1,808 @@
+{-# 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.AuditManager.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.AuditManager.Types
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    _AccessDeniedException,
+    _InternalServerException,
+    _ResourceNotFoundException,
+    _ServiceQuotaExceededException,
+    _ThrottlingException,
+    _ValidationException,
+
+    -- * AccountStatus
+    AccountStatus (..),
+
+    -- * ActionEnum
+    ActionEnum (..),
+
+    -- * AssessmentReportDestinationType
+    AssessmentReportDestinationType (..),
+
+    -- * AssessmentReportStatus
+    AssessmentReportStatus (..),
+
+    -- * AssessmentStatus
+    AssessmentStatus (..),
+
+    -- * ControlResponse
+    ControlResponse (..),
+
+    -- * ControlSetStatus
+    ControlSetStatus (..),
+
+    -- * ControlStatus
+    ControlStatus (..),
+
+    -- * ControlType
+    ControlType (..),
+
+    -- * DelegationStatus
+    DelegationStatus (..),
+
+    -- * DeleteResources
+    DeleteResources (..),
+
+    -- * EvidenceFinderBackfillStatus
+    EvidenceFinderBackfillStatus (..),
+
+    -- * EvidenceFinderEnablementStatus
+    EvidenceFinderEnablementStatus (..),
+
+    -- * FrameworkType
+    FrameworkType (..),
+
+    -- * KeywordInputType
+    KeywordInputType (..),
+
+    -- * ObjectTypeEnum
+    ObjectTypeEnum (..),
+
+    -- * RoleType
+    RoleType (..),
+
+    -- * SettingAttribute
+    SettingAttribute (..),
+
+    -- * ShareRequestAction
+    ShareRequestAction (..),
+
+    -- * ShareRequestStatus
+    ShareRequestStatus (..),
+
+    -- * ShareRequestType
+    ShareRequestType (..),
+
+    -- * SourceFrequency
+    SourceFrequency (..),
+
+    -- * SourceSetUpOption
+    SourceSetUpOption (..),
+
+    -- * SourceType
+    SourceType (..),
+
+    -- * AWSAccount
+    AWSAccount (..),
+    newAWSAccount,
+    aWSAccount_emailAddress,
+    aWSAccount_id,
+    aWSAccount_name,
+
+    -- * AWSService
+    AWSService (..),
+    newAWSService,
+    aWSService_serviceName,
+
+    -- * Assessment
+    Assessment (..),
+    newAssessment,
+    assessment_arn,
+    assessment_awsAccount,
+    assessment_framework,
+    assessment_metadata,
+    assessment_tags,
+
+    -- * AssessmentControl
+    AssessmentControl (..),
+    newAssessmentControl,
+    assessmentControl_assessmentReportEvidenceCount,
+    assessmentControl_comments,
+    assessmentControl_description,
+    assessmentControl_evidenceCount,
+    assessmentControl_evidenceSources,
+    assessmentControl_id,
+    assessmentControl_name,
+    assessmentControl_response,
+    assessmentControl_status,
+
+    -- * AssessmentControlSet
+    AssessmentControlSet (..),
+    newAssessmentControlSet,
+    assessmentControlSet_controls,
+    assessmentControlSet_delegations,
+    assessmentControlSet_description,
+    assessmentControlSet_id,
+    assessmentControlSet_manualEvidenceCount,
+    assessmentControlSet_roles,
+    assessmentControlSet_status,
+    assessmentControlSet_systemEvidenceCount,
+
+    -- * AssessmentEvidenceFolder
+    AssessmentEvidenceFolder (..),
+    newAssessmentEvidenceFolder,
+    assessmentEvidenceFolder_assessmentId,
+    assessmentEvidenceFolder_assessmentReportSelectionCount,
+    assessmentEvidenceFolder_author,
+    assessmentEvidenceFolder_controlId,
+    assessmentEvidenceFolder_controlName,
+    assessmentEvidenceFolder_controlSetId,
+    assessmentEvidenceFolder_dataSource,
+    assessmentEvidenceFolder_date,
+    assessmentEvidenceFolder_evidenceAwsServiceSourceCount,
+    assessmentEvidenceFolder_evidenceByTypeComplianceCheckCount,
+    assessmentEvidenceFolder_evidenceByTypeComplianceCheckIssuesCount,
+    assessmentEvidenceFolder_evidenceByTypeConfigurationDataCount,
+    assessmentEvidenceFolder_evidenceByTypeManualCount,
+    assessmentEvidenceFolder_evidenceByTypeUserActivityCount,
+    assessmentEvidenceFolder_evidenceResourcesIncludedCount,
+    assessmentEvidenceFolder_id,
+    assessmentEvidenceFolder_name,
+    assessmentEvidenceFolder_totalEvidence,
+
+    -- * AssessmentFramework
+    AssessmentFramework (..),
+    newAssessmentFramework,
+    assessmentFramework_arn,
+    assessmentFramework_controlSets,
+    assessmentFramework_id,
+    assessmentFramework_metadata,
+
+    -- * AssessmentFrameworkMetadata
+    AssessmentFrameworkMetadata (..),
+    newAssessmentFrameworkMetadata,
+    assessmentFrameworkMetadata_arn,
+    assessmentFrameworkMetadata_complianceType,
+    assessmentFrameworkMetadata_controlSetsCount,
+    assessmentFrameworkMetadata_controlsCount,
+    assessmentFrameworkMetadata_createdAt,
+    assessmentFrameworkMetadata_description,
+    assessmentFrameworkMetadata_id,
+    assessmentFrameworkMetadata_lastUpdatedAt,
+    assessmentFrameworkMetadata_logo,
+    assessmentFrameworkMetadata_name,
+    assessmentFrameworkMetadata_type,
+
+    -- * AssessmentFrameworkShareRequest
+    AssessmentFrameworkShareRequest (..),
+    newAssessmentFrameworkShareRequest,
+    assessmentFrameworkShareRequest_comment,
+    assessmentFrameworkShareRequest_complianceType,
+    assessmentFrameworkShareRequest_creationTime,
+    assessmentFrameworkShareRequest_customControlsCount,
+    assessmentFrameworkShareRequest_destinationAccount,
+    assessmentFrameworkShareRequest_destinationRegion,
+    assessmentFrameworkShareRequest_expirationTime,
+    assessmentFrameworkShareRequest_frameworkDescription,
+    assessmentFrameworkShareRequest_frameworkId,
+    assessmentFrameworkShareRequest_frameworkName,
+    assessmentFrameworkShareRequest_id,
+    assessmentFrameworkShareRequest_lastUpdated,
+    assessmentFrameworkShareRequest_sourceAccount,
+    assessmentFrameworkShareRequest_standardControlsCount,
+    assessmentFrameworkShareRequest_status,
+
+    -- * AssessmentMetadata
+    AssessmentMetadata (..),
+    newAssessmentMetadata,
+    assessmentMetadata_assessmentReportsDestination,
+    assessmentMetadata_complianceType,
+    assessmentMetadata_creationTime,
+    assessmentMetadata_delegations,
+    assessmentMetadata_description,
+    assessmentMetadata_id,
+    assessmentMetadata_lastUpdated,
+    assessmentMetadata_name,
+    assessmentMetadata_roles,
+    assessmentMetadata_scope,
+    assessmentMetadata_status,
+
+    -- * AssessmentMetadataItem
+    AssessmentMetadataItem (..),
+    newAssessmentMetadataItem,
+    assessmentMetadataItem_complianceType,
+    assessmentMetadataItem_creationTime,
+    assessmentMetadataItem_delegations,
+    assessmentMetadataItem_id,
+    assessmentMetadataItem_lastUpdated,
+    assessmentMetadataItem_name,
+    assessmentMetadataItem_roles,
+    assessmentMetadataItem_status,
+
+    -- * AssessmentReport
+    AssessmentReport (..),
+    newAssessmentReport,
+    assessmentReport_assessmentId,
+    assessmentReport_assessmentName,
+    assessmentReport_author,
+    assessmentReport_awsAccountId,
+    assessmentReport_creationTime,
+    assessmentReport_description,
+    assessmentReport_id,
+    assessmentReport_name,
+    assessmentReport_status,
+
+    -- * AssessmentReportEvidenceError
+    AssessmentReportEvidenceError (..),
+    newAssessmentReportEvidenceError,
+    assessmentReportEvidenceError_errorCode,
+    assessmentReportEvidenceError_errorMessage,
+    assessmentReportEvidenceError_evidenceId,
+
+    -- * AssessmentReportMetadata
+    AssessmentReportMetadata (..),
+    newAssessmentReportMetadata,
+    assessmentReportMetadata_assessmentId,
+    assessmentReportMetadata_assessmentName,
+    assessmentReportMetadata_author,
+    assessmentReportMetadata_creationTime,
+    assessmentReportMetadata_description,
+    assessmentReportMetadata_id,
+    assessmentReportMetadata_name,
+    assessmentReportMetadata_status,
+
+    -- * AssessmentReportsDestination
+    AssessmentReportsDestination (..),
+    newAssessmentReportsDestination,
+    assessmentReportsDestination_destination,
+    assessmentReportsDestination_destinationType,
+
+    -- * BatchCreateDelegationByAssessmentError
+    BatchCreateDelegationByAssessmentError (..),
+    newBatchCreateDelegationByAssessmentError,
+    batchCreateDelegationByAssessmentError_createDelegationRequest,
+    batchCreateDelegationByAssessmentError_errorCode,
+    batchCreateDelegationByAssessmentError_errorMessage,
+
+    -- * BatchDeleteDelegationByAssessmentError
+    BatchDeleteDelegationByAssessmentError (..),
+    newBatchDeleteDelegationByAssessmentError,
+    batchDeleteDelegationByAssessmentError_delegationId,
+    batchDeleteDelegationByAssessmentError_errorCode,
+    batchDeleteDelegationByAssessmentError_errorMessage,
+
+    -- * BatchImportEvidenceToAssessmentControlError
+    BatchImportEvidenceToAssessmentControlError (..),
+    newBatchImportEvidenceToAssessmentControlError,
+    batchImportEvidenceToAssessmentControlError_errorCode,
+    batchImportEvidenceToAssessmentControlError_errorMessage,
+    batchImportEvidenceToAssessmentControlError_manualEvidence,
+
+    -- * ChangeLog
+    ChangeLog (..),
+    newChangeLog,
+    changeLog_action,
+    changeLog_createdAt,
+    changeLog_createdBy,
+    changeLog_objectName,
+    changeLog_objectType,
+
+    -- * Control
+    Control (..),
+    newControl,
+    control_actionPlanInstructions,
+    control_actionPlanTitle,
+    control_arn,
+    control_controlMappingSources,
+    control_controlSources,
+    control_createdAt,
+    control_createdBy,
+    control_description,
+    control_id,
+    control_lastUpdatedAt,
+    control_lastUpdatedBy,
+    control_name,
+    control_tags,
+    control_testingInformation,
+    control_type,
+
+    -- * ControlComment
+    ControlComment (..),
+    newControlComment,
+    controlComment_authorName,
+    controlComment_commentBody,
+    controlComment_postedDate,
+
+    -- * ControlDomainInsights
+    ControlDomainInsights (..),
+    newControlDomainInsights,
+    controlDomainInsights_controlsCountByNoncompliantEvidence,
+    controlDomainInsights_evidenceInsights,
+    controlDomainInsights_id,
+    controlDomainInsights_lastUpdated,
+    controlDomainInsights_name,
+    controlDomainInsights_totalControlsCount,
+
+    -- * ControlInsightsMetadataByAssessmentItem
+    ControlInsightsMetadataByAssessmentItem (..),
+    newControlInsightsMetadataByAssessmentItem,
+    controlInsightsMetadataByAssessmentItem_controlSetName,
+    controlInsightsMetadataByAssessmentItem_evidenceInsights,
+    controlInsightsMetadataByAssessmentItem_id,
+    controlInsightsMetadataByAssessmentItem_lastUpdated,
+    controlInsightsMetadataByAssessmentItem_name,
+
+    -- * ControlInsightsMetadataItem
+    ControlInsightsMetadataItem (..),
+    newControlInsightsMetadataItem,
+    controlInsightsMetadataItem_evidenceInsights,
+    controlInsightsMetadataItem_id,
+    controlInsightsMetadataItem_lastUpdated,
+    controlInsightsMetadataItem_name,
+
+    -- * ControlMappingSource
+    ControlMappingSource (..),
+    newControlMappingSource,
+    controlMappingSource_sourceDescription,
+    controlMappingSource_sourceFrequency,
+    controlMappingSource_sourceId,
+    controlMappingSource_sourceKeyword,
+    controlMappingSource_sourceName,
+    controlMappingSource_sourceSetUpOption,
+    controlMappingSource_sourceType,
+    controlMappingSource_troubleshootingText,
+
+    -- * ControlMetadata
+    ControlMetadata (..),
+    newControlMetadata,
+    controlMetadata_arn,
+    controlMetadata_controlSources,
+    controlMetadata_createdAt,
+    controlMetadata_id,
+    controlMetadata_lastUpdatedAt,
+    controlMetadata_name,
+
+    -- * ControlSet
+    ControlSet (..),
+    newControlSet,
+    controlSet_controls,
+    controlSet_id,
+    controlSet_name,
+
+    -- * CreateAssessmentFrameworkControl
+    CreateAssessmentFrameworkControl (..),
+    newCreateAssessmentFrameworkControl,
+    createAssessmentFrameworkControl_id,
+
+    -- * CreateAssessmentFrameworkControlSet
+    CreateAssessmentFrameworkControlSet (..),
+    newCreateAssessmentFrameworkControlSet,
+    createAssessmentFrameworkControlSet_controls,
+    createAssessmentFrameworkControlSet_name,
+
+    -- * CreateControlMappingSource
+    CreateControlMappingSource (..),
+    newCreateControlMappingSource,
+    createControlMappingSource_sourceDescription,
+    createControlMappingSource_sourceFrequency,
+    createControlMappingSource_sourceKeyword,
+    createControlMappingSource_sourceName,
+    createControlMappingSource_sourceSetUpOption,
+    createControlMappingSource_sourceType,
+    createControlMappingSource_troubleshootingText,
+
+    -- * CreateDelegationRequest
+    CreateDelegationRequest (..),
+    newCreateDelegationRequest,
+    createDelegationRequest_comment,
+    createDelegationRequest_controlSetId,
+    createDelegationRequest_roleArn,
+    createDelegationRequest_roleType,
+
+    -- * Delegation
+    Delegation (..),
+    newDelegation,
+    delegation_assessmentId,
+    delegation_assessmentName,
+    delegation_comment,
+    delegation_controlSetId,
+    delegation_createdBy,
+    delegation_creationTime,
+    delegation_id,
+    delegation_lastUpdated,
+    delegation_roleArn,
+    delegation_roleType,
+    delegation_status,
+
+    -- * DelegationMetadata
+    DelegationMetadata (..),
+    newDelegationMetadata,
+    delegationMetadata_assessmentId,
+    delegationMetadata_assessmentName,
+    delegationMetadata_controlSetName,
+    delegationMetadata_creationTime,
+    delegationMetadata_id,
+    delegationMetadata_roleArn,
+    delegationMetadata_status,
+
+    -- * DeregistrationPolicy
+    DeregistrationPolicy (..),
+    newDeregistrationPolicy,
+    deregistrationPolicy_deleteResources,
+
+    -- * Evidence
+    Evidence (..),
+    newEvidence,
+    evidence_assessmentReportSelection,
+    evidence_attributes,
+    evidence_awsAccountId,
+    evidence_awsOrganization,
+    evidence_complianceCheck,
+    evidence_dataSource,
+    evidence_eventName,
+    evidence_eventSource,
+    evidence_evidenceAwsAccountId,
+    evidence_evidenceByType,
+    evidence_evidenceFolderId,
+    evidence_iamId,
+    evidence_id,
+    evidence_resourcesIncluded,
+    evidence_time,
+
+    -- * EvidenceFinderEnablement
+    EvidenceFinderEnablement (..),
+    newEvidenceFinderEnablement,
+    evidenceFinderEnablement_backfillStatus,
+    evidenceFinderEnablement_enablementStatus,
+    evidenceFinderEnablement_error,
+    evidenceFinderEnablement_eventDataStoreArn,
+
+    -- * EvidenceInsights
+    EvidenceInsights (..),
+    newEvidenceInsights,
+    evidenceInsights_compliantEvidenceCount,
+    evidenceInsights_inconclusiveEvidenceCount,
+    evidenceInsights_noncompliantEvidenceCount,
+
+    -- * Framework
+    Framework (..),
+    newFramework,
+    framework_arn,
+    framework_complianceType,
+    framework_controlSets,
+    framework_controlSources,
+    framework_createdAt,
+    framework_createdBy,
+    framework_description,
+    framework_id,
+    framework_lastUpdatedAt,
+    framework_lastUpdatedBy,
+    framework_logo,
+    framework_name,
+    framework_tags,
+    framework_type,
+
+    -- * FrameworkMetadata
+    FrameworkMetadata (..),
+    newFrameworkMetadata,
+    frameworkMetadata_complianceType,
+    frameworkMetadata_description,
+    frameworkMetadata_logo,
+    frameworkMetadata_name,
+
+    -- * Insights
+    Insights (..),
+    newInsights,
+    insights_activeAssessmentsCount,
+    insights_assessmentControlsCountByNoncompliantEvidence,
+    insights_compliantEvidenceCount,
+    insights_inconclusiveEvidenceCount,
+    insights_lastUpdated,
+    insights_noncompliantEvidenceCount,
+    insights_totalAssessmentControlsCount,
+
+    -- * InsightsByAssessment
+    InsightsByAssessment (..),
+    newInsightsByAssessment,
+    insightsByAssessment_assessmentControlsCountByNoncompliantEvidence,
+    insightsByAssessment_compliantEvidenceCount,
+    insightsByAssessment_inconclusiveEvidenceCount,
+    insightsByAssessment_lastUpdated,
+    insightsByAssessment_noncompliantEvidenceCount,
+    insightsByAssessment_totalAssessmentControlsCount,
+
+    -- * ManualEvidence
+    ManualEvidence (..),
+    newManualEvidence,
+    manualEvidence_s3ResourcePath,
+
+    -- * Notification
+    Notification (..),
+    newNotification,
+    notification_assessmentId,
+    notification_assessmentName,
+    notification_controlSetId,
+    notification_controlSetName,
+    notification_description,
+    notification_eventTime,
+    notification_id,
+    notification_source,
+
+    -- * Resource
+    Resource (..),
+    newResource,
+    resource_arn,
+    resource_complianceCheck,
+    resource_value,
+
+    -- * Role
+    Role (..),
+    newRole,
+    role_roleType,
+    role_roleArn,
+
+    -- * Scope
+    Scope (..),
+    newScope,
+    scope_awsAccounts,
+    scope_awsServices,
+
+    -- * ServiceMetadata
+    ServiceMetadata (..),
+    newServiceMetadata,
+    serviceMetadata_category,
+    serviceMetadata_description,
+    serviceMetadata_displayName,
+    serviceMetadata_name,
+
+    -- * Settings
+    Settings (..),
+    newSettings,
+    settings_defaultAssessmentReportsDestination,
+    settings_defaultProcessOwners,
+    settings_deregistrationPolicy,
+    settings_evidenceFinderEnablement,
+    settings_isAwsOrgEnabled,
+    settings_kmsKey,
+    settings_snsTopic,
+
+    -- * SourceKeyword
+    SourceKeyword (..),
+    newSourceKeyword,
+    sourceKeyword_keywordInputType,
+    sourceKeyword_keywordValue,
+
+    -- * URL
+    URL (..),
+    newURL,
+    url_hyperlinkName,
+    url_link,
+
+    -- * UpdateAssessmentFrameworkControlSet
+    UpdateAssessmentFrameworkControlSet (..),
+    newUpdateAssessmentFrameworkControlSet,
+    updateAssessmentFrameworkControlSet_id,
+    updateAssessmentFrameworkControlSet_name,
+    updateAssessmentFrameworkControlSet_controls,
+  )
+where
+
+import Amazonka.AuditManager.Types.AWSAccount
+import Amazonka.AuditManager.Types.AWSService
+import Amazonka.AuditManager.Types.AccountStatus
+import Amazonka.AuditManager.Types.ActionEnum
+import Amazonka.AuditManager.Types.Assessment
+import Amazonka.AuditManager.Types.AssessmentControl
+import Amazonka.AuditManager.Types.AssessmentControlSet
+import Amazonka.AuditManager.Types.AssessmentEvidenceFolder
+import Amazonka.AuditManager.Types.AssessmentFramework
+import Amazonka.AuditManager.Types.AssessmentFrameworkMetadata
+import Amazonka.AuditManager.Types.AssessmentFrameworkShareRequest
+import Amazonka.AuditManager.Types.AssessmentMetadata
+import Amazonka.AuditManager.Types.AssessmentMetadataItem
+import Amazonka.AuditManager.Types.AssessmentReport
+import Amazonka.AuditManager.Types.AssessmentReportDestinationType
+import Amazonka.AuditManager.Types.AssessmentReportEvidenceError
+import Amazonka.AuditManager.Types.AssessmentReportMetadata
+import Amazonka.AuditManager.Types.AssessmentReportStatus
+import Amazonka.AuditManager.Types.AssessmentReportsDestination
+import Amazonka.AuditManager.Types.AssessmentStatus
+import Amazonka.AuditManager.Types.BatchCreateDelegationByAssessmentError
+import Amazonka.AuditManager.Types.BatchDeleteDelegationByAssessmentError
+import Amazonka.AuditManager.Types.BatchImportEvidenceToAssessmentControlError
+import Amazonka.AuditManager.Types.ChangeLog
+import Amazonka.AuditManager.Types.Control
+import Amazonka.AuditManager.Types.ControlComment
+import Amazonka.AuditManager.Types.ControlDomainInsights
+import Amazonka.AuditManager.Types.ControlInsightsMetadataByAssessmentItem
+import Amazonka.AuditManager.Types.ControlInsightsMetadataItem
+import Amazonka.AuditManager.Types.ControlMappingSource
+import Amazonka.AuditManager.Types.ControlMetadata
+import Amazonka.AuditManager.Types.ControlResponse
+import Amazonka.AuditManager.Types.ControlSet
+import Amazonka.AuditManager.Types.ControlSetStatus
+import Amazonka.AuditManager.Types.ControlStatus
+import Amazonka.AuditManager.Types.ControlType
+import Amazonka.AuditManager.Types.CreateAssessmentFrameworkControl
+import Amazonka.AuditManager.Types.CreateAssessmentFrameworkControlSet
+import Amazonka.AuditManager.Types.CreateControlMappingSource
+import Amazonka.AuditManager.Types.CreateDelegationRequest
+import Amazonka.AuditManager.Types.Delegation
+import Amazonka.AuditManager.Types.DelegationMetadata
+import Amazonka.AuditManager.Types.DelegationStatus
+import Amazonka.AuditManager.Types.DeleteResources
+import Amazonka.AuditManager.Types.DeregistrationPolicy
+import Amazonka.AuditManager.Types.Evidence
+import Amazonka.AuditManager.Types.EvidenceFinderBackfillStatus
+import Amazonka.AuditManager.Types.EvidenceFinderEnablement
+import Amazonka.AuditManager.Types.EvidenceFinderEnablementStatus
+import Amazonka.AuditManager.Types.EvidenceInsights
+import Amazonka.AuditManager.Types.Framework
+import Amazonka.AuditManager.Types.FrameworkMetadata
+import Amazonka.AuditManager.Types.FrameworkType
+import Amazonka.AuditManager.Types.Insights
+import Amazonka.AuditManager.Types.InsightsByAssessment
+import Amazonka.AuditManager.Types.KeywordInputType
+import Amazonka.AuditManager.Types.ManualEvidence
+import Amazonka.AuditManager.Types.Notification
+import Amazonka.AuditManager.Types.ObjectTypeEnum
+import Amazonka.AuditManager.Types.Resource
+import Amazonka.AuditManager.Types.Role
+import Amazonka.AuditManager.Types.RoleType
+import Amazonka.AuditManager.Types.Scope
+import Amazonka.AuditManager.Types.ServiceMetadata
+import Amazonka.AuditManager.Types.SettingAttribute
+import Amazonka.AuditManager.Types.Settings
+import Amazonka.AuditManager.Types.ShareRequestAction
+import Amazonka.AuditManager.Types.ShareRequestStatus
+import Amazonka.AuditManager.Types.ShareRequestType
+import Amazonka.AuditManager.Types.SourceFrequency
+import Amazonka.AuditManager.Types.SourceKeyword
+import Amazonka.AuditManager.Types.SourceSetUpOption
+import Amazonka.AuditManager.Types.SourceType
+import Amazonka.AuditManager.Types.URL
+import Amazonka.AuditManager.Types.UpdateAssessmentFrameworkControlSet
+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 @2017-07-25@ of the Amazon Audit Manager SDK configuration.
+defaultService :: Core.Service
+defaultService =
+  Core.Service
+    { Core.abbrev = "AuditManager",
+      Core.signer = Sign.v4,
+      Core.endpointPrefix = "auditmanager",
+      Core.signingName = "auditmanager",
+      Core.version = "2017-07-25",
+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,
+      Core.endpoint = Core.defaultEndpoint defaultService,
+      Core.timeout = Prelude.Just 70,
+      Core.check = Core.statusSuccess,
+      Core.error = Core.parseJSONError "AuditManager",
+      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
+
+-- | Your account isn\'t registered with Audit Manager. Check the delegated
+-- administrator setup on the Audit Manager settings page, and try again.
+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_AccessDeniedException =
+  Core._MatchServiceError
+    defaultService
+    "AccessDeniedException"
+    Prelude.. Core.hasStatus 403
+
+-- | An internal service error occurred during the processing of your
+-- request. Try again later.
+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InternalServerException =
+  Core._MatchServiceError
+    defaultService
+    "InternalServerException"
+    Prelude.. Core.hasStatus 500
+
+-- | The resource that\'s specified in the request can\'t be found.
+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ResourceNotFoundException =
+  Core._MatchServiceError
+    defaultService
+    "ResourceNotFoundException"
+    Prelude.. Core.hasStatus 404
+
+-- | You\'ve reached your account quota for this resource type. To perform
+-- the requested action, delete some existing resources or
+-- <https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html request a quota increase>
+-- from the Service Quotas console. For a list of Audit Manager service
+-- quotas, see
+-- <https://docs.aws.amazon.com/audit-manager/latest/userguide/service-quotas.html Quotas and restrictions for Audit Manager>.
+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ServiceQuotaExceededException =
+  Core._MatchServiceError
+    defaultService
+    "ServiceQuotaExceededException"
+    Prelude.. Core.hasStatus 402
+
+-- | The request was denied due to request throttling.
+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ThrottlingException =
+  Core._MatchServiceError
+    defaultService
+    "ThrottlingException"
+    Prelude.. Core.hasStatus 400
+
+-- | The request has invalid or missing parameters.
+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ValidationException =
+  Core._MatchServiceError
+    defaultService
+    "ValidationException"
+    Prelude.. Core.hasStatus 400
diff --git a/gen/Amazonka/AuditManager/Types/AWSAccount.hs b/gen/Amazonka/AuditManager/Types/AWSAccount.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AWSAccount.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.AuditManager.Types.AWSAccount
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AWSAccount where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The wrapper of Amazon Web Services account details, such as account ID
+-- or email address.
+--
+-- /See:/ 'newAWSAccount' smart constructor.
+data AWSAccount = AWSAccount'
+  { -- | The email address that\'s associated with the Amazon Web Services
+    -- account.
+    emailAddress :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the Amazon Web Services account.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The name of the Amazon Web Services account.
+    name :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AWSAccount' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'emailAddress', 'aWSAccount_emailAddress' - The email address that\'s associated with the Amazon Web Services
+-- account.
+--
+-- 'id', 'aWSAccount_id' - The identifier for the Amazon Web Services account.
+--
+-- 'name', 'aWSAccount_name' - The name of the Amazon Web Services account.
+newAWSAccount ::
+  AWSAccount
+newAWSAccount =
+  AWSAccount'
+    { emailAddress = Prelude.Nothing,
+      id = Prelude.Nothing,
+      name = Prelude.Nothing
+    }
+
+-- | The email address that\'s associated with the Amazon Web Services
+-- account.
+aWSAccount_emailAddress :: Lens.Lens' AWSAccount (Prelude.Maybe Prelude.Text)
+aWSAccount_emailAddress = Lens.lens (\AWSAccount' {emailAddress} -> emailAddress) (\s@AWSAccount' {} a -> s {emailAddress = a} :: AWSAccount)
+
+-- | The identifier for the Amazon Web Services account.
+aWSAccount_id :: Lens.Lens' AWSAccount (Prelude.Maybe Prelude.Text)
+aWSAccount_id = Lens.lens (\AWSAccount' {id} -> id) (\s@AWSAccount' {} a -> s {id = a} :: AWSAccount)
+
+-- | The name of the Amazon Web Services account.
+aWSAccount_name :: Lens.Lens' AWSAccount (Prelude.Maybe Prelude.Text)
+aWSAccount_name = Lens.lens (\AWSAccount' {name} -> name) (\s@AWSAccount' {} a -> s {name = a} :: AWSAccount)
+
+instance Data.FromJSON AWSAccount where
+  parseJSON =
+    Data.withObject
+      "AWSAccount"
+      ( \x ->
+          AWSAccount'
+            Prelude.<$> (x Data..:? "emailAddress")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "name")
+      )
+
+instance Prelude.Hashable AWSAccount where
+  hashWithSalt _salt AWSAccount' {..} =
+    _salt
+      `Prelude.hashWithSalt` emailAddress
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` name
+
+instance Prelude.NFData AWSAccount where
+  rnf AWSAccount' {..} =
+    Prelude.rnf emailAddress
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf name
+
+instance Data.ToJSON AWSAccount where
+  toJSON AWSAccount' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("emailAddress" Data..=) Prelude.<$> emailAddress,
+            ("id" Data..=) Prelude.<$> id,
+            ("name" Data..=) Prelude.<$> name
+          ]
+      )
diff --git a/gen/Amazonka/AuditManager/Types/AWSService.hs b/gen/Amazonka/AuditManager/Types/AWSService.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AWSService.hs
@@ -0,0 +1,74 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.AWSService
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AWSService where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | An Amazon Web Service such as Amazon S3 or CloudTrail.
+--
+-- /See:/ 'newAWSService' smart constructor.
+data AWSService = AWSService'
+  { -- | The name of the Amazon Web Service.
+    serviceName :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AWSService' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'serviceName', 'aWSService_serviceName' - The name of the Amazon Web Service.
+newAWSService ::
+  AWSService
+newAWSService =
+  AWSService' {serviceName = Prelude.Nothing}
+
+-- | The name of the Amazon Web Service.
+aWSService_serviceName :: Lens.Lens' AWSService (Prelude.Maybe Prelude.Text)
+aWSService_serviceName = Lens.lens (\AWSService' {serviceName} -> serviceName) (\s@AWSService' {} a -> s {serviceName = a} :: AWSService)
+
+instance Data.FromJSON AWSService where
+  parseJSON =
+    Data.withObject
+      "AWSService"
+      ( \x ->
+          AWSService' Prelude.<$> (x Data..:? "serviceName")
+      )
+
+instance Prelude.Hashable AWSService where
+  hashWithSalt _salt AWSService' {..} =
+    _salt `Prelude.hashWithSalt` serviceName
+
+instance Prelude.NFData AWSService where
+  rnf AWSService' {..} = Prelude.rnf serviceName
+
+instance Data.ToJSON AWSService where
+  toJSON AWSService' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [("serviceName" Data..=) Prelude.<$> serviceName]
+      )
diff --git a/gen/Amazonka/AuditManager/Types/AccountStatus.hs b/gen/Amazonka/AuditManager/Types/AccountStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AccountStatus.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.AuditManager.Types.AccountStatus
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AccountStatus
+  ( AccountStatus
+      ( ..,
+        AccountStatus_ACTIVE,
+        AccountStatus_INACTIVE,
+        AccountStatus_PENDING_ACTIVATION
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype AccountStatus = AccountStatus'
+  { fromAccountStatus ::
+      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 AccountStatus_ACTIVE :: AccountStatus
+pattern AccountStatus_ACTIVE = AccountStatus' "ACTIVE"
+
+pattern AccountStatus_INACTIVE :: AccountStatus
+pattern AccountStatus_INACTIVE = AccountStatus' "INACTIVE"
+
+pattern AccountStatus_PENDING_ACTIVATION :: AccountStatus
+pattern AccountStatus_PENDING_ACTIVATION = AccountStatus' "PENDING_ACTIVATION"
+
+{-# COMPLETE
+  AccountStatus_ACTIVE,
+  AccountStatus_INACTIVE,
+  AccountStatus_PENDING_ACTIVATION,
+  AccountStatus'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/ActionEnum.hs b/gen/Amazonka/AuditManager/Types/ActionEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ActionEnum.hs
@@ -0,0 +1,101 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.ActionEnum
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ActionEnum
+  ( ActionEnum
+      ( ..,
+        ActionEnum_ACTIVE,
+        ActionEnum_CREATE,
+        ActionEnum_DELETE,
+        ActionEnum_IMPORT_EVIDENCE,
+        ActionEnum_INACTIVE,
+        ActionEnum_REVIEWED,
+        ActionEnum_UNDER_REVIEW,
+        ActionEnum_UPDATE_METADATA
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ActionEnum = ActionEnum'
+  { fromActionEnum ::
+      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 ActionEnum_ACTIVE :: ActionEnum
+pattern ActionEnum_ACTIVE = ActionEnum' "ACTIVE"
+
+pattern ActionEnum_CREATE :: ActionEnum
+pattern ActionEnum_CREATE = ActionEnum' "CREATE"
+
+pattern ActionEnum_DELETE :: ActionEnum
+pattern ActionEnum_DELETE = ActionEnum' "DELETE"
+
+pattern ActionEnum_IMPORT_EVIDENCE :: ActionEnum
+pattern ActionEnum_IMPORT_EVIDENCE = ActionEnum' "IMPORT_EVIDENCE"
+
+pattern ActionEnum_INACTIVE :: ActionEnum
+pattern ActionEnum_INACTIVE = ActionEnum' "INACTIVE"
+
+pattern ActionEnum_REVIEWED :: ActionEnum
+pattern ActionEnum_REVIEWED = ActionEnum' "REVIEWED"
+
+pattern ActionEnum_UNDER_REVIEW :: ActionEnum
+pattern ActionEnum_UNDER_REVIEW = ActionEnum' "UNDER_REVIEW"
+
+pattern ActionEnum_UPDATE_METADATA :: ActionEnum
+pattern ActionEnum_UPDATE_METADATA = ActionEnum' "UPDATE_METADATA"
+
+{-# COMPLETE
+  ActionEnum_ACTIVE,
+  ActionEnum_CREATE,
+  ActionEnum_DELETE,
+  ActionEnum_IMPORT_EVIDENCE,
+  ActionEnum_INACTIVE,
+  ActionEnum_REVIEWED,
+  ActionEnum_UNDER_REVIEW,
+  ActionEnum_UPDATE_METADATA,
+  ActionEnum'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/Assessment.hs b/gen/Amazonka/AuditManager/Types/Assessment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/Assessment.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.Assessment
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.Assessment where
+
+import Amazonka.AuditManager.Types.AWSAccount
+import Amazonka.AuditManager.Types.AssessmentFramework
+import Amazonka.AuditManager.Types.AssessmentMetadata
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | An entity that defines the scope of audit evidence collected by Audit
+-- Manager. An Audit Manager assessment is an implementation of an Audit
+-- Manager framework.
+--
+-- /See:/ 'newAssessment' smart constructor.
+data Assessment = Assessment'
+  { -- | The Amazon Resource Name (ARN) of the assessment.
+    arn :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Web Services account that\'s associated with the assessment.
+    awsAccount :: Prelude.Maybe AWSAccount,
+    -- | The framework that the assessment was created from.
+    framework :: Prelude.Maybe AssessmentFramework,
+    -- | The metadata for the assessment.
+    metadata :: Prelude.Maybe AssessmentMetadata,
+    -- | The tags that are associated with the assessment.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Assessment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'assessment_arn' - The Amazon Resource Name (ARN) of the assessment.
+--
+-- 'awsAccount', 'assessment_awsAccount' - The Amazon Web Services account that\'s associated with the assessment.
+--
+-- 'framework', 'assessment_framework' - The framework that the assessment was created from.
+--
+-- 'metadata', 'assessment_metadata' - The metadata for the assessment.
+--
+-- 'tags', 'assessment_tags' - The tags that are associated with the assessment.
+newAssessment ::
+  Assessment
+newAssessment =
+  Assessment'
+    { arn = Prelude.Nothing,
+      awsAccount = Prelude.Nothing,
+      framework = Prelude.Nothing,
+      metadata = Prelude.Nothing,
+      tags = Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) of the assessment.
+assessment_arn :: Lens.Lens' Assessment (Prelude.Maybe Prelude.Text)
+assessment_arn = Lens.lens (\Assessment' {arn} -> arn) (\s@Assessment' {} a -> s {arn = a} :: Assessment)
+
+-- | The Amazon Web Services account that\'s associated with the assessment.
+assessment_awsAccount :: Lens.Lens' Assessment (Prelude.Maybe AWSAccount)
+assessment_awsAccount = Lens.lens (\Assessment' {awsAccount} -> awsAccount) (\s@Assessment' {} a -> s {awsAccount = a} :: Assessment)
+
+-- | The framework that the assessment was created from.
+assessment_framework :: Lens.Lens' Assessment (Prelude.Maybe AssessmentFramework)
+assessment_framework = Lens.lens (\Assessment' {framework} -> framework) (\s@Assessment' {} a -> s {framework = a} :: Assessment)
+
+-- | The metadata for the assessment.
+assessment_metadata :: Lens.Lens' Assessment (Prelude.Maybe AssessmentMetadata)
+assessment_metadata = Lens.lens (\Assessment' {metadata} -> metadata) (\s@Assessment' {} a -> s {metadata = a} :: Assessment)
+
+-- | The tags that are associated with the assessment.
+assessment_tags :: Lens.Lens' Assessment (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+assessment_tags = Lens.lens (\Assessment' {tags} -> tags) (\s@Assessment' {} a -> s {tags = a} :: Assessment) Prelude.. Lens.mapping Lens.coerced
+
+instance Data.FromJSON Assessment where
+  parseJSON =
+    Data.withObject
+      "Assessment"
+      ( \x ->
+          Assessment'
+            Prelude.<$> (x Data..:? "arn")
+            Prelude.<*> (x Data..:? "awsAccount")
+            Prelude.<*> (x Data..:? "framework")
+            Prelude.<*> (x Data..:? "metadata")
+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)
+      )
+
+instance Prelude.Hashable Assessment where
+  hashWithSalt _salt Assessment' {..} =
+    _salt
+      `Prelude.hashWithSalt` arn
+      `Prelude.hashWithSalt` awsAccount
+      `Prelude.hashWithSalt` framework
+      `Prelude.hashWithSalt` metadata
+      `Prelude.hashWithSalt` tags
+
+instance Prelude.NFData Assessment where
+  rnf Assessment' {..} =
+    Prelude.rnf arn
+      `Prelude.seq` Prelude.rnf awsAccount
+      `Prelude.seq` Prelude.rnf framework
+      `Prelude.seq` Prelude.rnf metadata
+      `Prelude.seq` Prelude.rnf tags
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentControl.hs b/gen/Amazonka/AuditManager/Types/AssessmentControl.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentControl.hs
@@ -0,0 +1,176 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.AssessmentControl
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentControl where
+
+import Amazonka.AuditManager.Types.ControlComment
+import Amazonka.AuditManager.Types.ControlResponse
+import Amazonka.AuditManager.Types.ControlStatus
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The control entity that represents a standard control or a custom
+-- control in an Audit Manager assessment.
+--
+-- /See:/ 'newAssessmentControl' smart constructor.
+data AssessmentControl = AssessmentControl'
+  { -- | The amount of evidence in the assessment report.
+    assessmentReportEvidenceCount :: Prelude.Maybe Prelude.Int,
+    -- | The list of comments that\'s attached to the control.
+    comments :: Prelude.Maybe [ControlComment],
+    -- | The description of the control.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The amount of evidence that\'s collected for the control.
+    evidenceCount :: Prelude.Maybe Prelude.Int,
+    -- | The list of data sources for the evidence.
+    evidenceSources :: Prelude.Maybe [Prelude.Text],
+    -- | The identifier for the control.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The name of the control.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The response of the control.
+    response :: Prelude.Maybe ControlResponse,
+    -- | The status of the control.
+    status :: Prelude.Maybe ControlStatus
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssessmentControl' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentReportEvidenceCount', 'assessmentControl_assessmentReportEvidenceCount' - The amount of evidence in the assessment report.
+--
+-- 'comments', 'assessmentControl_comments' - The list of comments that\'s attached to the control.
+--
+-- 'description', 'assessmentControl_description' - The description of the control.
+--
+-- 'evidenceCount', 'assessmentControl_evidenceCount' - The amount of evidence that\'s collected for the control.
+--
+-- 'evidenceSources', 'assessmentControl_evidenceSources' - The list of data sources for the evidence.
+--
+-- 'id', 'assessmentControl_id' - The identifier for the control.
+--
+-- 'name', 'assessmentControl_name' - The name of the control.
+--
+-- 'response', 'assessmentControl_response' - The response of the control.
+--
+-- 'status', 'assessmentControl_status' - The status of the control.
+newAssessmentControl ::
+  AssessmentControl
+newAssessmentControl =
+  AssessmentControl'
+    { assessmentReportEvidenceCount =
+        Prelude.Nothing,
+      comments = Prelude.Nothing,
+      description = Prelude.Nothing,
+      evidenceCount = Prelude.Nothing,
+      evidenceSources = Prelude.Nothing,
+      id = Prelude.Nothing,
+      name = Prelude.Nothing,
+      response = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | The amount of evidence in the assessment report.
+assessmentControl_assessmentReportEvidenceCount :: Lens.Lens' AssessmentControl (Prelude.Maybe Prelude.Int)
+assessmentControl_assessmentReportEvidenceCount = Lens.lens (\AssessmentControl' {assessmentReportEvidenceCount} -> assessmentReportEvidenceCount) (\s@AssessmentControl' {} a -> s {assessmentReportEvidenceCount = a} :: AssessmentControl)
+
+-- | The list of comments that\'s attached to the control.
+assessmentControl_comments :: Lens.Lens' AssessmentControl (Prelude.Maybe [ControlComment])
+assessmentControl_comments = Lens.lens (\AssessmentControl' {comments} -> comments) (\s@AssessmentControl' {} a -> s {comments = a} :: AssessmentControl) Prelude.. Lens.mapping Lens.coerced
+
+-- | The description of the control.
+assessmentControl_description :: Lens.Lens' AssessmentControl (Prelude.Maybe Prelude.Text)
+assessmentControl_description = Lens.lens (\AssessmentControl' {description} -> description) (\s@AssessmentControl' {} a -> s {description = a} :: AssessmentControl)
+
+-- | The amount of evidence that\'s collected for the control.
+assessmentControl_evidenceCount :: Lens.Lens' AssessmentControl (Prelude.Maybe Prelude.Int)
+assessmentControl_evidenceCount = Lens.lens (\AssessmentControl' {evidenceCount} -> evidenceCount) (\s@AssessmentControl' {} a -> s {evidenceCount = a} :: AssessmentControl)
+
+-- | The list of data sources for the evidence.
+assessmentControl_evidenceSources :: Lens.Lens' AssessmentControl (Prelude.Maybe [Prelude.Text])
+assessmentControl_evidenceSources = Lens.lens (\AssessmentControl' {evidenceSources} -> evidenceSources) (\s@AssessmentControl' {} a -> s {evidenceSources = a} :: AssessmentControl) Prelude.. Lens.mapping Lens.coerced
+
+-- | The identifier for the control.
+assessmentControl_id :: Lens.Lens' AssessmentControl (Prelude.Maybe Prelude.Text)
+assessmentControl_id = Lens.lens (\AssessmentControl' {id} -> id) (\s@AssessmentControl' {} a -> s {id = a} :: AssessmentControl)
+
+-- | The name of the control.
+assessmentControl_name :: Lens.Lens' AssessmentControl (Prelude.Maybe Prelude.Text)
+assessmentControl_name = Lens.lens (\AssessmentControl' {name} -> name) (\s@AssessmentControl' {} a -> s {name = a} :: AssessmentControl)
+
+-- | The response of the control.
+assessmentControl_response :: Lens.Lens' AssessmentControl (Prelude.Maybe ControlResponse)
+assessmentControl_response = Lens.lens (\AssessmentControl' {response} -> response) (\s@AssessmentControl' {} a -> s {response = a} :: AssessmentControl)
+
+-- | The status of the control.
+assessmentControl_status :: Lens.Lens' AssessmentControl (Prelude.Maybe ControlStatus)
+assessmentControl_status = Lens.lens (\AssessmentControl' {status} -> status) (\s@AssessmentControl' {} a -> s {status = a} :: AssessmentControl)
+
+instance Data.FromJSON AssessmentControl where
+  parseJSON =
+    Data.withObject
+      "AssessmentControl"
+      ( \x ->
+          AssessmentControl'
+            Prelude.<$> (x Data..:? "assessmentReportEvidenceCount")
+            Prelude.<*> (x Data..:? "comments" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "evidenceCount")
+            Prelude.<*> ( x
+                            Data..:? "evidenceSources"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "name")
+            Prelude.<*> (x Data..:? "response")
+            Prelude.<*> (x Data..:? "status")
+      )
+
+instance Prelude.Hashable AssessmentControl where
+  hashWithSalt _salt AssessmentControl' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentReportEvidenceCount
+      `Prelude.hashWithSalt` comments
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` evidenceCount
+      `Prelude.hashWithSalt` evidenceSources
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` response
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData AssessmentControl where
+  rnf AssessmentControl' {..} =
+    Prelude.rnf assessmentReportEvidenceCount
+      `Prelude.seq` Prelude.rnf comments
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf evidenceCount
+      `Prelude.seq` Prelude.rnf evidenceSources
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf response
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentControlSet.hs b/gen/Amazonka/AuditManager/Types/AssessmentControlSet.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentControlSet.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.AuditManager.Types.AssessmentControlSet
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentControlSet where
+
+import Amazonka.AuditManager.Types.AssessmentControl
+import Amazonka.AuditManager.Types.ControlSetStatus
+import Amazonka.AuditManager.Types.Delegation
+import Amazonka.AuditManager.Types.Role
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Represents a set of controls in an Audit Manager assessment.
+--
+-- /See:/ 'newAssessmentControlSet' smart constructor.
+data AssessmentControlSet = AssessmentControlSet'
+  { -- | The list of controls that\'s contained with the control set.
+    controls :: Prelude.Maybe [AssessmentControl],
+    -- | The delegations that are associated with the control set.
+    delegations :: Prelude.Maybe [Delegation],
+    -- | The description for the control set.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The identifier of the control set in the assessment. This is the control
+    -- set name in a plain string format.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The total number of evidence objects that are uploaded manually to the
+    -- control set.
+    manualEvidenceCount :: Prelude.Maybe Prelude.Int,
+    -- | The roles that are associated with the control set.
+    roles :: Prelude.Maybe [Role],
+    -- | The current status of the control set.
+    status :: Prelude.Maybe ControlSetStatus,
+    -- | The total number of evidence objects that are retrieved automatically
+    -- for the control set.
+    systemEvidenceCount :: Prelude.Maybe Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssessmentControlSet' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controls', 'assessmentControlSet_controls' - The list of controls that\'s contained with the control set.
+--
+-- 'delegations', 'assessmentControlSet_delegations' - The delegations that are associated with the control set.
+--
+-- 'description', 'assessmentControlSet_description' - The description for the control set.
+--
+-- 'id', 'assessmentControlSet_id' - The identifier of the control set in the assessment. This is the control
+-- set name in a plain string format.
+--
+-- 'manualEvidenceCount', 'assessmentControlSet_manualEvidenceCount' - The total number of evidence objects that are uploaded manually to the
+-- control set.
+--
+-- 'roles', 'assessmentControlSet_roles' - The roles that are associated with the control set.
+--
+-- 'status', 'assessmentControlSet_status' - The current status of the control set.
+--
+-- 'systemEvidenceCount', 'assessmentControlSet_systemEvidenceCount' - The total number of evidence objects that are retrieved automatically
+-- for the control set.
+newAssessmentControlSet ::
+  AssessmentControlSet
+newAssessmentControlSet =
+  AssessmentControlSet'
+    { controls = Prelude.Nothing,
+      delegations = Prelude.Nothing,
+      description = Prelude.Nothing,
+      id = Prelude.Nothing,
+      manualEvidenceCount = Prelude.Nothing,
+      roles = Prelude.Nothing,
+      status = Prelude.Nothing,
+      systemEvidenceCount = Prelude.Nothing
+    }
+
+-- | The list of controls that\'s contained with the control set.
+assessmentControlSet_controls :: Lens.Lens' AssessmentControlSet (Prelude.Maybe [AssessmentControl])
+assessmentControlSet_controls = Lens.lens (\AssessmentControlSet' {controls} -> controls) (\s@AssessmentControlSet' {} a -> s {controls = a} :: AssessmentControlSet) Prelude.. Lens.mapping Lens.coerced
+
+-- | The delegations that are associated with the control set.
+assessmentControlSet_delegations :: Lens.Lens' AssessmentControlSet (Prelude.Maybe [Delegation])
+assessmentControlSet_delegations = Lens.lens (\AssessmentControlSet' {delegations} -> delegations) (\s@AssessmentControlSet' {} a -> s {delegations = a} :: AssessmentControlSet) Prelude.. Lens.mapping Lens.coerced
+
+-- | The description for the control set.
+assessmentControlSet_description :: Lens.Lens' AssessmentControlSet (Prelude.Maybe Prelude.Text)
+assessmentControlSet_description = Lens.lens (\AssessmentControlSet' {description} -> description) (\s@AssessmentControlSet' {} a -> s {description = a} :: AssessmentControlSet)
+
+-- | The identifier of the control set in the assessment. This is the control
+-- set name in a plain string format.
+assessmentControlSet_id :: Lens.Lens' AssessmentControlSet (Prelude.Maybe Prelude.Text)
+assessmentControlSet_id = Lens.lens (\AssessmentControlSet' {id} -> id) (\s@AssessmentControlSet' {} a -> s {id = a} :: AssessmentControlSet)
+
+-- | The total number of evidence objects that are uploaded manually to the
+-- control set.
+assessmentControlSet_manualEvidenceCount :: Lens.Lens' AssessmentControlSet (Prelude.Maybe Prelude.Int)
+assessmentControlSet_manualEvidenceCount = Lens.lens (\AssessmentControlSet' {manualEvidenceCount} -> manualEvidenceCount) (\s@AssessmentControlSet' {} a -> s {manualEvidenceCount = a} :: AssessmentControlSet)
+
+-- | The roles that are associated with the control set.
+assessmentControlSet_roles :: Lens.Lens' AssessmentControlSet (Prelude.Maybe [Role])
+assessmentControlSet_roles = Lens.lens (\AssessmentControlSet' {roles} -> roles) (\s@AssessmentControlSet' {} a -> s {roles = a} :: AssessmentControlSet) Prelude.. Lens.mapping Lens.coerced
+
+-- | The current status of the control set.
+assessmentControlSet_status :: Lens.Lens' AssessmentControlSet (Prelude.Maybe ControlSetStatus)
+assessmentControlSet_status = Lens.lens (\AssessmentControlSet' {status} -> status) (\s@AssessmentControlSet' {} a -> s {status = a} :: AssessmentControlSet)
+
+-- | The total number of evidence objects that are retrieved automatically
+-- for the control set.
+assessmentControlSet_systemEvidenceCount :: Lens.Lens' AssessmentControlSet (Prelude.Maybe Prelude.Int)
+assessmentControlSet_systemEvidenceCount = Lens.lens (\AssessmentControlSet' {systemEvidenceCount} -> systemEvidenceCount) (\s@AssessmentControlSet' {} a -> s {systemEvidenceCount = a} :: AssessmentControlSet)
+
+instance Data.FromJSON AssessmentControlSet where
+  parseJSON =
+    Data.withObject
+      "AssessmentControlSet"
+      ( \x ->
+          AssessmentControlSet'
+            Prelude.<$> (x Data..:? "controls" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "delegations" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "manualEvidenceCount")
+            Prelude.<*> (x Data..:? "roles" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "status")
+            Prelude.<*> (x Data..:? "systemEvidenceCount")
+      )
+
+instance Prelude.Hashable AssessmentControlSet where
+  hashWithSalt _salt AssessmentControlSet' {..} =
+    _salt
+      `Prelude.hashWithSalt` controls
+      `Prelude.hashWithSalt` delegations
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` manualEvidenceCount
+      `Prelude.hashWithSalt` roles
+      `Prelude.hashWithSalt` status
+      `Prelude.hashWithSalt` systemEvidenceCount
+
+instance Prelude.NFData AssessmentControlSet where
+  rnf AssessmentControlSet' {..} =
+    Prelude.rnf controls
+      `Prelude.seq` Prelude.rnf delegations
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf manualEvidenceCount
+      `Prelude.seq` Prelude.rnf roles
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf systemEvidenceCount
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentEvidenceFolder.hs b/gen/Amazonka/AuditManager/Types/AssessmentEvidenceFolder.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentEvidenceFolder.hs
@@ -0,0 +1,307 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.AssessmentEvidenceFolder
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentEvidenceFolder where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The folder where Audit Manager stores evidence for an assessment.
+--
+-- /See:/ 'newAssessmentEvidenceFolder' smart constructor.
+data AssessmentEvidenceFolder = AssessmentEvidenceFolder'
+  { -- | The identifier for the assessment.
+    assessmentId :: Prelude.Maybe Prelude.Text,
+    -- | The total count of evidence that\'s included in the assessment report.
+    assessmentReportSelectionCount :: Prelude.Maybe Prelude.Int,
+    -- | The name of the user who created the evidence folder.
+    author :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the control.
+    controlId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the control.
+    controlName :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the control set.
+    controlSetId :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Web Service that the evidence was collected from.
+    dataSource :: Prelude.Maybe Prelude.Text,
+    -- | The date when the first evidence was added to the evidence folder.
+    date :: Prelude.Maybe Data.POSIX,
+    -- | The total number of Amazon Web Services resources that were assessed to
+    -- generate the evidence.
+    evidenceAwsServiceSourceCount :: Prelude.Maybe Prelude.Int,
+    -- | The number of evidence that falls under the compliance check category.
+    -- This evidence is collected from Config or Security Hub.
+    evidenceByTypeComplianceCheckCount :: Prelude.Maybe Prelude.Int,
+    -- | The total number of issues that were reported directly from Security
+    -- Hub, Config, or both.
+    evidenceByTypeComplianceCheckIssuesCount :: Prelude.Maybe Prelude.Int,
+    -- | The number of evidence that falls under the configuration data category.
+    -- This evidence is collected from configuration snapshots of other Amazon
+    -- Web Services such as Amazon EC2, Amazon S3, or IAM.
+    evidenceByTypeConfigurationDataCount :: Prelude.Maybe Prelude.Int,
+    -- | The number of evidence that falls under the manual category. This
+    -- evidence is imported manually.
+    evidenceByTypeManualCount :: Prelude.Maybe Prelude.Int,
+    -- | The number of evidence that falls under the user activity category. This
+    -- evidence is collected from CloudTrail logs.
+    evidenceByTypeUserActivityCount :: Prelude.Maybe Prelude.Int,
+    -- | The amount of evidence that\'s included in the evidence folder.
+    evidenceResourcesIncludedCount :: Prelude.Maybe Prelude.Int,
+    -- | The identifier for the folder that the evidence is stored in.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The name of the evidence folder.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The total amount of evidence in the evidence folder.
+    totalEvidence :: Prelude.Maybe Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssessmentEvidenceFolder' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'assessmentEvidenceFolder_assessmentId' - The identifier for the assessment.
+--
+-- 'assessmentReportSelectionCount', 'assessmentEvidenceFolder_assessmentReportSelectionCount' - The total count of evidence that\'s included in the assessment report.
+--
+-- 'author', 'assessmentEvidenceFolder_author' - The name of the user who created the evidence folder.
+--
+-- 'controlId', 'assessmentEvidenceFolder_controlId' - The unique identifier for the control.
+--
+-- 'controlName', 'assessmentEvidenceFolder_controlName' - The name of the control.
+--
+-- 'controlSetId', 'assessmentEvidenceFolder_controlSetId' - The identifier for the control set.
+--
+-- 'dataSource', 'assessmentEvidenceFolder_dataSource' - The Amazon Web Service that the evidence was collected from.
+--
+-- 'date', 'assessmentEvidenceFolder_date' - The date when the first evidence was added to the evidence folder.
+--
+-- 'evidenceAwsServiceSourceCount', 'assessmentEvidenceFolder_evidenceAwsServiceSourceCount' - The total number of Amazon Web Services resources that were assessed to
+-- generate the evidence.
+--
+-- 'evidenceByTypeComplianceCheckCount', 'assessmentEvidenceFolder_evidenceByTypeComplianceCheckCount' - The number of evidence that falls under the compliance check category.
+-- This evidence is collected from Config or Security Hub.
+--
+-- 'evidenceByTypeComplianceCheckIssuesCount', 'assessmentEvidenceFolder_evidenceByTypeComplianceCheckIssuesCount' - The total number of issues that were reported directly from Security
+-- Hub, Config, or both.
+--
+-- 'evidenceByTypeConfigurationDataCount', 'assessmentEvidenceFolder_evidenceByTypeConfigurationDataCount' - The number of evidence that falls under the configuration data category.
+-- This evidence is collected from configuration snapshots of other Amazon
+-- Web Services such as Amazon EC2, Amazon S3, or IAM.
+--
+-- 'evidenceByTypeManualCount', 'assessmentEvidenceFolder_evidenceByTypeManualCount' - The number of evidence that falls under the manual category. This
+-- evidence is imported manually.
+--
+-- 'evidenceByTypeUserActivityCount', 'assessmentEvidenceFolder_evidenceByTypeUserActivityCount' - The number of evidence that falls under the user activity category. This
+-- evidence is collected from CloudTrail logs.
+--
+-- 'evidenceResourcesIncludedCount', 'assessmentEvidenceFolder_evidenceResourcesIncludedCount' - The amount of evidence that\'s included in the evidence folder.
+--
+-- 'id', 'assessmentEvidenceFolder_id' - The identifier for the folder that the evidence is stored in.
+--
+-- 'name', 'assessmentEvidenceFolder_name' - The name of the evidence folder.
+--
+-- 'totalEvidence', 'assessmentEvidenceFolder_totalEvidence' - The total amount of evidence in the evidence folder.
+newAssessmentEvidenceFolder ::
+  AssessmentEvidenceFolder
+newAssessmentEvidenceFolder =
+  AssessmentEvidenceFolder'
+    { assessmentId =
+        Prelude.Nothing,
+      assessmentReportSelectionCount = Prelude.Nothing,
+      author = Prelude.Nothing,
+      controlId = Prelude.Nothing,
+      controlName = Prelude.Nothing,
+      controlSetId = Prelude.Nothing,
+      dataSource = Prelude.Nothing,
+      date = Prelude.Nothing,
+      evidenceAwsServiceSourceCount = Prelude.Nothing,
+      evidenceByTypeComplianceCheckCount =
+        Prelude.Nothing,
+      evidenceByTypeComplianceCheckIssuesCount =
+        Prelude.Nothing,
+      evidenceByTypeConfigurationDataCount =
+        Prelude.Nothing,
+      evidenceByTypeManualCount = Prelude.Nothing,
+      evidenceByTypeUserActivityCount = Prelude.Nothing,
+      evidenceResourcesIncludedCount = Prelude.Nothing,
+      id = Prelude.Nothing,
+      name = Prelude.Nothing,
+      totalEvidence = Prelude.Nothing
+    }
+
+-- | The identifier for the assessment.
+assessmentEvidenceFolder_assessmentId :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Text)
+assessmentEvidenceFolder_assessmentId = Lens.lens (\AssessmentEvidenceFolder' {assessmentId} -> assessmentId) (\s@AssessmentEvidenceFolder' {} a -> s {assessmentId = a} :: AssessmentEvidenceFolder)
+
+-- | The total count of evidence that\'s included in the assessment report.
+assessmentEvidenceFolder_assessmentReportSelectionCount :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Int)
+assessmentEvidenceFolder_assessmentReportSelectionCount = Lens.lens (\AssessmentEvidenceFolder' {assessmentReportSelectionCount} -> assessmentReportSelectionCount) (\s@AssessmentEvidenceFolder' {} a -> s {assessmentReportSelectionCount = a} :: AssessmentEvidenceFolder)
+
+-- | The name of the user who created the evidence folder.
+assessmentEvidenceFolder_author :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Text)
+assessmentEvidenceFolder_author = Lens.lens (\AssessmentEvidenceFolder' {author} -> author) (\s@AssessmentEvidenceFolder' {} a -> s {author = a} :: AssessmentEvidenceFolder)
+
+-- | The unique identifier for the control.
+assessmentEvidenceFolder_controlId :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Text)
+assessmentEvidenceFolder_controlId = Lens.lens (\AssessmentEvidenceFolder' {controlId} -> controlId) (\s@AssessmentEvidenceFolder' {} a -> s {controlId = a} :: AssessmentEvidenceFolder)
+
+-- | The name of the control.
+assessmentEvidenceFolder_controlName :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Text)
+assessmentEvidenceFolder_controlName = Lens.lens (\AssessmentEvidenceFolder' {controlName} -> controlName) (\s@AssessmentEvidenceFolder' {} a -> s {controlName = a} :: AssessmentEvidenceFolder)
+
+-- | The identifier for the control set.
+assessmentEvidenceFolder_controlSetId :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Text)
+assessmentEvidenceFolder_controlSetId = Lens.lens (\AssessmentEvidenceFolder' {controlSetId} -> controlSetId) (\s@AssessmentEvidenceFolder' {} a -> s {controlSetId = a} :: AssessmentEvidenceFolder)
+
+-- | The Amazon Web Service that the evidence was collected from.
+assessmentEvidenceFolder_dataSource :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Text)
+assessmentEvidenceFolder_dataSource = Lens.lens (\AssessmentEvidenceFolder' {dataSource} -> dataSource) (\s@AssessmentEvidenceFolder' {} a -> s {dataSource = a} :: AssessmentEvidenceFolder)
+
+-- | The date when the first evidence was added to the evidence folder.
+assessmentEvidenceFolder_date :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.UTCTime)
+assessmentEvidenceFolder_date = Lens.lens (\AssessmentEvidenceFolder' {date} -> date) (\s@AssessmentEvidenceFolder' {} a -> s {date = a} :: AssessmentEvidenceFolder) Prelude.. Lens.mapping Data._Time
+
+-- | The total number of Amazon Web Services resources that were assessed to
+-- generate the evidence.
+assessmentEvidenceFolder_evidenceAwsServiceSourceCount :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Int)
+assessmentEvidenceFolder_evidenceAwsServiceSourceCount = Lens.lens (\AssessmentEvidenceFolder' {evidenceAwsServiceSourceCount} -> evidenceAwsServiceSourceCount) (\s@AssessmentEvidenceFolder' {} a -> s {evidenceAwsServiceSourceCount = a} :: AssessmentEvidenceFolder)
+
+-- | The number of evidence that falls under the compliance check category.
+-- This evidence is collected from Config or Security Hub.
+assessmentEvidenceFolder_evidenceByTypeComplianceCheckCount :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Int)
+assessmentEvidenceFolder_evidenceByTypeComplianceCheckCount = Lens.lens (\AssessmentEvidenceFolder' {evidenceByTypeComplianceCheckCount} -> evidenceByTypeComplianceCheckCount) (\s@AssessmentEvidenceFolder' {} a -> s {evidenceByTypeComplianceCheckCount = a} :: AssessmentEvidenceFolder)
+
+-- | The total number of issues that were reported directly from Security
+-- Hub, Config, or both.
+assessmentEvidenceFolder_evidenceByTypeComplianceCheckIssuesCount :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Int)
+assessmentEvidenceFolder_evidenceByTypeComplianceCheckIssuesCount = Lens.lens (\AssessmentEvidenceFolder' {evidenceByTypeComplianceCheckIssuesCount} -> evidenceByTypeComplianceCheckIssuesCount) (\s@AssessmentEvidenceFolder' {} a -> s {evidenceByTypeComplianceCheckIssuesCount = a} :: AssessmentEvidenceFolder)
+
+-- | The number of evidence that falls under the configuration data category.
+-- This evidence is collected from configuration snapshots of other Amazon
+-- Web Services such as Amazon EC2, Amazon S3, or IAM.
+assessmentEvidenceFolder_evidenceByTypeConfigurationDataCount :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Int)
+assessmentEvidenceFolder_evidenceByTypeConfigurationDataCount = Lens.lens (\AssessmentEvidenceFolder' {evidenceByTypeConfigurationDataCount} -> evidenceByTypeConfigurationDataCount) (\s@AssessmentEvidenceFolder' {} a -> s {evidenceByTypeConfigurationDataCount = a} :: AssessmentEvidenceFolder)
+
+-- | The number of evidence that falls under the manual category. This
+-- evidence is imported manually.
+assessmentEvidenceFolder_evidenceByTypeManualCount :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Int)
+assessmentEvidenceFolder_evidenceByTypeManualCount = Lens.lens (\AssessmentEvidenceFolder' {evidenceByTypeManualCount} -> evidenceByTypeManualCount) (\s@AssessmentEvidenceFolder' {} a -> s {evidenceByTypeManualCount = a} :: AssessmentEvidenceFolder)
+
+-- | The number of evidence that falls under the user activity category. This
+-- evidence is collected from CloudTrail logs.
+assessmentEvidenceFolder_evidenceByTypeUserActivityCount :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Int)
+assessmentEvidenceFolder_evidenceByTypeUserActivityCount = Lens.lens (\AssessmentEvidenceFolder' {evidenceByTypeUserActivityCount} -> evidenceByTypeUserActivityCount) (\s@AssessmentEvidenceFolder' {} a -> s {evidenceByTypeUserActivityCount = a} :: AssessmentEvidenceFolder)
+
+-- | The amount of evidence that\'s included in the evidence folder.
+assessmentEvidenceFolder_evidenceResourcesIncludedCount :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Int)
+assessmentEvidenceFolder_evidenceResourcesIncludedCount = Lens.lens (\AssessmentEvidenceFolder' {evidenceResourcesIncludedCount} -> evidenceResourcesIncludedCount) (\s@AssessmentEvidenceFolder' {} a -> s {evidenceResourcesIncludedCount = a} :: AssessmentEvidenceFolder)
+
+-- | The identifier for the folder that the evidence is stored in.
+assessmentEvidenceFolder_id :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Text)
+assessmentEvidenceFolder_id = Lens.lens (\AssessmentEvidenceFolder' {id} -> id) (\s@AssessmentEvidenceFolder' {} a -> s {id = a} :: AssessmentEvidenceFolder)
+
+-- | The name of the evidence folder.
+assessmentEvidenceFolder_name :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Text)
+assessmentEvidenceFolder_name = Lens.lens (\AssessmentEvidenceFolder' {name} -> name) (\s@AssessmentEvidenceFolder' {} a -> s {name = a} :: AssessmentEvidenceFolder)
+
+-- | The total amount of evidence in the evidence folder.
+assessmentEvidenceFolder_totalEvidence :: Lens.Lens' AssessmentEvidenceFolder (Prelude.Maybe Prelude.Int)
+assessmentEvidenceFolder_totalEvidence = Lens.lens (\AssessmentEvidenceFolder' {totalEvidence} -> totalEvidence) (\s@AssessmentEvidenceFolder' {} a -> s {totalEvidence = a} :: AssessmentEvidenceFolder)
+
+instance Data.FromJSON AssessmentEvidenceFolder where
+  parseJSON =
+    Data.withObject
+      "AssessmentEvidenceFolder"
+      ( \x ->
+          AssessmentEvidenceFolder'
+            Prelude.<$> (x Data..:? "assessmentId")
+            Prelude.<*> (x Data..:? "assessmentReportSelectionCount")
+            Prelude.<*> (x Data..:? "author")
+            Prelude.<*> (x Data..:? "controlId")
+            Prelude.<*> (x Data..:? "controlName")
+            Prelude.<*> (x Data..:? "controlSetId")
+            Prelude.<*> (x Data..:? "dataSource")
+            Prelude.<*> (x Data..:? "date")
+            Prelude.<*> (x Data..:? "evidenceAwsServiceSourceCount")
+            Prelude.<*> (x Data..:? "evidenceByTypeComplianceCheckCount")
+            Prelude.<*> ( x
+                            Data..:? "evidenceByTypeComplianceCheckIssuesCount"
+                        )
+            Prelude.<*> (x Data..:? "evidenceByTypeConfigurationDataCount")
+            Prelude.<*> (x Data..:? "evidenceByTypeManualCount")
+            Prelude.<*> (x Data..:? "evidenceByTypeUserActivityCount")
+            Prelude.<*> (x Data..:? "evidenceResourcesIncludedCount")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "name")
+            Prelude.<*> (x Data..:? "totalEvidence")
+      )
+
+instance Prelude.Hashable AssessmentEvidenceFolder where
+  hashWithSalt _salt AssessmentEvidenceFolder' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` assessmentReportSelectionCount
+      `Prelude.hashWithSalt` author
+      `Prelude.hashWithSalt` controlId
+      `Prelude.hashWithSalt` controlName
+      `Prelude.hashWithSalt` controlSetId
+      `Prelude.hashWithSalt` dataSource
+      `Prelude.hashWithSalt` date
+      `Prelude.hashWithSalt` evidenceAwsServiceSourceCount
+      `Prelude.hashWithSalt` evidenceByTypeComplianceCheckCount
+      `Prelude.hashWithSalt` evidenceByTypeComplianceCheckIssuesCount
+      `Prelude.hashWithSalt` evidenceByTypeConfigurationDataCount
+      `Prelude.hashWithSalt` evidenceByTypeManualCount
+      `Prelude.hashWithSalt` evidenceByTypeUserActivityCount
+      `Prelude.hashWithSalt` evidenceResourcesIncludedCount
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` totalEvidence
+
+instance Prelude.NFData AssessmentEvidenceFolder where
+  rnf AssessmentEvidenceFolder' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf assessmentReportSelectionCount
+      `Prelude.seq` Prelude.rnf author
+      `Prelude.seq` Prelude.rnf controlId
+      `Prelude.seq` Prelude.rnf controlName
+      `Prelude.seq` Prelude.rnf controlSetId
+      `Prelude.seq` Prelude.rnf dataSource
+      `Prelude.seq` Prelude.rnf date
+      `Prelude.seq` Prelude.rnf evidenceAwsServiceSourceCount
+      `Prelude.seq` Prelude.rnf evidenceByTypeComplianceCheckCount
+      `Prelude.seq` Prelude.rnf
+        evidenceByTypeComplianceCheckIssuesCount
+      `Prelude.seq` Prelude.rnf
+        evidenceByTypeConfigurationDataCount
+      `Prelude.seq` Prelude.rnf evidenceByTypeManualCount
+      `Prelude.seq` Prelude.rnf
+        evidenceByTypeUserActivityCount
+      `Prelude.seq` Prelude.rnf
+        evidenceResourcesIncludedCount
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf totalEvidence
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentFramework.hs b/gen/Amazonka/AuditManager/Types/AssessmentFramework.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentFramework.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.AuditManager.Types.AssessmentFramework
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentFramework where
+
+import Amazonka.AuditManager.Types.AssessmentControlSet
+import Amazonka.AuditManager.Types.FrameworkMetadata
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The file used to structure and automate Audit Manager assessments for a
+-- given compliance standard.
+--
+-- /See:/ 'newAssessmentFramework' smart constructor.
+data AssessmentFramework = AssessmentFramework'
+  { -- | The Amazon Resource Name (ARN) of the framework.
+    arn :: Prelude.Maybe Prelude.Text,
+    -- | The control sets that are associated with the framework.
+    controlSets :: Prelude.Maybe [AssessmentControlSet],
+    -- | The unique identifier for the framework.
+    id :: Prelude.Maybe Prelude.Text,
+    metadata :: Prelude.Maybe FrameworkMetadata
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssessmentFramework' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'assessmentFramework_arn' - The Amazon Resource Name (ARN) of the framework.
+--
+-- 'controlSets', 'assessmentFramework_controlSets' - The control sets that are associated with the framework.
+--
+-- 'id', 'assessmentFramework_id' - The unique identifier for the framework.
+--
+-- 'metadata', 'assessmentFramework_metadata' - Undocumented member.
+newAssessmentFramework ::
+  AssessmentFramework
+newAssessmentFramework =
+  AssessmentFramework'
+    { arn = Prelude.Nothing,
+      controlSets = Prelude.Nothing,
+      id = Prelude.Nothing,
+      metadata = Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) of the framework.
+assessmentFramework_arn :: Lens.Lens' AssessmentFramework (Prelude.Maybe Prelude.Text)
+assessmentFramework_arn = Lens.lens (\AssessmentFramework' {arn} -> arn) (\s@AssessmentFramework' {} a -> s {arn = a} :: AssessmentFramework)
+
+-- | The control sets that are associated with the framework.
+assessmentFramework_controlSets :: Lens.Lens' AssessmentFramework (Prelude.Maybe [AssessmentControlSet])
+assessmentFramework_controlSets = Lens.lens (\AssessmentFramework' {controlSets} -> controlSets) (\s@AssessmentFramework' {} a -> s {controlSets = a} :: AssessmentFramework) Prelude.. Lens.mapping Lens.coerced
+
+-- | The unique identifier for the framework.
+assessmentFramework_id :: Lens.Lens' AssessmentFramework (Prelude.Maybe Prelude.Text)
+assessmentFramework_id = Lens.lens (\AssessmentFramework' {id} -> id) (\s@AssessmentFramework' {} a -> s {id = a} :: AssessmentFramework)
+
+-- | Undocumented member.
+assessmentFramework_metadata :: Lens.Lens' AssessmentFramework (Prelude.Maybe FrameworkMetadata)
+assessmentFramework_metadata = Lens.lens (\AssessmentFramework' {metadata} -> metadata) (\s@AssessmentFramework' {} a -> s {metadata = a} :: AssessmentFramework)
+
+instance Data.FromJSON AssessmentFramework where
+  parseJSON =
+    Data.withObject
+      "AssessmentFramework"
+      ( \x ->
+          AssessmentFramework'
+            Prelude.<$> (x Data..:? "arn")
+            Prelude.<*> (x Data..:? "controlSets" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "metadata")
+      )
+
+instance Prelude.Hashable AssessmentFramework where
+  hashWithSalt _salt AssessmentFramework' {..} =
+    _salt
+      `Prelude.hashWithSalt` arn
+      `Prelude.hashWithSalt` controlSets
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` metadata
+
+instance Prelude.NFData AssessmentFramework where
+  rnf AssessmentFramework' {..} =
+    Prelude.rnf arn
+      `Prelude.seq` Prelude.rnf controlSets
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf metadata
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentFrameworkMetadata.hs b/gen/Amazonka/AuditManager/Types/AssessmentFrameworkMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentFrameworkMetadata.hs
@@ -0,0 +1,197 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.AssessmentFrameworkMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentFrameworkMetadata where
+
+import Amazonka.AuditManager.Types.FrameworkType
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The metadata that\'s associated with a standard framework or a custom
+-- framework.
+--
+-- /See:/ 'newAssessmentFrameworkMetadata' smart constructor.
+data AssessmentFrameworkMetadata = AssessmentFrameworkMetadata'
+  { -- | The Amazon Resource Name (ARN) of the framework.
+    arn :: Prelude.Maybe Prelude.Text,
+    -- | The compliance type that the new custom framework supports, such as CIS
+    -- or HIPAA.
+    complianceType :: Prelude.Maybe Prelude.Text,
+    -- | The number of control sets that are associated with the framework.
+    controlSetsCount :: Prelude.Maybe Prelude.Int,
+    -- | The number of controls that are associated with the framework.
+    controlsCount :: Prelude.Maybe Prelude.Int,
+    -- | The time when the framework was created.
+    createdAt :: Prelude.Maybe Data.POSIX,
+    -- | The description of the framework.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the framework.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The time when the framework was most recently updated.
+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,
+    -- | The logo that\'s associated with the framework.
+    logo :: Prelude.Maybe Prelude.Text,
+    -- | The name of the framework.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The framework type, such as a standard framework or a custom framework.
+    type' :: Prelude.Maybe FrameworkType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssessmentFrameworkMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'assessmentFrameworkMetadata_arn' - The Amazon Resource Name (ARN) of the framework.
+--
+-- 'complianceType', 'assessmentFrameworkMetadata_complianceType' - The compliance type that the new custom framework supports, such as CIS
+-- or HIPAA.
+--
+-- 'controlSetsCount', 'assessmentFrameworkMetadata_controlSetsCount' - The number of control sets that are associated with the framework.
+--
+-- 'controlsCount', 'assessmentFrameworkMetadata_controlsCount' - The number of controls that are associated with the framework.
+--
+-- 'createdAt', 'assessmentFrameworkMetadata_createdAt' - The time when the framework was created.
+--
+-- 'description', 'assessmentFrameworkMetadata_description' - The description of the framework.
+--
+-- 'id', 'assessmentFrameworkMetadata_id' - The unique identifier for the framework.
+--
+-- 'lastUpdatedAt', 'assessmentFrameworkMetadata_lastUpdatedAt' - The time when the framework was most recently updated.
+--
+-- 'logo', 'assessmentFrameworkMetadata_logo' - The logo that\'s associated with the framework.
+--
+-- 'name', 'assessmentFrameworkMetadata_name' - The name of the framework.
+--
+-- 'type'', 'assessmentFrameworkMetadata_type' - The framework type, such as a standard framework or a custom framework.
+newAssessmentFrameworkMetadata ::
+  AssessmentFrameworkMetadata
+newAssessmentFrameworkMetadata =
+  AssessmentFrameworkMetadata'
+    { arn = Prelude.Nothing,
+      complianceType = Prelude.Nothing,
+      controlSetsCount = Prelude.Nothing,
+      controlsCount = Prelude.Nothing,
+      createdAt = Prelude.Nothing,
+      description = Prelude.Nothing,
+      id = Prelude.Nothing,
+      lastUpdatedAt = Prelude.Nothing,
+      logo = Prelude.Nothing,
+      name = Prelude.Nothing,
+      type' = Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) of the framework.
+assessmentFrameworkMetadata_arn :: Lens.Lens' AssessmentFrameworkMetadata (Prelude.Maybe Prelude.Text)
+assessmentFrameworkMetadata_arn = Lens.lens (\AssessmentFrameworkMetadata' {arn} -> arn) (\s@AssessmentFrameworkMetadata' {} a -> s {arn = a} :: AssessmentFrameworkMetadata)
+
+-- | The compliance type that the new custom framework supports, such as CIS
+-- or HIPAA.
+assessmentFrameworkMetadata_complianceType :: Lens.Lens' AssessmentFrameworkMetadata (Prelude.Maybe Prelude.Text)
+assessmentFrameworkMetadata_complianceType = Lens.lens (\AssessmentFrameworkMetadata' {complianceType} -> complianceType) (\s@AssessmentFrameworkMetadata' {} a -> s {complianceType = a} :: AssessmentFrameworkMetadata)
+
+-- | The number of control sets that are associated with the framework.
+assessmentFrameworkMetadata_controlSetsCount :: Lens.Lens' AssessmentFrameworkMetadata (Prelude.Maybe Prelude.Int)
+assessmentFrameworkMetadata_controlSetsCount = Lens.lens (\AssessmentFrameworkMetadata' {controlSetsCount} -> controlSetsCount) (\s@AssessmentFrameworkMetadata' {} a -> s {controlSetsCount = a} :: AssessmentFrameworkMetadata)
+
+-- | The number of controls that are associated with the framework.
+assessmentFrameworkMetadata_controlsCount :: Lens.Lens' AssessmentFrameworkMetadata (Prelude.Maybe Prelude.Int)
+assessmentFrameworkMetadata_controlsCount = Lens.lens (\AssessmentFrameworkMetadata' {controlsCount} -> controlsCount) (\s@AssessmentFrameworkMetadata' {} a -> s {controlsCount = a} :: AssessmentFrameworkMetadata)
+
+-- | The time when the framework was created.
+assessmentFrameworkMetadata_createdAt :: Lens.Lens' AssessmentFrameworkMetadata (Prelude.Maybe Prelude.UTCTime)
+assessmentFrameworkMetadata_createdAt = Lens.lens (\AssessmentFrameworkMetadata' {createdAt} -> createdAt) (\s@AssessmentFrameworkMetadata' {} a -> s {createdAt = a} :: AssessmentFrameworkMetadata) Prelude.. Lens.mapping Data._Time
+
+-- | The description of the framework.
+assessmentFrameworkMetadata_description :: Lens.Lens' AssessmentFrameworkMetadata (Prelude.Maybe Prelude.Text)
+assessmentFrameworkMetadata_description = Lens.lens (\AssessmentFrameworkMetadata' {description} -> description) (\s@AssessmentFrameworkMetadata' {} a -> s {description = a} :: AssessmentFrameworkMetadata)
+
+-- | The unique identifier for the framework.
+assessmentFrameworkMetadata_id :: Lens.Lens' AssessmentFrameworkMetadata (Prelude.Maybe Prelude.Text)
+assessmentFrameworkMetadata_id = Lens.lens (\AssessmentFrameworkMetadata' {id} -> id) (\s@AssessmentFrameworkMetadata' {} a -> s {id = a} :: AssessmentFrameworkMetadata)
+
+-- | The time when the framework was most recently updated.
+assessmentFrameworkMetadata_lastUpdatedAt :: Lens.Lens' AssessmentFrameworkMetadata (Prelude.Maybe Prelude.UTCTime)
+assessmentFrameworkMetadata_lastUpdatedAt = Lens.lens (\AssessmentFrameworkMetadata' {lastUpdatedAt} -> lastUpdatedAt) (\s@AssessmentFrameworkMetadata' {} a -> s {lastUpdatedAt = a} :: AssessmentFrameworkMetadata) Prelude.. Lens.mapping Data._Time
+
+-- | The logo that\'s associated with the framework.
+assessmentFrameworkMetadata_logo :: Lens.Lens' AssessmentFrameworkMetadata (Prelude.Maybe Prelude.Text)
+assessmentFrameworkMetadata_logo = Lens.lens (\AssessmentFrameworkMetadata' {logo} -> logo) (\s@AssessmentFrameworkMetadata' {} a -> s {logo = a} :: AssessmentFrameworkMetadata)
+
+-- | The name of the framework.
+assessmentFrameworkMetadata_name :: Lens.Lens' AssessmentFrameworkMetadata (Prelude.Maybe Prelude.Text)
+assessmentFrameworkMetadata_name = Lens.lens (\AssessmentFrameworkMetadata' {name} -> name) (\s@AssessmentFrameworkMetadata' {} a -> s {name = a} :: AssessmentFrameworkMetadata)
+
+-- | The framework type, such as a standard framework or a custom framework.
+assessmentFrameworkMetadata_type :: Lens.Lens' AssessmentFrameworkMetadata (Prelude.Maybe FrameworkType)
+assessmentFrameworkMetadata_type = Lens.lens (\AssessmentFrameworkMetadata' {type'} -> type') (\s@AssessmentFrameworkMetadata' {} a -> s {type' = a} :: AssessmentFrameworkMetadata)
+
+instance Data.FromJSON AssessmentFrameworkMetadata where
+  parseJSON =
+    Data.withObject
+      "AssessmentFrameworkMetadata"
+      ( \x ->
+          AssessmentFrameworkMetadata'
+            Prelude.<$> (x Data..:? "arn")
+            Prelude.<*> (x Data..:? "complianceType")
+            Prelude.<*> (x Data..:? "controlSetsCount")
+            Prelude.<*> (x Data..:? "controlsCount")
+            Prelude.<*> (x Data..:? "createdAt")
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "lastUpdatedAt")
+            Prelude.<*> (x Data..:? "logo")
+            Prelude.<*> (x Data..:? "name")
+            Prelude.<*> (x Data..:? "type")
+      )
+
+instance Prelude.Hashable AssessmentFrameworkMetadata where
+  hashWithSalt _salt AssessmentFrameworkMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` arn
+      `Prelude.hashWithSalt` complianceType
+      `Prelude.hashWithSalt` controlSetsCount
+      `Prelude.hashWithSalt` controlsCount
+      `Prelude.hashWithSalt` createdAt
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` lastUpdatedAt
+      `Prelude.hashWithSalt` logo
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` type'
+
+instance Prelude.NFData AssessmentFrameworkMetadata where
+  rnf AssessmentFrameworkMetadata' {..} =
+    Prelude.rnf arn
+      `Prelude.seq` Prelude.rnf complianceType
+      `Prelude.seq` Prelude.rnf controlSetsCount
+      `Prelude.seq` Prelude.rnf controlsCount
+      `Prelude.seq` Prelude.rnf createdAt
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf lastUpdatedAt
+      `Prelude.seq` Prelude.rnf logo
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf type'
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentFrameworkShareRequest.hs b/gen/Amazonka/AuditManager/Types/AssessmentFrameworkShareRequest.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentFrameworkShareRequest.hs
@@ -0,0 +1,262 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.AssessmentFrameworkShareRequest
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentFrameworkShareRequest where
+
+import Amazonka.AuditManager.Types.ShareRequestStatus
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Represents a share request for a custom framework in Audit Manager.
+--
+-- /See:/ 'newAssessmentFrameworkShareRequest' smart constructor.
+data AssessmentFrameworkShareRequest = AssessmentFrameworkShareRequest'
+  { -- | An optional comment from the sender about the share request.
+    comment :: Prelude.Maybe Prelude.Text,
+    -- | The compliance type that the shared custom framework supports, such as
+    -- CIS or HIPAA.
+    complianceType :: Prelude.Maybe Prelude.Text,
+    -- | The time when the share request was created.
+    creationTime :: Prelude.Maybe Data.POSIX,
+    -- | The number of custom controls that are part of the shared custom
+    -- framework.
+    customControlsCount :: Prelude.Maybe Prelude.Int,
+    -- | The Amazon Web Services account of the recipient.
+    destinationAccount :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Web Services Region of the recipient.
+    destinationRegion :: Prelude.Maybe Prelude.Text,
+    -- | The time when the share request expires.
+    expirationTime :: Prelude.Maybe Data.POSIX,
+    -- | The description of the shared custom framework.
+    frameworkDescription :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the shared custom framework.
+    frameworkId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the custom framework that the share request is for.
+    frameworkName :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the share request.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | Specifies when the share request was last updated.
+    lastUpdated :: Prelude.Maybe Data.POSIX,
+    -- | The Amazon Web Services account of the sender.
+    sourceAccount :: Prelude.Maybe Prelude.Text,
+    -- | The number of standard controls that are part of the shared custom
+    -- framework.
+    standardControlsCount :: Prelude.Maybe Prelude.Int,
+    -- | The status of the share request.
+    status :: Prelude.Maybe ShareRequestStatus
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssessmentFrameworkShareRequest' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'assessmentFrameworkShareRequest_comment' - An optional comment from the sender about the share request.
+--
+-- 'complianceType', 'assessmentFrameworkShareRequest_complianceType' - The compliance type that the shared custom framework supports, such as
+-- CIS or HIPAA.
+--
+-- 'creationTime', 'assessmentFrameworkShareRequest_creationTime' - The time when the share request was created.
+--
+-- 'customControlsCount', 'assessmentFrameworkShareRequest_customControlsCount' - The number of custom controls that are part of the shared custom
+-- framework.
+--
+-- 'destinationAccount', 'assessmentFrameworkShareRequest_destinationAccount' - The Amazon Web Services account of the recipient.
+--
+-- 'destinationRegion', 'assessmentFrameworkShareRequest_destinationRegion' - The Amazon Web Services Region of the recipient.
+--
+-- 'expirationTime', 'assessmentFrameworkShareRequest_expirationTime' - The time when the share request expires.
+--
+-- 'frameworkDescription', 'assessmentFrameworkShareRequest_frameworkDescription' - The description of the shared custom framework.
+--
+-- 'frameworkId', 'assessmentFrameworkShareRequest_frameworkId' - The unique identifier for the shared custom framework.
+--
+-- 'frameworkName', 'assessmentFrameworkShareRequest_frameworkName' - The name of the custom framework that the share request is for.
+--
+-- 'id', 'assessmentFrameworkShareRequest_id' - The unique identifier for the share request.
+--
+-- 'lastUpdated', 'assessmentFrameworkShareRequest_lastUpdated' - Specifies when the share request was last updated.
+--
+-- 'sourceAccount', 'assessmentFrameworkShareRequest_sourceAccount' - The Amazon Web Services account of the sender.
+--
+-- 'standardControlsCount', 'assessmentFrameworkShareRequest_standardControlsCount' - The number of standard controls that are part of the shared custom
+-- framework.
+--
+-- 'status', 'assessmentFrameworkShareRequest_status' - The status of the share request.
+newAssessmentFrameworkShareRequest ::
+  AssessmentFrameworkShareRequest
+newAssessmentFrameworkShareRequest =
+  AssessmentFrameworkShareRequest'
+    { comment =
+        Prelude.Nothing,
+      complianceType = Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      customControlsCount = Prelude.Nothing,
+      destinationAccount = Prelude.Nothing,
+      destinationRegion = Prelude.Nothing,
+      expirationTime = Prelude.Nothing,
+      frameworkDescription = Prelude.Nothing,
+      frameworkId = Prelude.Nothing,
+      frameworkName = Prelude.Nothing,
+      id = Prelude.Nothing,
+      lastUpdated = Prelude.Nothing,
+      sourceAccount = Prelude.Nothing,
+      standardControlsCount = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | An optional comment from the sender about the share request.
+assessmentFrameworkShareRequest_comment :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.Text)
+assessmentFrameworkShareRequest_comment = Lens.lens (\AssessmentFrameworkShareRequest' {comment} -> comment) (\s@AssessmentFrameworkShareRequest' {} a -> s {comment = a} :: AssessmentFrameworkShareRequest)
+
+-- | The compliance type that the shared custom framework supports, such as
+-- CIS or HIPAA.
+assessmentFrameworkShareRequest_complianceType :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.Text)
+assessmentFrameworkShareRequest_complianceType = Lens.lens (\AssessmentFrameworkShareRequest' {complianceType} -> complianceType) (\s@AssessmentFrameworkShareRequest' {} a -> s {complianceType = a} :: AssessmentFrameworkShareRequest)
+
+-- | The time when the share request was created.
+assessmentFrameworkShareRequest_creationTime :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.UTCTime)
+assessmentFrameworkShareRequest_creationTime = Lens.lens (\AssessmentFrameworkShareRequest' {creationTime} -> creationTime) (\s@AssessmentFrameworkShareRequest' {} a -> s {creationTime = a} :: AssessmentFrameworkShareRequest) Prelude.. Lens.mapping Data._Time
+
+-- | The number of custom controls that are part of the shared custom
+-- framework.
+assessmentFrameworkShareRequest_customControlsCount :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.Int)
+assessmentFrameworkShareRequest_customControlsCount = Lens.lens (\AssessmentFrameworkShareRequest' {customControlsCount} -> customControlsCount) (\s@AssessmentFrameworkShareRequest' {} a -> s {customControlsCount = a} :: AssessmentFrameworkShareRequest)
+
+-- | The Amazon Web Services account of the recipient.
+assessmentFrameworkShareRequest_destinationAccount :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.Text)
+assessmentFrameworkShareRequest_destinationAccount = Lens.lens (\AssessmentFrameworkShareRequest' {destinationAccount} -> destinationAccount) (\s@AssessmentFrameworkShareRequest' {} a -> s {destinationAccount = a} :: AssessmentFrameworkShareRequest)
+
+-- | The Amazon Web Services Region of the recipient.
+assessmentFrameworkShareRequest_destinationRegion :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.Text)
+assessmentFrameworkShareRequest_destinationRegion = Lens.lens (\AssessmentFrameworkShareRequest' {destinationRegion} -> destinationRegion) (\s@AssessmentFrameworkShareRequest' {} a -> s {destinationRegion = a} :: AssessmentFrameworkShareRequest)
+
+-- | The time when the share request expires.
+assessmentFrameworkShareRequest_expirationTime :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.UTCTime)
+assessmentFrameworkShareRequest_expirationTime = Lens.lens (\AssessmentFrameworkShareRequest' {expirationTime} -> expirationTime) (\s@AssessmentFrameworkShareRequest' {} a -> s {expirationTime = a} :: AssessmentFrameworkShareRequest) Prelude.. Lens.mapping Data._Time
+
+-- | The description of the shared custom framework.
+assessmentFrameworkShareRequest_frameworkDescription :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.Text)
+assessmentFrameworkShareRequest_frameworkDescription = Lens.lens (\AssessmentFrameworkShareRequest' {frameworkDescription} -> frameworkDescription) (\s@AssessmentFrameworkShareRequest' {} a -> s {frameworkDescription = a} :: AssessmentFrameworkShareRequest)
+
+-- | The unique identifier for the shared custom framework.
+assessmentFrameworkShareRequest_frameworkId :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.Text)
+assessmentFrameworkShareRequest_frameworkId = Lens.lens (\AssessmentFrameworkShareRequest' {frameworkId} -> frameworkId) (\s@AssessmentFrameworkShareRequest' {} a -> s {frameworkId = a} :: AssessmentFrameworkShareRequest)
+
+-- | The name of the custom framework that the share request is for.
+assessmentFrameworkShareRequest_frameworkName :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.Text)
+assessmentFrameworkShareRequest_frameworkName = Lens.lens (\AssessmentFrameworkShareRequest' {frameworkName} -> frameworkName) (\s@AssessmentFrameworkShareRequest' {} a -> s {frameworkName = a} :: AssessmentFrameworkShareRequest)
+
+-- | The unique identifier for the share request.
+assessmentFrameworkShareRequest_id :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.Text)
+assessmentFrameworkShareRequest_id = Lens.lens (\AssessmentFrameworkShareRequest' {id} -> id) (\s@AssessmentFrameworkShareRequest' {} a -> s {id = a} :: AssessmentFrameworkShareRequest)
+
+-- | Specifies when the share request was last updated.
+assessmentFrameworkShareRequest_lastUpdated :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.UTCTime)
+assessmentFrameworkShareRequest_lastUpdated = Lens.lens (\AssessmentFrameworkShareRequest' {lastUpdated} -> lastUpdated) (\s@AssessmentFrameworkShareRequest' {} a -> s {lastUpdated = a} :: AssessmentFrameworkShareRequest) Prelude.. Lens.mapping Data._Time
+
+-- | The Amazon Web Services account of the sender.
+assessmentFrameworkShareRequest_sourceAccount :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.Text)
+assessmentFrameworkShareRequest_sourceAccount = Lens.lens (\AssessmentFrameworkShareRequest' {sourceAccount} -> sourceAccount) (\s@AssessmentFrameworkShareRequest' {} a -> s {sourceAccount = a} :: AssessmentFrameworkShareRequest)
+
+-- | The number of standard controls that are part of the shared custom
+-- framework.
+assessmentFrameworkShareRequest_standardControlsCount :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe Prelude.Int)
+assessmentFrameworkShareRequest_standardControlsCount = Lens.lens (\AssessmentFrameworkShareRequest' {standardControlsCount} -> standardControlsCount) (\s@AssessmentFrameworkShareRequest' {} a -> s {standardControlsCount = a} :: AssessmentFrameworkShareRequest)
+
+-- | The status of the share request.
+assessmentFrameworkShareRequest_status :: Lens.Lens' AssessmentFrameworkShareRequest (Prelude.Maybe ShareRequestStatus)
+assessmentFrameworkShareRequest_status = Lens.lens (\AssessmentFrameworkShareRequest' {status} -> status) (\s@AssessmentFrameworkShareRequest' {} a -> s {status = a} :: AssessmentFrameworkShareRequest)
+
+instance
+  Data.FromJSON
+    AssessmentFrameworkShareRequest
+  where
+  parseJSON =
+    Data.withObject
+      "AssessmentFrameworkShareRequest"
+      ( \x ->
+          AssessmentFrameworkShareRequest'
+            Prelude.<$> (x Data..:? "comment")
+            Prelude.<*> (x Data..:? "complianceType")
+            Prelude.<*> (x Data..:? "creationTime")
+            Prelude.<*> (x Data..:? "customControlsCount")
+            Prelude.<*> (x Data..:? "destinationAccount")
+            Prelude.<*> (x Data..:? "destinationRegion")
+            Prelude.<*> (x Data..:? "expirationTime")
+            Prelude.<*> (x Data..:? "frameworkDescription")
+            Prelude.<*> (x Data..:? "frameworkId")
+            Prelude.<*> (x Data..:? "frameworkName")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "lastUpdated")
+            Prelude.<*> (x Data..:? "sourceAccount")
+            Prelude.<*> (x Data..:? "standardControlsCount")
+            Prelude.<*> (x Data..:? "status")
+      )
+
+instance
+  Prelude.Hashable
+    AssessmentFrameworkShareRequest
+  where
+  hashWithSalt
+    _salt
+    AssessmentFrameworkShareRequest' {..} =
+      _salt
+        `Prelude.hashWithSalt` comment
+        `Prelude.hashWithSalt` complianceType
+        `Prelude.hashWithSalt` creationTime
+        `Prelude.hashWithSalt` customControlsCount
+        `Prelude.hashWithSalt` destinationAccount
+        `Prelude.hashWithSalt` destinationRegion
+        `Prelude.hashWithSalt` expirationTime
+        `Prelude.hashWithSalt` frameworkDescription
+        `Prelude.hashWithSalt` frameworkId
+        `Prelude.hashWithSalt` frameworkName
+        `Prelude.hashWithSalt` id
+        `Prelude.hashWithSalt` lastUpdated
+        `Prelude.hashWithSalt` sourceAccount
+        `Prelude.hashWithSalt` standardControlsCount
+        `Prelude.hashWithSalt` status
+
+instance
+  Prelude.NFData
+    AssessmentFrameworkShareRequest
+  where
+  rnf AssessmentFrameworkShareRequest' {..} =
+    Prelude.rnf comment
+      `Prelude.seq` Prelude.rnf complianceType
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf customControlsCount
+      `Prelude.seq` Prelude.rnf destinationAccount
+      `Prelude.seq` Prelude.rnf destinationRegion
+      `Prelude.seq` Prelude.rnf expirationTime
+      `Prelude.seq` Prelude.rnf frameworkDescription
+      `Prelude.seq` Prelude.rnf frameworkId
+      `Prelude.seq` Prelude.rnf frameworkName
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf lastUpdated
+      `Prelude.seq` Prelude.rnf sourceAccount
+      `Prelude.seq` Prelude.rnf standardControlsCount
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentMetadata.hs b/gen/Amazonka/AuditManager/Types/AssessmentMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentMetadata.hs
@@ -0,0 +1,204 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.AssessmentMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentMetadata where
+
+import Amazonka.AuditManager.Types.AssessmentReportsDestination
+import Amazonka.AuditManager.Types.AssessmentStatus
+import Amazonka.AuditManager.Types.Delegation
+import Amazonka.AuditManager.Types.Role
+import Amazonka.AuditManager.Types.Scope
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The metadata that\'s associated with the specified assessment.
+--
+-- /See:/ 'newAssessmentMetadata' smart constructor.
+data AssessmentMetadata = AssessmentMetadata'
+  { -- | The destination that evidence reports are stored in for the assessment.
+    assessmentReportsDestination :: Prelude.Maybe AssessmentReportsDestination,
+    -- | The name of the compliance standard that\'s related to the assessment,
+    -- such as PCI-DSS.
+    complianceType :: Prelude.Maybe Prelude.Text,
+    -- | Specifies when the assessment was created.
+    creationTime :: Prelude.Maybe Data.POSIX,
+    -- | The delegations that are associated with the assessment.
+    delegations :: Prelude.Maybe [Delegation],
+    -- | The description of the assessment.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the assessment.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The time of the most recent update.
+    lastUpdated :: Prelude.Maybe Data.POSIX,
+    -- | The name of the assessment.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The roles that are associated with the assessment.
+    roles :: Prelude.Maybe [Role],
+    -- | The wrapper of Amazon Web Services accounts and services that are in
+    -- scope for the assessment.
+    scope :: Prelude.Maybe Scope,
+    -- | The overall status of the assessment.
+    status :: Prelude.Maybe AssessmentStatus
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssessmentMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentReportsDestination', 'assessmentMetadata_assessmentReportsDestination' - The destination that evidence reports are stored in for the assessment.
+--
+-- 'complianceType', 'assessmentMetadata_complianceType' - The name of the compliance standard that\'s related to the assessment,
+-- such as PCI-DSS.
+--
+-- 'creationTime', 'assessmentMetadata_creationTime' - Specifies when the assessment was created.
+--
+-- 'delegations', 'assessmentMetadata_delegations' - The delegations that are associated with the assessment.
+--
+-- 'description', 'assessmentMetadata_description' - The description of the assessment.
+--
+-- 'id', 'assessmentMetadata_id' - The unique identifier for the assessment.
+--
+-- 'lastUpdated', 'assessmentMetadata_lastUpdated' - The time of the most recent update.
+--
+-- 'name', 'assessmentMetadata_name' - The name of the assessment.
+--
+-- 'roles', 'assessmentMetadata_roles' - The roles that are associated with the assessment.
+--
+-- 'scope', 'assessmentMetadata_scope' - The wrapper of Amazon Web Services accounts and services that are in
+-- scope for the assessment.
+--
+-- 'status', 'assessmentMetadata_status' - The overall status of the assessment.
+newAssessmentMetadata ::
+  AssessmentMetadata
+newAssessmentMetadata =
+  AssessmentMetadata'
+    { assessmentReportsDestination =
+        Prelude.Nothing,
+      complianceType = Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      delegations = Prelude.Nothing,
+      description = Prelude.Nothing,
+      id = Prelude.Nothing,
+      lastUpdated = Prelude.Nothing,
+      name = Prelude.Nothing,
+      roles = Prelude.Nothing,
+      scope = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | The destination that evidence reports are stored in for the assessment.
+assessmentMetadata_assessmentReportsDestination :: Lens.Lens' AssessmentMetadata (Prelude.Maybe AssessmentReportsDestination)
+assessmentMetadata_assessmentReportsDestination = Lens.lens (\AssessmentMetadata' {assessmentReportsDestination} -> assessmentReportsDestination) (\s@AssessmentMetadata' {} a -> s {assessmentReportsDestination = a} :: AssessmentMetadata)
+
+-- | The name of the compliance standard that\'s related to the assessment,
+-- such as PCI-DSS.
+assessmentMetadata_complianceType :: Lens.Lens' AssessmentMetadata (Prelude.Maybe Prelude.Text)
+assessmentMetadata_complianceType = Lens.lens (\AssessmentMetadata' {complianceType} -> complianceType) (\s@AssessmentMetadata' {} a -> s {complianceType = a} :: AssessmentMetadata)
+
+-- | Specifies when the assessment was created.
+assessmentMetadata_creationTime :: Lens.Lens' AssessmentMetadata (Prelude.Maybe Prelude.UTCTime)
+assessmentMetadata_creationTime = Lens.lens (\AssessmentMetadata' {creationTime} -> creationTime) (\s@AssessmentMetadata' {} a -> s {creationTime = a} :: AssessmentMetadata) Prelude.. Lens.mapping Data._Time
+
+-- | The delegations that are associated with the assessment.
+assessmentMetadata_delegations :: Lens.Lens' AssessmentMetadata (Prelude.Maybe [Delegation])
+assessmentMetadata_delegations = Lens.lens (\AssessmentMetadata' {delegations} -> delegations) (\s@AssessmentMetadata' {} a -> s {delegations = a} :: AssessmentMetadata) Prelude.. Lens.mapping Lens.coerced
+
+-- | The description of the assessment.
+assessmentMetadata_description :: Lens.Lens' AssessmentMetadata (Prelude.Maybe Prelude.Text)
+assessmentMetadata_description = Lens.lens (\AssessmentMetadata' {description} -> description) (\s@AssessmentMetadata' {} a -> s {description = a} :: AssessmentMetadata)
+
+-- | The unique identifier for the assessment.
+assessmentMetadata_id :: Lens.Lens' AssessmentMetadata (Prelude.Maybe Prelude.Text)
+assessmentMetadata_id = Lens.lens (\AssessmentMetadata' {id} -> id) (\s@AssessmentMetadata' {} a -> s {id = a} :: AssessmentMetadata)
+
+-- | The time of the most recent update.
+assessmentMetadata_lastUpdated :: Lens.Lens' AssessmentMetadata (Prelude.Maybe Prelude.UTCTime)
+assessmentMetadata_lastUpdated = Lens.lens (\AssessmentMetadata' {lastUpdated} -> lastUpdated) (\s@AssessmentMetadata' {} a -> s {lastUpdated = a} :: AssessmentMetadata) Prelude.. Lens.mapping Data._Time
+
+-- | The name of the assessment.
+assessmentMetadata_name :: Lens.Lens' AssessmentMetadata (Prelude.Maybe Prelude.Text)
+assessmentMetadata_name = Lens.lens (\AssessmentMetadata' {name} -> name) (\s@AssessmentMetadata' {} a -> s {name = a} :: AssessmentMetadata)
+
+-- | The roles that are associated with the assessment.
+assessmentMetadata_roles :: Lens.Lens' AssessmentMetadata (Prelude.Maybe [Role])
+assessmentMetadata_roles = Lens.lens (\AssessmentMetadata' {roles} -> roles) (\s@AssessmentMetadata' {} a -> s {roles = a} :: AssessmentMetadata) Prelude.. Lens.mapping Lens.coerced
+
+-- | The wrapper of Amazon Web Services accounts and services that are in
+-- scope for the assessment.
+assessmentMetadata_scope :: Lens.Lens' AssessmentMetadata (Prelude.Maybe Scope)
+assessmentMetadata_scope = Lens.lens (\AssessmentMetadata' {scope} -> scope) (\s@AssessmentMetadata' {} a -> s {scope = a} :: AssessmentMetadata)
+
+-- | The overall status of the assessment.
+assessmentMetadata_status :: Lens.Lens' AssessmentMetadata (Prelude.Maybe AssessmentStatus)
+assessmentMetadata_status = Lens.lens (\AssessmentMetadata' {status} -> status) (\s@AssessmentMetadata' {} a -> s {status = a} :: AssessmentMetadata)
+
+instance Data.FromJSON AssessmentMetadata where
+  parseJSON =
+    Data.withObject
+      "AssessmentMetadata"
+      ( \x ->
+          AssessmentMetadata'
+            Prelude.<$> (x Data..:? "assessmentReportsDestination")
+            Prelude.<*> (x Data..:? "complianceType")
+            Prelude.<*> (x Data..:? "creationTime")
+            Prelude.<*> (x Data..:? "delegations" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "lastUpdated")
+            Prelude.<*> (x Data..:? "name")
+            Prelude.<*> (x Data..:? "roles" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "scope")
+            Prelude.<*> (x Data..:? "status")
+      )
+
+instance Prelude.Hashable AssessmentMetadata where
+  hashWithSalt _salt AssessmentMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentReportsDestination
+      `Prelude.hashWithSalt` complianceType
+      `Prelude.hashWithSalt` creationTime
+      `Prelude.hashWithSalt` delegations
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` lastUpdated
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` roles
+      `Prelude.hashWithSalt` scope
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData AssessmentMetadata where
+  rnf AssessmentMetadata' {..} =
+    Prelude.rnf assessmentReportsDestination
+      `Prelude.seq` Prelude.rnf complianceType
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf delegations
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf lastUpdated
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf roles
+      `Prelude.seq` Prelude.rnf scope
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentMetadataItem.hs b/gen/Amazonka/AuditManager/Types/AssessmentMetadataItem.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentMetadataItem.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.AuditManager.Types.AssessmentMetadataItem
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentMetadataItem where
+
+import Amazonka.AuditManager.Types.AssessmentStatus
+import Amazonka.AuditManager.Types.Delegation
+import Amazonka.AuditManager.Types.Role
+import qualified 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 metadata object that\'s associated with an assessment in Audit
+-- Manager.
+--
+-- /See:/ 'newAssessmentMetadataItem' smart constructor.
+data AssessmentMetadataItem = AssessmentMetadataItem'
+  { -- | The name of the compliance standard that\'s related to the assessment,
+    -- such as PCI-DSS.
+    complianceType :: Prelude.Maybe Prelude.Text,
+    -- | Specifies when the assessment was created.
+    creationTime :: Prelude.Maybe Data.POSIX,
+    -- | The delegations that are associated with the assessment.
+    delegations :: Prelude.Maybe [Delegation],
+    -- | The unique identifier for the assessment.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The time of the most recent update.
+    lastUpdated :: Prelude.Maybe Data.POSIX,
+    -- | The name of the assessment.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The roles that are associated with the assessment.
+    roles :: Prelude.Maybe [Role],
+    -- | The current status of the assessment.
+    status :: Prelude.Maybe AssessmentStatus
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssessmentMetadataItem' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'complianceType', 'assessmentMetadataItem_complianceType' - The name of the compliance standard that\'s related to the assessment,
+-- such as PCI-DSS.
+--
+-- 'creationTime', 'assessmentMetadataItem_creationTime' - Specifies when the assessment was created.
+--
+-- 'delegations', 'assessmentMetadataItem_delegations' - The delegations that are associated with the assessment.
+--
+-- 'id', 'assessmentMetadataItem_id' - The unique identifier for the assessment.
+--
+-- 'lastUpdated', 'assessmentMetadataItem_lastUpdated' - The time of the most recent update.
+--
+-- 'name', 'assessmentMetadataItem_name' - The name of the assessment.
+--
+-- 'roles', 'assessmentMetadataItem_roles' - The roles that are associated with the assessment.
+--
+-- 'status', 'assessmentMetadataItem_status' - The current status of the assessment.
+newAssessmentMetadataItem ::
+  AssessmentMetadataItem
+newAssessmentMetadataItem =
+  AssessmentMetadataItem'
+    { complianceType =
+        Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      delegations = Prelude.Nothing,
+      id = Prelude.Nothing,
+      lastUpdated = Prelude.Nothing,
+      name = Prelude.Nothing,
+      roles = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | The name of the compliance standard that\'s related to the assessment,
+-- such as PCI-DSS.
+assessmentMetadataItem_complianceType :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe Prelude.Text)
+assessmentMetadataItem_complianceType = Lens.lens (\AssessmentMetadataItem' {complianceType} -> complianceType) (\s@AssessmentMetadataItem' {} a -> s {complianceType = a} :: AssessmentMetadataItem)
+
+-- | Specifies when the assessment was created.
+assessmentMetadataItem_creationTime :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe Prelude.UTCTime)
+assessmentMetadataItem_creationTime = Lens.lens (\AssessmentMetadataItem' {creationTime} -> creationTime) (\s@AssessmentMetadataItem' {} a -> s {creationTime = a} :: AssessmentMetadataItem) Prelude.. Lens.mapping Data._Time
+
+-- | The delegations that are associated with the assessment.
+assessmentMetadataItem_delegations :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe [Delegation])
+assessmentMetadataItem_delegations = Lens.lens (\AssessmentMetadataItem' {delegations} -> delegations) (\s@AssessmentMetadataItem' {} a -> s {delegations = a} :: AssessmentMetadataItem) Prelude.. Lens.mapping Lens.coerced
+
+-- | The unique identifier for the assessment.
+assessmentMetadataItem_id :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe Prelude.Text)
+assessmentMetadataItem_id = Lens.lens (\AssessmentMetadataItem' {id} -> id) (\s@AssessmentMetadataItem' {} a -> s {id = a} :: AssessmentMetadataItem)
+
+-- | The time of the most recent update.
+assessmentMetadataItem_lastUpdated :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe Prelude.UTCTime)
+assessmentMetadataItem_lastUpdated = Lens.lens (\AssessmentMetadataItem' {lastUpdated} -> lastUpdated) (\s@AssessmentMetadataItem' {} a -> s {lastUpdated = a} :: AssessmentMetadataItem) Prelude.. Lens.mapping Data._Time
+
+-- | The name of the assessment.
+assessmentMetadataItem_name :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe Prelude.Text)
+assessmentMetadataItem_name = Lens.lens (\AssessmentMetadataItem' {name} -> name) (\s@AssessmentMetadataItem' {} a -> s {name = a} :: AssessmentMetadataItem)
+
+-- | The roles that are associated with the assessment.
+assessmentMetadataItem_roles :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe [Role])
+assessmentMetadataItem_roles = Lens.lens (\AssessmentMetadataItem' {roles} -> roles) (\s@AssessmentMetadataItem' {} a -> s {roles = a} :: AssessmentMetadataItem) Prelude.. Lens.mapping Lens.coerced
+
+-- | The current status of the assessment.
+assessmentMetadataItem_status :: Lens.Lens' AssessmentMetadataItem (Prelude.Maybe AssessmentStatus)
+assessmentMetadataItem_status = Lens.lens (\AssessmentMetadataItem' {status} -> status) (\s@AssessmentMetadataItem' {} a -> s {status = a} :: AssessmentMetadataItem)
+
+instance Data.FromJSON AssessmentMetadataItem where
+  parseJSON =
+    Data.withObject
+      "AssessmentMetadataItem"
+      ( \x ->
+          AssessmentMetadataItem'
+            Prelude.<$> (x Data..:? "complianceType")
+            Prelude.<*> (x Data..:? "creationTime")
+            Prelude.<*> (x Data..:? "delegations" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "lastUpdated")
+            Prelude.<*> (x Data..:? "name")
+            Prelude.<*> (x Data..:? "roles" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "status")
+      )
+
+instance Prelude.Hashable AssessmentMetadataItem where
+  hashWithSalt _salt AssessmentMetadataItem' {..} =
+    _salt
+      `Prelude.hashWithSalt` complianceType
+      `Prelude.hashWithSalt` creationTime
+      `Prelude.hashWithSalt` delegations
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` lastUpdated
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` roles
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData AssessmentMetadataItem where
+  rnf AssessmentMetadataItem' {..} =
+    Prelude.rnf complianceType
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf delegations
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf lastUpdated
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf roles
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentReport.hs b/gen/Amazonka/AuditManager/Types/AssessmentReport.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentReport.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.AuditManager.Types.AssessmentReport
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentReport where
+
+import Amazonka.AuditManager.Types.AssessmentReportStatus
+import qualified 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 finalized document that\'s generated from an Audit Manager assessment.
+-- These reports summarize the relevant evidence that was collected for
+-- your audit, and link to the relevant evidence folders. These evidence
+-- folders are named and organized according to the controls that are
+-- specified in your assessment.
+--
+-- /See:/ 'newAssessmentReport' smart constructor.
+data AssessmentReport = AssessmentReport'
+  { -- | The identifier for the specified assessment.
+    assessmentId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the associated assessment.
+    assessmentName :: Prelude.Maybe Prelude.Text,
+    -- | The name of the user who created the assessment report.
+    author :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the specified Amazon Web Services account.
+    awsAccountId :: Prelude.Maybe Prelude.Text,
+    -- | Specifies when the assessment report was created.
+    creationTime :: Prelude.Maybe Data.POSIX,
+    -- | The description of the specified assessment report.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the assessment report.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The name that\'s given to the assessment report.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The current status of the specified assessment report.
+    status :: Prelude.Maybe AssessmentReportStatus
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssessmentReport' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'assessmentReport_assessmentId' - The identifier for the specified assessment.
+--
+-- 'assessmentName', 'assessmentReport_assessmentName' - The name of the associated assessment.
+--
+-- 'author', 'assessmentReport_author' - The name of the user who created the assessment report.
+--
+-- 'awsAccountId', 'assessmentReport_awsAccountId' - The identifier for the specified Amazon Web Services account.
+--
+-- 'creationTime', 'assessmentReport_creationTime' - Specifies when the assessment report was created.
+--
+-- 'description', 'assessmentReport_description' - The description of the specified assessment report.
+--
+-- 'id', 'assessmentReport_id' - The unique identifier for the assessment report.
+--
+-- 'name', 'assessmentReport_name' - The name that\'s given to the assessment report.
+--
+-- 'status', 'assessmentReport_status' - The current status of the specified assessment report.
+newAssessmentReport ::
+  AssessmentReport
+newAssessmentReport =
+  AssessmentReport'
+    { assessmentId = Prelude.Nothing,
+      assessmentName = Prelude.Nothing,
+      author = Prelude.Nothing,
+      awsAccountId = Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      description = Prelude.Nothing,
+      id = Prelude.Nothing,
+      name = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | The identifier for the specified assessment.
+assessmentReport_assessmentId :: Lens.Lens' AssessmentReport (Prelude.Maybe Prelude.Text)
+assessmentReport_assessmentId = Lens.lens (\AssessmentReport' {assessmentId} -> assessmentId) (\s@AssessmentReport' {} a -> s {assessmentId = a} :: AssessmentReport)
+
+-- | The name of the associated assessment.
+assessmentReport_assessmentName :: Lens.Lens' AssessmentReport (Prelude.Maybe Prelude.Text)
+assessmentReport_assessmentName = Lens.lens (\AssessmentReport' {assessmentName} -> assessmentName) (\s@AssessmentReport' {} a -> s {assessmentName = a} :: AssessmentReport)
+
+-- | The name of the user who created the assessment report.
+assessmentReport_author :: Lens.Lens' AssessmentReport (Prelude.Maybe Prelude.Text)
+assessmentReport_author = Lens.lens (\AssessmentReport' {author} -> author) (\s@AssessmentReport' {} a -> s {author = a} :: AssessmentReport)
+
+-- | The identifier for the specified Amazon Web Services account.
+assessmentReport_awsAccountId :: Lens.Lens' AssessmentReport (Prelude.Maybe Prelude.Text)
+assessmentReport_awsAccountId = Lens.lens (\AssessmentReport' {awsAccountId} -> awsAccountId) (\s@AssessmentReport' {} a -> s {awsAccountId = a} :: AssessmentReport)
+
+-- | Specifies when the assessment report was created.
+assessmentReport_creationTime :: Lens.Lens' AssessmentReport (Prelude.Maybe Prelude.UTCTime)
+assessmentReport_creationTime = Lens.lens (\AssessmentReport' {creationTime} -> creationTime) (\s@AssessmentReport' {} a -> s {creationTime = a} :: AssessmentReport) Prelude.. Lens.mapping Data._Time
+
+-- | The description of the specified assessment report.
+assessmentReport_description :: Lens.Lens' AssessmentReport (Prelude.Maybe Prelude.Text)
+assessmentReport_description = Lens.lens (\AssessmentReport' {description} -> description) (\s@AssessmentReport' {} a -> s {description = a} :: AssessmentReport)
+
+-- | The unique identifier for the assessment report.
+assessmentReport_id :: Lens.Lens' AssessmentReport (Prelude.Maybe Prelude.Text)
+assessmentReport_id = Lens.lens (\AssessmentReport' {id} -> id) (\s@AssessmentReport' {} a -> s {id = a} :: AssessmentReport)
+
+-- | The name that\'s given to the assessment report.
+assessmentReport_name :: Lens.Lens' AssessmentReport (Prelude.Maybe Prelude.Text)
+assessmentReport_name = Lens.lens (\AssessmentReport' {name} -> name) (\s@AssessmentReport' {} a -> s {name = a} :: AssessmentReport)
+
+-- | The current status of the specified assessment report.
+assessmentReport_status :: Lens.Lens' AssessmentReport (Prelude.Maybe AssessmentReportStatus)
+assessmentReport_status = Lens.lens (\AssessmentReport' {status} -> status) (\s@AssessmentReport' {} a -> s {status = a} :: AssessmentReport)
+
+instance Data.FromJSON AssessmentReport where
+  parseJSON =
+    Data.withObject
+      "AssessmentReport"
+      ( \x ->
+          AssessmentReport'
+            Prelude.<$> (x Data..:? "assessmentId")
+            Prelude.<*> (x Data..:? "assessmentName")
+            Prelude.<*> (x Data..:? "author")
+            Prelude.<*> (x Data..:? "awsAccountId")
+            Prelude.<*> (x Data..:? "creationTime")
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "name")
+            Prelude.<*> (x Data..:? "status")
+      )
+
+instance Prelude.Hashable AssessmentReport where
+  hashWithSalt _salt AssessmentReport' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` assessmentName
+      `Prelude.hashWithSalt` author
+      `Prelude.hashWithSalt` awsAccountId
+      `Prelude.hashWithSalt` creationTime
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData AssessmentReport where
+  rnf AssessmentReport' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf assessmentName
+      `Prelude.seq` Prelude.rnf author
+      `Prelude.seq` Prelude.rnf awsAccountId
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentReportDestinationType.hs b/gen/Amazonka/AuditManager/Types/AssessmentReportDestinationType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentReportDestinationType.hs
@@ -0,0 +1,66 @@
+{-# 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.AuditManager.Types.AssessmentReportDestinationType
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentReportDestinationType
+  ( AssessmentReportDestinationType
+      ( ..,
+        AssessmentReportDestinationType_S3
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype AssessmentReportDestinationType = AssessmentReportDestinationType'
+  { fromAssessmentReportDestinationType ::
+      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 AssessmentReportDestinationType_S3 :: AssessmentReportDestinationType
+pattern AssessmentReportDestinationType_S3 = AssessmentReportDestinationType' "S3"
+
+{-# COMPLETE
+  AssessmentReportDestinationType_S3,
+  AssessmentReportDestinationType'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentReportEvidenceError.hs b/gen/Amazonka/AuditManager/Types/AssessmentReportEvidenceError.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentReportEvidenceError.hs
@@ -0,0 +1,101 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.AssessmentReportEvidenceError
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentReportEvidenceError where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | An error entity for assessment report evidence errors. This is used to
+-- provide more meaningful errors than a simple string message.
+--
+-- /See:/ 'newAssessmentReportEvidenceError' smart constructor.
+data AssessmentReportEvidenceError = AssessmentReportEvidenceError'
+  { -- | The error code that was returned.
+    errorCode :: Prelude.Maybe Prelude.Text,
+    -- | The error message that was returned.
+    errorMessage :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the evidence.
+    evidenceId :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssessmentReportEvidenceError' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'assessmentReportEvidenceError_errorCode' - The error code that was returned.
+--
+-- 'errorMessage', 'assessmentReportEvidenceError_errorMessage' - The error message that was returned.
+--
+-- 'evidenceId', 'assessmentReportEvidenceError_evidenceId' - The identifier for the evidence.
+newAssessmentReportEvidenceError ::
+  AssessmentReportEvidenceError
+newAssessmentReportEvidenceError =
+  AssessmentReportEvidenceError'
+    { errorCode =
+        Prelude.Nothing,
+      errorMessage = Prelude.Nothing,
+      evidenceId = Prelude.Nothing
+    }
+
+-- | The error code that was returned.
+assessmentReportEvidenceError_errorCode :: Lens.Lens' AssessmentReportEvidenceError (Prelude.Maybe Prelude.Text)
+assessmentReportEvidenceError_errorCode = Lens.lens (\AssessmentReportEvidenceError' {errorCode} -> errorCode) (\s@AssessmentReportEvidenceError' {} a -> s {errorCode = a} :: AssessmentReportEvidenceError)
+
+-- | The error message that was returned.
+assessmentReportEvidenceError_errorMessage :: Lens.Lens' AssessmentReportEvidenceError (Prelude.Maybe Prelude.Text)
+assessmentReportEvidenceError_errorMessage = Lens.lens (\AssessmentReportEvidenceError' {errorMessage} -> errorMessage) (\s@AssessmentReportEvidenceError' {} a -> s {errorMessage = a} :: AssessmentReportEvidenceError)
+
+-- | The identifier for the evidence.
+assessmentReportEvidenceError_evidenceId :: Lens.Lens' AssessmentReportEvidenceError (Prelude.Maybe Prelude.Text)
+assessmentReportEvidenceError_evidenceId = Lens.lens (\AssessmentReportEvidenceError' {evidenceId} -> evidenceId) (\s@AssessmentReportEvidenceError' {} a -> s {evidenceId = a} :: AssessmentReportEvidenceError)
+
+instance Data.FromJSON AssessmentReportEvidenceError where
+  parseJSON =
+    Data.withObject
+      "AssessmentReportEvidenceError"
+      ( \x ->
+          AssessmentReportEvidenceError'
+            Prelude.<$> (x Data..:? "errorCode")
+            Prelude.<*> (x Data..:? "errorMessage")
+            Prelude.<*> (x Data..:? "evidenceId")
+      )
+
+instance
+  Prelude.Hashable
+    AssessmentReportEvidenceError
+  where
+  hashWithSalt _salt AssessmentReportEvidenceError' {..} =
+    _salt
+      `Prelude.hashWithSalt` errorCode
+      `Prelude.hashWithSalt` errorMessage
+      `Prelude.hashWithSalt` evidenceId
+
+instance Prelude.NFData AssessmentReportEvidenceError where
+  rnf AssessmentReportEvidenceError' {..} =
+    Prelude.rnf errorCode
+      `Prelude.seq` Prelude.rnf errorMessage
+      `Prelude.seq` Prelude.rnf evidenceId
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentReportMetadata.hs b/gen/Amazonka/AuditManager/Types/AssessmentReportMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentReportMetadata.hs
@@ -0,0 +1,159 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.AssessmentReportMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentReportMetadata where
+
+import Amazonka.AuditManager.Types.AssessmentReportStatus
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The metadata objects that are associated with the specified assessment
+-- report.
+--
+-- /See:/ 'newAssessmentReportMetadata' smart constructor.
+data AssessmentReportMetadata = AssessmentReportMetadata'
+  { -- | The unique identifier for the associated assessment.
+    assessmentId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the associated assessment.
+    assessmentName :: Prelude.Maybe Prelude.Text,
+    -- | The name of the user who created the assessment report.
+    author :: Prelude.Maybe Prelude.Text,
+    -- | Specifies when the assessment report was created.
+    creationTime :: Prelude.Maybe Data.POSIX,
+    -- | The description of the assessment report.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the assessment report.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The name of the assessment report.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The current status of the assessment report.
+    status :: Prelude.Maybe AssessmentReportStatus
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssessmentReportMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'assessmentReportMetadata_assessmentId' - The unique identifier for the associated assessment.
+--
+-- 'assessmentName', 'assessmentReportMetadata_assessmentName' - The name of the associated assessment.
+--
+-- 'author', 'assessmentReportMetadata_author' - The name of the user who created the assessment report.
+--
+-- 'creationTime', 'assessmentReportMetadata_creationTime' - Specifies when the assessment report was created.
+--
+-- 'description', 'assessmentReportMetadata_description' - The description of the assessment report.
+--
+-- 'id', 'assessmentReportMetadata_id' - The unique identifier for the assessment report.
+--
+-- 'name', 'assessmentReportMetadata_name' - The name of the assessment report.
+--
+-- 'status', 'assessmentReportMetadata_status' - The current status of the assessment report.
+newAssessmentReportMetadata ::
+  AssessmentReportMetadata
+newAssessmentReportMetadata =
+  AssessmentReportMetadata'
+    { assessmentId =
+        Prelude.Nothing,
+      assessmentName = Prelude.Nothing,
+      author = Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      description = Prelude.Nothing,
+      id = Prelude.Nothing,
+      name = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | The unique identifier for the associated assessment.
+assessmentReportMetadata_assessmentId :: Lens.Lens' AssessmentReportMetadata (Prelude.Maybe Prelude.Text)
+assessmentReportMetadata_assessmentId = Lens.lens (\AssessmentReportMetadata' {assessmentId} -> assessmentId) (\s@AssessmentReportMetadata' {} a -> s {assessmentId = a} :: AssessmentReportMetadata)
+
+-- | The name of the associated assessment.
+assessmentReportMetadata_assessmentName :: Lens.Lens' AssessmentReportMetadata (Prelude.Maybe Prelude.Text)
+assessmentReportMetadata_assessmentName = Lens.lens (\AssessmentReportMetadata' {assessmentName} -> assessmentName) (\s@AssessmentReportMetadata' {} a -> s {assessmentName = a} :: AssessmentReportMetadata)
+
+-- | The name of the user who created the assessment report.
+assessmentReportMetadata_author :: Lens.Lens' AssessmentReportMetadata (Prelude.Maybe Prelude.Text)
+assessmentReportMetadata_author = Lens.lens (\AssessmentReportMetadata' {author} -> author) (\s@AssessmentReportMetadata' {} a -> s {author = a} :: AssessmentReportMetadata)
+
+-- | Specifies when the assessment report was created.
+assessmentReportMetadata_creationTime :: Lens.Lens' AssessmentReportMetadata (Prelude.Maybe Prelude.UTCTime)
+assessmentReportMetadata_creationTime = Lens.lens (\AssessmentReportMetadata' {creationTime} -> creationTime) (\s@AssessmentReportMetadata' {} a -> s {creationTime = a} :: AssessmentReportMetadata) Prelude.. Lens.mapping Data._Time
+
+-- | The description of the assessment report.
+assessmentReportMetadata_description :: Lens.Lens' AssessmentReportMetadata (Prelude.Maybe Prelude.Text)
+assessmentReportMetadata_description = Lens.lens (\AssessmentReportMetadata' {description} -> description) (\s@AssessmentReportMetadata' {} a -> s {description = a} :: AssessmentReportMetadata)
+
+-- | The unique identifier for the assessment report.
+assessmentReportMetadata_id :: Lens.Lens' AssessmentReportMetadata (Prelude.Maybe Prelude.Text)
+assessmentReportMetadata_id = Lens.lens (\AssessmentReportMetadata' {id} -> id) (\s@AssessmentReportMetadata' {} a -> s {id = a} :: AssessmentReportMetadata)
+
+-- | The name of the assessment report.
+assessmentReportMetadata_name :: Lens.Lens' AssessmentReportMetadata (Prelude.Maybe Prelude.Text)
+assessmentReportMetadata_name = Lens.lens (\AssessmentReportMetadata' {name} -> name) (\s@AssessmentReportMetadata' {} a -> s {name = a} :: AssessmentReportMetadata)
+
+-- | The current status of the assessment report.
+assessmentReportMetadata_status :: Lens.Lens' AssessmentReportMetadata (Prelude.Maybe AssessmentReportStatus)
+assessmentReportMetadata_status = Lens.lens (\AssessmentReportMetadata' {status} -> status) (\s@AssessmentReportMetadata' {} a -> s {status = a} :: AssessmentReportMetadata)
+
+instance Data.FromJSON AssessmentReportMetadata where
+  parseJSON =
+    Data.withObject
+      "AssessmentReportMetadata"
+      ( \x ->
+          AssessmentReportMetadata'
+            Prelude.<$> (x Data..:? "assessmentId")
+            Prelude.<*> (x Data..:? "assessmentName")
+            Prelude.<*> (x Data..:? "author")
+            Prelude.<*> (x Data..:? "creationTime")
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "name")
+            Prelude.<*> (x Data..:? "status")
+      )
+
+instance Prelude.Hashable AssessmentReportMetadata where
+  hashWithSalt _salt AssessmentReportMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` assessmentName
+      `Prelude.hashWithSalt` author
+      `Prelude.hashWithSalt` creationTime
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData AssessmentReportMetadata where
+  rnf AssessmentReportMetadata' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf assessmentName
+      `Prelude.seq` Prelude.rnf author
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentReportStatus.hs b/gen/Amazonka/AuditManager/Types/AssessmentReportStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentReportStatus.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.AuditManager.Types.AssessmentReportStatus
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentReportStatus
+  ( AssessmentReportStatus
+      ( ..,
+        AssessmentReportStatus_COMPLETE,
+        AssessmentReportStatus_FAILED,
+        AssessmentReportStatus_IN_PROGRESS
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype AssessmentReportStatus = AssessmentReportStatus'
+  { fromAssessmentReportStatus ::
+      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 AssessmentReportStatus_COMPLETE :: AssessmentReportStatus
+pattern AssessmentReportStatus_COMPLETE = AssessmentReportStatus' "COMPLETE"
+
+pattern AssessmentReportStatus_FAILED :: AssessmentReportStatus
+pattern AssessmentReportStatus_FAILED = AssessmentReportStatus' "FAILED"
+
+pattern AssessmentReportStatus_IN_PROGRESS :: AssessmentReportStatus
+pattern AssessmentReportStatus_IN_PROGRESS = AssessmentReportStatus' "IN_PROGRESS"
+
+{-# COMPLETE
+  AssessmentReportStatus_COMPLETE,
+  AssessmentReportStatus_FAILED,
+  AssessmentReportStatus_IN_PROGRESS,
+  AssessmentReportStatus'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentReportsDestination.hs b/gen/Amazonka/AuditManager/Types/AssessmentReportsDestination.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentReportsDestination.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.AuditManager.Types.AssessmentReportsDestination
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentReportsDestination where
+
+import Amazonka.AuditManager.Types.AssessmentReportDestinationType
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The location where Audit Manager saves assessment reports for the given
+-- assessment.
+--
+-- /See:/ 'newAssessmentReportsDestination' smart constructor.
+data AssessmentReportsDestination = AssessmentReportsDestination'
+  { -- | The destination of the assessment report.
+    destination :: Prelude.Maybe Prelude.Text,
+    -- | The destination type, such as Amazon S3.
+    destinationType :: Prelude.Maybe AssessmentReportDestinationType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AssessmentReportsDestination' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'assessmentReportsDestination_destination' - The destination of the assessment report.
+--
+-- 'destinationType', 'assessmentReportsDestination_destinationType' - The destination type, such as Amazon S3.
+newAssessmentReportsDestination ::
+  AssessmentReportsDestination
+newAssessmentReportsDestination =
+  AssessmentReportsDestination'
+    { destination =
+        Prelude.Nothing,
+      destinationType = Prelude.Nothing
+    }
+
+-- | The destination of the assessment report.
+assessmentReportsDestination_destination :: Lens.Lens' AssessmentReportsDestination (Prelude.Maybe Prelude.Text)
+assessmentReportsDestination_destination = Lens.lens (\AssessmentReportsDestination' {destination} -> destination) (\s@AssessmentReportsDestination' {} a -> s {destination = a} :: AssessmentReportsDestination)
+
+-- | The destination type, such as Amazon S3.
+assessmentReportsDestination_destinationType :: Lens.Lens' AssessmentReportsDestination (Prelude.Maybe AssessmentReportDestinationType)
+assessmentReportsDestination_destinationType = Lens.lens (\AssessmentReportsDestination' {destinationType} -> destinationType) (\s@AssessmentReportsDestination' {} a -> s {destinationType = a} :: AssessmentReportsDestination)
+
+instance Data.FromJSON AssessmentReportsDestination where
+  parseJSON =
+    Data.withObject
+      "AssessmentReportsDestination"
+      ( \x ->
+          AssessmentReportsDestination'
+            Prelude.<$> (x Data..:? "destination")
+            Prelude.<*> (x Data..:? "destinationType")
+      )
+
+instance
+  Prelude.Hashable
+    AssessmentReportsDestination
+  where
+  hashWithSalt _salt AssessmentReportsDestination' {..} =
+    _salt
+      `Prelude.hashWithSalt` destination
+      `Prelude.hashWithSalt` destinationType
+
+instance Prelude.NFData AssessmentReportsDestination where
+  rnf AssessmentReportsDestination' {..} =
+    Prelude.rnf destination
+      `Prelude.seq` Prelude.rnf destinationType
+
+instance Data.ToJSON AssessmentReportsDestination where
+  toJSON AssessmentReportsDestination' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("destination" Data..=) Prelude.<$> destination,
+            ("destinationType" Data..=)
+              Prelude.<$> destinationType
+          ]
+      )
diff --git a/gen/Amazonka/AuditManager/Types/AssessmentStatus.hs b/gen/Amazonka/AuditManager/Types/AssessmentStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/AssessmentStatus.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.AuditManager.Types.AssessmentStatus
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.AssessmentStatus
+  ( AssessmentStatus
+      ( ..,
+        AssessmentStatus_ACTIVE,
+        AssessmentStatus_INACTIVE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype AssessmentStatus = AssessmentStatus'
+  { fromAssessmentStatus ::
+      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 AssessmentStatus_ACTIVE :: AssessmentStatus
+pattern AssessmentStatus_ACTIVE = AssessmentStatus' "ACTIVE"
+
+pattern AssessmentStatus_INACTIVE :: AssessmentStatus
+pattern AssessmentStatus_INACTIVE = AssessmentStatus' "INACTIVE"
+
+{-# COMPLETE
+  AssessmentStatus_ACTIVE,
+  AssessmentStatus_INACTIVE,
+  AssessmentStatus'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/BatchCreateDelegationByAssessmentError.hs b/gen/Amazonka/AuditManager/Types/BatchCreateDelegationByAssessmentError.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/BatchCreateDelegationByAssessmentError.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.BatchCreateDelegationByAssessmentError
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.BatchCreateDelegationByAssessmentError where
+
+import Amazonka.AuditManager.Types.CreateDelegationRequest
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | An error entity for the @BatchCreateDelegationByAssessment@ API. This is
+-- used to provide more meaningful errors than a simple string message.
+--
+-- /See:/ 'newBatchCreateDelegationByAssessmentError' smart constructor.
+data BatchCreateDelegationByAssessmentError = BatchCreateDelegationByAssessmentError'
+  { -- | The API request to batch create delegations in Audit Manager.
+    createDelegationRequest :: Prelude.Maybe CreateDelegationRequest,
+    -- | The error code that the @BatchCreateDelegationByAssessment@ API
+    -- returned.
+    errorCode :: Prelude.Maybe Prelude.Text,
+    -- | The error message that the @BatchCreateDelegationByAssessment@ API
+    -- returned.
+    errorMessage :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchCreateDelegationByAssessmentError' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'createDelegationRequest', 'batchCreateDelegationByAssessmentError_createDelegationRequest' - The API request to batch create delegations in Audit Manager.
+--
+-- 'errorCode', 'batchCreateDelegationByAssessmentError_errorCode' - The error code that the @BatchCreateDelegationByAssessment@ API
+-- returned.
+--
+-- 'errorMessage', 'batchCreateDelegationByAssessmentError_errorMessage' - The error message that the @BatchCreateDelegationByAssessment@ API
+-- returned.
+newBatchCreateDelegationByAssessmentError ::
+  BatchCreateDelegationByAssessmentError
+newBatchCreateDelegationByAssessmentError =
+  BatchCreateDelegationByAssessmentError'
+    { createDelegationRequest =
+        Prelude.Nothing,
+      errorCode = Prelude.Nothing,
+      errorMessage = Prelude.Nothing
+    }
+
+-- | The API request to batch create delegations in Audit Manager.
+batchCreateDelegationByAssessmentError_createDelegationRequest :: Lens.Lens' BatchCreateDelegationByAssessmentError (Prelude.Maybe CreateDelegationRequest)
+batchCreateDelegationByAssessmentError_createDelegationRequest = Lens.lens (\BatchCreateDelegationByAssessmentError' {createDelegationRequest} -> createDelegationRequest) (\s@BatchCreateDelegationByAssessmentError' {} a -> s {createDelegationRequest = a} :: BatchCreateDelegationByAssessmentError)
+
+-- | The error code that the @BatchCreateDelegationByAssessment@ API
+-- returned.
+batchCreateDelegationByAssessmentError_errorCode :: Lens.Lens' BatchCreateDelegationByAssessmentError (Prelude.Maybe Prelude.Text)
+batchCreateDelegationByAssessmentError_errorCode = Lens.lens (\BatchCreateDelegationByAssessmentError' {errorCode} -> errorCode) (\s@BatchCreateDelegationByAssessmentError' {} a -> s {errorCode = a} :: BatchCreateDelegationByAssessmentError)
+
+-- | The error message that the @BatchCreateDelegationByAssessment@ API
+-- returned.
+batchCreateDelegationByAssessmentError_errorMessage :: Lens.Lens' BatchCreateDelegationByAssessmentError (Prelude.Maybe Prelude.Text)
+batchCreateDelegationByAssessmentError_errorMessage = Lens.lens (\BatchCreateDelegationByAssessmentError' {errorMessage} -> errorMessage) (\s@BatchCreateDelegationByAssessmentError' {} a -> s {errorMessage = a} :: BatchCreateDelegationByAssessmentError)
+
+instance
+  Data.FromJSON
+    BatchCreateDelegationByAssessmentError
+  where
+  parseJSON =
+    Data.withObject
+      "BatchCreateDelegationByAssessmentError"
+      ( \x ->
+          BatchCreateDelegationByAssessmentError'
+            Prelude.<$> (x Data..:? "createDelegationRequest")
+            Prelude.<*> (x Data..:? "errorCode")
+            Prelude.<*> (x Data..:? "errorMessage")
+      )
+
+instance
+  Prelude.Hashable
+    BatchCreateDelegationByAssessmentError
+  where
+  hashWithSalt
+    _salt
+    BatchCreateDelegationByAssessmentError' {..} =
+      _salt
+        `Prelude.hashWithSalt` createDelegationRequest
+        `Prelude.hashWithSalt` errorCode
+        `Prelude.hashWithSalt` errorMessage
+
+instance
+  Prelude.NFData
+    BatchCreateDelegationByAssessmentError
+  where
+  rnf BatchCreateDelegationByAssessmentError' {..} =
+    Prelude.rnf createDelegationRequest
+      `Prelude.seq` Prelude.rnf errorCode
+      `Prelude.seq` Prelude.rnf errorMessage
diff --git a/gen/Amazonka/AuditManager/Types/BatchDeleteDelegationByAssessmentError.hs b/gen/Amazonka/AuditManager/Types/BatchDeleteDelegationByAssessmentError.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/BatchDeleteDelegationByAssessmentError.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.AuditManager.Types.BatchDeleteDelegationByAssessmentError
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.BatchDeleteDelegationByAssessmentError where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | An error entity for the @BatchDeleteDelegationByAssessment@ API. This is
+-- used to provide more meaningful errors than a simple string message.
+--
+-- /See:/ 'newBatchDeleteDelegationByAssessmentError' smart constructor.
+data BatchDeleteDelegationByAssessmentError = BatchDeleteDelegationByAssessmentError'
+  { -- | The identifier for the delegation.
+    delegationId :: Prelude.Maybe Prelude.Text,
+    -- | The error code that the @BatchDeleteDelegationByAssessment@ API
+    -- returned.
+    errorCode :: Prelude.Maybe Prelude.Text,
+    -- | The error message that the @BatchDeleteDelegationByAssessment@ API
+    -- returned.
+    errorMessage :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchDeleteDelegationByAssessmentError' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'delegationId', 'batchDeleteDelegationByAssessmentError_delegationId' - The identifier for the delegation.
+--
+-- 'errorCode', 'batchDeleteDelegationByAssessmentError_errorCode' - The error code that the @BatchDeleteDelegationByAssessment@ API
+-- returned.
+--
+-- 'errorMessage', 'batchDeleteDelegationByAssessmentError_errorMessage' - The error message that the @BatchDeleteDelegationByAssessment@ API
+-- returned.
+newBatchDeleteDelegationByAssessmentError ::
+  BatchDeleteDelegationByAssessmentError
+newBatchDeleteDelegationByAssessmentError =
+  BatchDeleteDelegationByAssessmentError'
+    { delegationId =
+        Prelude.Nothing,
+      errorCode = Prelude.Nothing,
+      errorMessage = Prelude.Nothing
+    }
+
+-- | The identifier for the delegation.
+batchDeleteDelegationByAssessmentError_delegationId :: Lens.Lens' BatchDeleteDelegationByAssessmentError (Prelude.Maybe Prelude.Text)
+batchDeleteDelegationByAssessmentError_delegationId = Lens.lens (\BatchDeleteDelegationByAssessmentError' {delegationId} -> delegationId) (\s@BatchDeleteDelegationByAssessmentError' {} a -> s {delegationId = a} :: BatchDeleteDelegationByAssessmentError)
+
+-- | The error code that the @BatchDeleteDelegationByAssessment@ API
+-- returned.
+batchDeleteDelegationByAssessmentError_errorCode :: Lens.Lens' BatchDeleteDelegationByAssessmentError (Prelude.Maybe Prelude.Text)
+batchDeleteDelegationByAssessmentError_errorCode = Lens.lens (\BatchDeleteDelegationByAssessmentError' {errorCode} -> errorCode) (\s@BatchDeleteDelegationByAssessmentError' {} a -> s {errorCode = a} :: BatchDeleteDelegationByAssessmentError)
+
+-- | The error message that the @BatchDeleteDelegationByAssessment@ API
+-- returned.
+batchDeleteDelegationByAssessmentError_errorMessage :: Lens.Lens' BatchDeleteDelegationByAssessmentError (Prelude.Maybe Prelude.Text)
+batchDeleteDelegationByAssessmentError_errorMessage = Lens.lens (\BatchDeleteDelegationByAssessmentError' {errorMessage} -> errorMessage) (\s@BatchDeleteDelegationByAssessmentError' {} a -> s {errorMessage = a} :: BatchDeleteDelegationByAssessmentError)
+
+instance
+  Data.FromJSON
+    BatchDeleteDelegationByAssessmentError
+  where
+  parseJSON =
+    Data.withObject
+      "BatchDeleteDelegationByAssessmentError"
+      ( \x ->
+          BatchDeleteDelegationByAssessmentError'
+            Prelude.<$> (x Data..:? "delegationId")
+            Prelude.<*> (x Data..:? "errorCode")
+            Prelude.<*> (x Data..:? "errorMessage")
+      )
+
+instance
+  Prelude.Hashable
+    BatchDeleteDelegationByAssessmentError
+  where
+  hashWithSalt
+    _salt
+    BatchDeleteDelegationByAssessmentError' {..} =
+      _salt
+        `Prelude.hashWithSalt` delegationId
+        `Prelude.hashWithSalt` errorCode
+        `Prelude.hashWithSalt` errorMessage
+
+instance
+  Prelude.NFData
+    BatchDeleteDelegationByAssessmentError
+  where
+  rnf BatchDeleteDelegationByAssessmentError' {..} =
+    Prelude.rnf delegationId
+      `Prelude.seq` Prelude.rnf errorCode
+      `Prelude.seq` Prelude.rnf errorMessage
diff --git a/gen/Amazonka/AuditManager/Types/BatchImportEvidenceToAssessmentControlError.hs b/gen/Amazonka/AuditManager/Types/BatchImportEvidenceToAssessmentControlError.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/BatchImportEvidenceToAssessmentControlError.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.AuditManager.Types.BatchImportEvidenceToAssessmentControlError
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.BatchImportEvidenceToAssessmentControlError where
+
+import Amazonka.AuditManager.Types.ManualEvidence
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | An error entity for the @BatchImportEvidenceToAssessmentControl@ API.
+-- This is used to provide more meaningful errors than a simple string
+-- message.
+--
+-- /See:/ 'newBatchImportEvidenceToAssessmentControlError' smart constructor.
+data BatchImportEvidenceToAssessmentControlError = BatchImportEvidenceToAssessmentControlError'
+  { -- | The error code that the @BatchImportEvidenceToAssessmentControl@ API
+    -- returned.
+    errorCode :: Prelude.Maybe Prelude.Text,
+    -- | The error message that the @BatchImportEvidenceToAssessmentControl@ API
+    -- returned.
+    errorMessage :: Prelude.Maybe Prelude.Text,
+    -- | Manual evidence that can\'t be collected automatically by Audit Manager.
+    manualEvidence :: Prelude.Maybe ManualEvidence
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BatchImportEvidenceToAssessmentControlError' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'batchImportEvidenceToAssessmentControlError_errorCode' - The error code that the @BatchImportEvidenceToAssessmentControl@ API
+-- returned.
+--
+-- 'errorMessage', 'batchImportEvidenceToAssessmentControlError_errorMessage' - The error message that the @BatchImportEvidenceToAssessmentControl@ API
+-- returned.
+--
+-- 'manualEvidence', 'batchImportEvidenceToAssessmentControlError_manualEvidence' - Manual evidence that can\'t be collected automatically by Audit Manager.
+newBatchImportEvidenceToAssessmentControlError ::
+  BatchImportEvidenceToAssessmentControlError
+newBatchImportEvidenceToAssessmentControlError =
+  BatchImportEvidenceToAssessmentControlError'
+    { errorCode =
+        Prelude.Nothing,
+      errorMessage = Prelude.Nothing,
+      manualEvidence =
+        Prelude.Nothing
+    }
+
+-- | The error code that the @BatchImportEvidenceToAssessmentControl@ API
+-- returned.
+batchImportEvidenceToAssessmentControlError_errorCode :: Lens.Lens' BatchImportEvidenceToAssessmentControlError (Prelude.Maybe Prelude.Text)
+batchImportEvidenceToAssessmentControlError_errorCode = Lens.lens (\BatchImportEvidenceToAssessmentControlError' {errorCode} -> errorCode) (\s@BatchImportEvidenceToAssessmentControlError' {} a -> s {errorCode = a} :: BatchImportEvidenceToAssessmentControlError)
+
+-- | The error message that the @BatchImportEvidenceToAssessmentControl@ API
+-- returned.
+batchImportEvidenceToAssessmentControlError_errorMessage :: Lens.Lens' BatchImportEvidenceToAssessmentControlError (Prelude.Maybe Prelude.Text)
+batchImportEvidenceToAssessmentControlError_errorMessage = Lens.lens (\BatchImportEvidenceToAssessmentControlError' {errorMessage} -> errorMessage) (\s@BatchImportEvidenceToAssessmentControlError' {} a -> s {errorMessage = a} :: BatchImportEvidenceToAssessmentControlError)
+
+-- | Manual evidence that can\'t be collected automatically by Audit Manager.
+batchImportEvidenceToAssessmentControlError_manualEvidence :: Lens.Lens' BatchImportEvidenceToAssessmentControlError (Prelude.Maybe ManualEvidence)
+batchImportEvidenceToAssessmentControlError_manualEvidence = Lens.lens (\BatchImportEvidenceToAssessmentControlError' {manualEvidence} -> manualEvidence) (\s@BatchImportEvidenceToAssessmentControlError' {} a -> s {manualEvidence = a} :: BatchImportEvidenceToAssessmentControlError)
+
+instance
+  Data.FromJSON
+    BatchImportEvidenceToAssessmentControlError
+  where
+  parseJSON =
+    Data.withObject
+      "BatchImportEvidenceToAssessmentControlError"
+      ( \x ->
+          BatchImportEvidenceToAssessmentControlError'
+            Prelude.<$> (x Data..:? "errorCode")
+            Prelude.<*> (x Data..:? "errorMessage")
+            Prelude.<*> (x Data..:? "manualEvidence")
+      )
+
+instance
+  Prelude.Hashable
+    BatchImportEvidenceToAssessmentControlError
+  where
+  hashWithSalt
+    _salt
+    BatchImportEvidenceToAssessmentControlError' {..} =
+      _salt
+        `Prelude.hashWithSalt` errorCode
+        `Prelude.hashWithSalt` errorMessage
+        `Prelude.hashWithSalt` manualEvidence
+
+instance
+  Prelude.NFData
+    BatchImportEvidenceToAssessmentControlError
+  where
+  rnf BatchImportEvidenceToAssessmentControlError' {..} =
+    Prelude.rnf errorCode
+      `Prelude.seq` Prelude.rnf errorMessage
+      `Prelude.seq` Prelude.rnf manualEvidence
diff --git a/gen/Amazonka/AuditManager/Types/ChangeLog.hs b/gen/Amazonka/AuditManager/Types/ChangeLog.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ChangeLog.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.AuditManager.Types.ChangeLog
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ChangeLog where
+
+import Amazonka.AuditManager.Types.ActionEnum
+import Amazonka.AuditManager.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
+
+-- | The record of a change within Audit Manager. For example, this could be
+-- the status change of an assessment or the delegation of a control set.
+--
+-- /See:/ 'newChangeLog' smart constructor.
+data ChangeLog = ChangeLog'
+  { -- | The action that was performed.
+    action :: Prelude.Maybe ActionEnum,
+    -- | The time when the action was performed and the changelog record was
+    -- created.
+    createdAt :: Prelude.Maybe Data.POSIX,
+    -- | The IAM user or role that performed the action.
+    createdBy :: Prelude.Maybe Prelude.Text,
+    -- | The name of the object that changed. This could be the name of an
+    -- assessment, control, or control set.
+    objectName :: Prelude.Maybe Prelude.Text,
+    -- | The object that was changed, such as an assessment, control, or control
+    -- set.
+    objectType :: Prelude.Maybe ObjectTypeEnum
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ChangeLog' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'action', 'changeLog_action' - The action that was performed.
+--
+-- 'createdAt', 'changeLog_createdAt' - The time when the action was performed and the changelog record was
+-- created.
+--
+-- 'createdBy', 'changeLog_createdBy' - The IAM user or role that performed the action.
+--
+-- 'objectName', 'changeLog_objectName' - The name of the object that changed. This could be the name of an
+-- assessment, control, or control set.
+--
+-- 'objectType', 'changeLog_objectType' - The object that was changed, such as an assessment, control, or control
+-- set.
+newChangeLog ::
+  ChangeLog
+newChangeLog =
+  ChangeLog'
+    { action = Prelude.Nothing,
+      createdAt = Prelude.Nothing,
+      createdBy = Prelude.Nothing,
+      objectName = Prelude.Nothing,
+      objectType = Prelude.Nothing
+    }
+
+-- | The action that was performed.
+changeLog_action :: Lens.Lens' ChangeLog (Prelude.Maybe ActionEnum)
+changeLog_action = Lens.lens (\ChangeLog' {action} -> action) (\s@ChangeLog' {} a -> s {action = a} :: ChangeLog)
+
+-- | The time when the action was performed and the changelog record was
+-- created.
+changeLog_createdAt :: Lens.Lens' ChangeLog (Prelude.Maybe Prelude.UTCTime)
+changeLog_createdAt = Lens.lens (\ChangeLog' {createdAt} -> createdAt) (\s@ChangeLog' {} a -> s {createdAt = a} :: ChangeLog) Prelude.. Lens.mapping Data._Time
+
+-- | The IAM user or role that performed the action.
+changeLog_createdBy :: Lens.Lens' ChangeLog (Prelude.Maybe Prelude.Text)
+changeLog_createdBy = Lens.lens (\ChangeLog' {createdBy} -> createdBy) (\s@ChangeLog' {} a -> s {createdBy = a} :: ChangeLog)
+
+-- | The name of the object that changed. This could be the name of an
+-- assessment, control, or control set.
+changeLog_objectName :: Lens.Lens' ChangeLog (Prelude.Maybe Prelude.Text)
+changeLog_objectName = Lens.lens (\ChangeLog' {objectName} -> objectName) (\s@ChangeLog' {} a -> s {objectName = a} :: ChangeLog)
+
+-- | The object that was changed, such as an assessment, control, or control
+-- set.
+changeLog_objectType :: Lens.Lens' ChangeLog (Prelude.Maybe ObjectTypeEnum)
+changeLog_objectType = Lens.lens (\ChangeLog' {objectType} -> objectType) (\s@ChangeLog' {} a -> s {objectType = a} :: ChangeLog)
+
+instance Data.FromJSON ChangeLog where
+  parseJSON =
+    Data.withObject
+      "ChangeLog"
+      ( \x ->
+          ChangeLog'
+            Prelude.<$> (x Data..:? "action")
+            Prelude.<*> (x Data..:? "createdAt")
+            Prelude.<*> (x Data..:? "createdBy")
+            Prelude.<*> (x Data..:? "objectName")
+            Prelude.<*> (x Data..:? "objectType")
+      )
+
+instance Prelude.Hashable ChangeLog where
+  hashWithSalt _salt ChangeLog' {..} =
+    _salt
+      `Prelude.hashWithSalt` action
+      `Prelude.hashWithSalt` createdAt
+      `Prelude.hashWithSalt` createdBy
+      `Prelude.hashWithSalt` objectName
+      `Prelude.hashWithSalt` objectType
+
+instance Prelude.NFData ChangeLog where
+  rnf ChangeLog' {..} =
+    Prelude.rnf action
+      `Prelude.seq` Prelude.rnf createdAt
+      `Prelude.seq` Prelude.rnf createdBy
+      `Prelude.seq` Prelude.rnf objectName
+      `Prelude.seq` Prelude.rnf objectType
diff --git a/gen/Amazonka/AuditManager/Types/Control.hs b/gen/Amazonka/AuditManager/Types/Control.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/Control.hs
@@ -0,0 +1,248 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.Control
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.Control where
+
+import Amazonka.AuditManager.Types.ControlMappingSource
+import Amazonka.AuditManager.Types.ControlType
+import qualified 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 control in Audit Manager.
+--
+-- /See:/ 'newControl' smart constructor.
+data Control = Control'
+  { -- | The recommended actions to carry out if the control isn\'t fulfilled.
+    actionPlanInstructions :: Prelude.Maybe Prelude.Text,
+    -- | The title of the action plan for remediating the control.
+    actionPlanTitle :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the control.
+    arn :: Prelude.Maybe Prelude.Text,
+    -- | The data mapping sources for the control.
+    controlMappingSources :: Prelude.Maybe (Prelude.NonEmpty ControlMappingSource),
+    -- | The data source types that determine where Audit Manager collects
+    -- evidence from for the control.
+    controlSources :: Prelude.Maybe Prelude.Text,
+    -- | The time when the control was created.
+    createdAt :: Prelude.Maybe Data.POSIX,
+    -- | The IAM user or role that created the control.
+    createdBy :: Prelude.Maybe Prelude.Text,
+    -- | The description of the control.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the control.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The time when the control was most recently updated.
+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,
+    -- | The IAM user or role that most recently updated the control.
+    lastUpdatedBy :: Prelude.Maybe Prelude.Text,
+    -- | The name of the control.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The tags associated with the control.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | The steps that you should follow to determine if the control has been
+    -- satisfied.
+    testingInformation :: Prelude.Maybe Prelude.Text,
+    -- | The type of control, such as a custom control or a standard control.
+    type' :: Prelude.Maybe ControlType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Control' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'actionPlanInstructions', 'control_actionPlanInstructions' - The recommended actions to carry out if the control isn\'t fulfilled.
+--
+-- 'actionPlanTitle', 'control_actionPlanTitle' - The title of the action plan for remediating the control.
+--
+-- 'arn', 'control_arn' - The Amazon Resource Name (ARN) of the control.
+--
+-- 'controlMappingSources', 'control_controlMappingSources' - The data mapping sources for the control.
+--
+-- 'controlSources', 'control_controlSources' - The data source types that determine where Audit Manager collects
+-- evidence from for the control.
+--
+-- 'createdAt', 'control_createdAt' - The time when the control was created.
+--
+-- 'createdBy', 'control_createdBy' - The IAM user or role that created the control.
+--
+-- 'description', 'control_description' - The description of the control.
+--
+-- 'id', 'control_id' - The unique identifier for the control.
+--
+-- 'lastUpdatedAt', 'control_lastUpdatedAt' - The time when the control was most recently updated.
+--
+-- 'lastUpdatedBy', 'control_lastUpdatedBy' - The IAM user or role that most recently updated the control.
+--
+-- 'name', 'control_name' - The name of the control.
+--
+-- 'tags', 'control_tags' - The tags associated with the control.
+--
+-- 'testingInformation', 'control_testingInformation' - The steps that you should follow to determine if the control has been
+-- satisfied.
+--
+-- 'type'', 'control_type' - The type of control, such as a custom control or a standard control.
+newControl ::
+  Control
+newControl =
+  Control'
+    { actionPlanInstructions = Prelude.Nothing,
+      actionPlanTitle = Prelude.Nothing,
+      arn = Prelude.Nothing,
+      controlMappingSources = Prelude.Nothing,
+      controlSources = Prelude.Nothing,
+      createdAt = Prelude.Nothing,
+      createdBy = Prelude.Nothing,
+      description = Prelude.Nothing,
+      id = Prelude.Nothing,
+      lastUpdatedAt = Prelude.Nothing,
+      lastUpdatedBy = Prelude.Nothing,
+      name = Prelude.Nothing,
+      tags = Prelude.Nothing,
+      testingInformation = Prelude.Nothing,
+      type' = Prelude.Nothing
+    }
+
+-- | The recommended actions to carry out if the control isn\'t fulfilled.
+control_actionPlanInstructions :: Lens.Lens' Control (Prelude.Maybe Prelude.Text)
+control_actionPlanInstructions = Lens.lens (\Control' {actionPlanInstructions} -> actionPlanInstructions) (\s@Control' {} a -> s {actionPlanInstructions = a} :: Control)
+
+-- | The title of the action plan for remediating the control.
+control_actionPlanTitle :: Lens.Lens' Control (Prelude.Maybe Prelude.Text)
+control_actionPlanTitle = Lens.lens (\Control' {actionPlanTitle} -> actionPlanTitle) (\s@Control' {} a -> s {actionPlanTitle = a} :: Control)
+
+-- | The Amazon Resource Name (ARN) of the control.
+control_arn :: Lens.Lens' Control (Prelude.Maybe Prelude.Text)
+control_arn = Lens.lens (\Control' {arn} -> arn) (\s@Control' {} a -> s {arn = a} :: Control)
+
+-- | The data mapping sources for the control.
+control_controlMappingSources :: Lens.Lens' Control (Prelude.Maybe (Prelude.NonEmpty ControlMappingSource))
+control_controlMappingSources = Lens.lens (\Control' {controlMappingSources} -> controlMappingSources) (\s@Control' {} a -> s {controlMappingSources = a} :: Control) Prelude.. Lens.mapping Lens.coerced
+
+-- | The data source types that determine where Audit Manager collects
+-- evidence from for the control.
+control_controlSources :: Lens.Lens' Control (Prelude.Maybe Prelude.Text)
+control_controlSources = Lens.lens (\Control' {controlSources} -> controlSources) (\s@Control' {} a -> s {controlSources = a} :: Control)
+
+-- | The time when the control was created.
+control_createdAt :: Lens.Lens' Control (Prelude.Maybe Prelude.UTCTime)
+control_createdAt = Lens.lens (\Control' {createdAt} -> createdAt) (\s@Control' {} a -> s {createdAt = a} :: Control) Prelude.. Lens.mapping Data._Time
+
+-- | The IAM user or role that created the control.
+control_createdBy :: Lens.Lens' Control (Prelude.Maybe Prelude.Text)
+control_createdBy = Lens.lens (\Control' {createdBy} -> createdBy) (\s@Control' {} a -> s {createdBy = a} :: Control)
+
+-- | The description of the control.
+control_description :: Lens.Lens' Control (Prelude.Maybe Prelude.Text)
+control_description = Lens.lens (\Control' {description} -> description) (\s@Control' {} a -> s {description = a} :: Control)
+
+-- | The unique identifier for the control.
+control_id :: Lens.Lens' Control (Prelude.Maybe Prelude.Text)
+control_id = Lens.lens (\Control' {id} -> id) (\s@Control' {} a -> s {id = a} :: Control)
+
+-- | The time when the control was most recently updated.
+control_lastUpdatedAt :: Lens.Lens' Control (Prelude.Maybe Prelude.UTCTime)
+control_lastUpdatedAt = Lens.lens (\Control' {lastUpdatedAt} -> lastUpdatedAt) (\s@Control' {} a -> s {lastUpdatedAt = a} :: Control) Prelude.. Lens.mapping Data._Time
+
+-- | The IAM user or role that most recently updated the control.
+control_lastUpdatedBy :: Lens.Lens' Control (Prelude.Maybe Prelude.Text)
+control_lastUpdatedBy = Lens.lens (\Control' {lastUpdatedBy} -> lastUpdatedBy) (\s@Control' {} a -> s {lastUpdatedBy = a} :: Control)
+
+-- | The name of the control.
+control_name :: Lens.Lens' Control (Prelude.Maybe Prelude.Text)
+control_name = Lens.lens (\Control' {name} -> name) (\s@Control' {} a -> s {name = a} :: Control)
+
+-- | The tags associated with the control.
+control_tags :: Lens.Lens' Control (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+control_tags = Lens.lens (\Control' {tags} -> tags) (\s@Control' {} a -> s {tags = a} :: Control) Prelude.. Lens.mapping Lens.coerced
+
+-- | The steps that you should follow to determine if the control has been
+-- satisfied.
+control_testingInformation :: Lens.Lens' Control (Prelude.Maybe Prelude.Text)
+control_testingInformation = Lens.lens (\Control' {testingInformation} -> testingInformation) (\s@Control' {} a -> s {testingInformation = a} :: Control)
+
+-- | The type of control, such as a custom control or a standard control.
+control_type :: Lens.Lens' Control (Prelude.Maybe ControlType)
+control_type = Lens.lens (\Control' {type'} -> type') (\s@Control' {} a -> s {type' = a} :: Control)
+
+instance Data.FromJSON Control where
+  parseJSON =
+    Data.withObject
+      "Control"
+      ( \x ->
+          Control'
+            Prelude.<$> (x Data..:? "actionPlanInstructions")
+            Prelude.<*> (x Data..:? "actionPlanTitle")
+            Prelude.<*> (x Data..:? "arn")
+            Prelude.<*> (x Data..:? "controlMappingSources")
+            Prelude.<*> (x Data..:? "controlSources")
+            Prelude.<*> (x Data..:? "createdAt")
+            Prelude.<*> (x Data..:? "createdBy")
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "lastUpdatedAt")
+            Prelude.<*> (x Data..:? "lastUpdatedBy")
+            Prelude.<*> (x Data..:? "name")
+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "testingInformation")
+            Prelude.<*> (x Data..:? "type")
+      )
+
+instance Prelude.Hashable Control where
+  hashWithSalt _salt Control' {..} =
+    _salt
+      `Prelude.hashWithSalt` actionPlanInstructions
+      `Prelude.hashWithSalt` actionPlanTitle
+      `Prelude.hashWithSalt` arn
+      `Prelude.hashWithSalt` controlMappingSources
+      `Prelude.hashWithSalt` controlSources
+      `Prelude.hashWithSalt` createdAt
+      `Prelude.hashWithSalt` createdBy
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` lastUpdatedAt
+      `Prelude.hashWithSalt` lastUpdatedBy
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` testingInformation
+      `Prelude.hashWithSalt` type'
+
+instance Prelude.NFData Control where
+  rnf Control' {..} =
+    Prelude.rnf actionPlanInstructions
+      `Prelude.seq` Prelude.rnf actionPlanTitle
+      `Prelude.seq` Prelude.rnf arn
+      `Prelude.seq` Prelude.rnf controlMappingSources
+      `Prelude.seq` Prelude.rnf controlSources
+      `Prelude.seq` Prelude.rnf createdAt
+      `Prelude.seq` Prelude.rnf createdBy
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf lastUpdatedAt
+      `Prelude.seq` Prelude.rnf lastUpdatedBy
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf testingInformation
+      `Prelude.seq` Prelude.rnf type'
diff --git a/gen/Amazonka/AuditManager/Types/ControlComment.hs b/gen/Amazonka/AuditManager/Types/ControlComment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ControlComment.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.AuditManager.Types.ControlComment
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ControlComment 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 comment that\'s posted by a user on a control. This includes the
+-- author\'s name, the comment text, and a timestamp.
+--
+-- /See:/ 'newControlComment' smart constructor.
+data ControlComment = ControlComment'
+  { -- | The name of the user who authored the comment.
+    authorName :: Prelude.Maybe Prelude.Text,
+    -- | The body text of a control comment.
+    commentBody :: Prelude.Maybe Prelude.Text,
+    -- | The time when the comment was posted.
+    postedDate :: Prelude.Maybe Data.POSIX
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ControlComment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'controlComment_authorName' - The name of the user who authored the comment.
+--
+-- 'commentBody', 'controlComment_commentBody' - The body text of a control comment.
+--
+-- 'postedDate', 'controlComment_postedDate' - The time when the comment was posted.
+newControlComment ::
+  ControlComment
+newControlComment =
+  ControlComment'
+    { authorName = Prelude.Nothing,
+      commentBody = Prelude.Nothing,
+      postedDate = Prelude.Nothing
+    }
+
+-- | The name of the user who authored the comment.
+controlComment_authorName :: Lens.Lens' ControlComment (Prelude.Maybe Prelude.Text)
+controlComment_authorName = Lens.lens (\ControlComment' {authorName} -> authorName) (\s@ControlComment' {} a -> s {authorName = a} :: ControlComment)
+
+-- | The body text of a control comment.
+controlComment_commentBody :: Lens.Lens' ControlComment (Prelude.Maybe Prelude.Text)
+controlComment_commentBody = Lens.lens (\ControlComment' {commentBody} -> commentBody) (\s@ControlComment' {} a -> s {commentBody = a} :: ControlComment)
+
+-- | The time when the comment was posted.
+controlComment_postedDate :: Lens.Lens' ControlComment (Prelude.Maybe Prelude.UTCTime)
+controlComment_postedDate = Lens.lens (\ControlComment' {postedDate} -> postedDate) (\s@ControlComment' {} a -> s {postedDate = a} :: ControlComment) Prelude.. Lens.mapping Data._Time
+
+instance Data.FromJSON ControlComment where
+  parseJSON =
+    Data.withObject
+      "ControlComment"
+      ( \x ->
+          ControlComment'
+            Prelude.<$> (x Data..:? "authorName")
+            Prelude.<*> (x Data..:? "commentBody")
+            Prelude.<*> (x Data..:? "postedDate")
+      )
+
+instance Prelude.Hashable ControlComment where
+  hashWithSalt _salt ControlComment' {..} =
+    _salt
+      `Prelude.hashWithSalt` authorName
+      `Prelude.hashWithSalt` commentBody
+      `Prelude.hashWithSalt` postedDate
+
+instance Prelude.NFData ControlComment where
+  rnf ControlComment' {..} =
+    Prelude.rnf authorName
+      `Prelude.seq` Prelude.rnf commentBody
+      `Prelude.seq` Prelude.rnf postedDate
diff --git a/gen/Amazonka/AuditManager/Types/ControlDomainInsights.hs b/gen/Amazonka/AuditManager/Types/ControlDomainInsights.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ControlDomainInsights.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.ControlDomainInsights
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ControlDomainInsights where
+
+import Amazonka.AuditManager.Types.EvidenceInsights
+import qualified 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 summary of the latest analytics data for a specific control domain.
+--
+-- Control domain insights are grouped by control domain, and ranked by the
+-- highest total count of non-compliant evidence.
+--
+-- /See:/ 'newControlDomainInsights' smart constructor.
+data ControlDomainInsights = ControlDomainInsights'
+  { -- | The number of controls in the control domain that collected
+    -- non-compliant evidence on the @lastUpdated@ date.
+    controlsCountByNoncompliantEvidence :: Prelude.Maybe Prelude.Int,
+    -- | A breakdown of the compliance check status for the evidence that’s
+    -- associated with the control domain.
+    evidenceInsights :: Prelude.Maybe EvidenceInsights,
+    -- | The unique identifier for the control domain.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The time when the control domain insights were last updated.
+    lastUpdated :: Prelude.Maybe Data.POSIX,
+    -- | The name of the control domain.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The total number of controls in the control domain.
+    totalControlsCount :: Prelude.Maybe Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ControlDomainInsights' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controlsCountByNoncompliantEvidence', 'controlDomainInsights_controlsCountByNoncompliantEvidence' - The number of controls in the control domain that collected
+-- non-compliant evidence on the @lastUpdated@ date.
+--
+-- 'evidenceInsights', 'controlDomainInsights_evidenceInsights' - A breakdown of the compliance check status for the evidence that’s
+-- associated with the control domain.
+--
+-- 'id', 'controlDomainInsights_id' - The unique identifier for the control domain.
+--
+-- 'lastUpdated', 'controlDomainInsights_lastUpdated' - The time when the control domain insights were last updated.
+--
+-- 'name', 'controlDomainInsights_name' - The name of the control domain.
+--
+-- 'totalControlsCount', 'controlDomainInsights_totalControlsCount' - The total number of controls in the control domain.
+newControlDomainInsights ::
+  ControlDomainInsights
+newControlDomainInsights =
+  ControlDomainInsights'
+    { controlsCountByNoncompliantEvidence =
+        Prelude.Nothing,
+      evidenceInsights = Prelude.Nothing,
+      id = Prelude.Nothing,
+      lastUpdated = Prelude.Nothing,
+      name = Prelude.Nothing,
+      totalControlsCount = Prelude.Nothing
+    }
+
+-- | The number of controls in the control domain that collected
+-- non-compliant evidence on the @lastUpdated@ date.
+controlDomainInsights_controlsCountByNoncompliantEvidence :: Lens.Lens' ControlDomainInsights (Prelude.Maybe Prelude.Int)
+controlDomainInsights_controlsCountByNoncompliantEvidence = Lens.lens (\ControlDomainInsights' {controlsCountByNoncompliantEvidence} -> controlsCountByNoncompliantEvidence) (\s@ControlDomainInsights' {} a -> s {controlsCountByNoncompliantEvidence = a} :: ControlDomainInsights)
+
+-- | A breakdown of the compliance check status for the evidence that’s
+-- associated with the control domain.
+controlDomainInsights_evidenceInsights :: Lens.Lens' ControlDomainInsights (Prelude.Maybe EvidenceInsights)
+controlDomainInsights_evidenceInsights = Lens.lens (\ControlDomainInsights' {evidenceInsights} -> evidenceInsights) (\s@ControlDomainInsights' {} a -> s {evidenceInsights = a} :: ControlDomainInsights)
+
+-- | The unique identifier for the control domain.
+controlDomainInsights_id :: Lens.Lens' ControlDomainInsights (Prelude.Maybe Prelude.Text)
+controlDomainInsights_id = Lens.lens (\ControlDomainInsights' {id} -> id) (\s@ControlDomainInsights' {} a -> s {id = a} :: ControlDomainInsights)
+
+-- | The time when the control domain insights were last updated.
+controlDomainInsights_lastUpdated :: Lens.Lens' ControlDomainInsights (Prelude.Maybe Prelude.UTCTime)
+controlDomainInsights_lastUpdated = Lens.lens (\ControlDomainInsights' {lastUpdated} -> lastUpdated) (\s@ControlDomainInsights' {} a -> s {lastUpdated = a} :: ControlDomainInsights) Prelude.. Lens.mapping Data._Time
+
+-- | The name of the control domain.
+controlDomainInsights_name :: Lens.Lens' ControlDomainInsights (Prelude.Maybe Prelude.Text)
+controlDomainInsights_name = Lens.lens (\ControlDomainInsights' {name} -> name) (\s@ControlDomainInsights' {} a -> s {name = a} :: ControlDomainInsights)
+
+-- | The total number of controls in the control domain.
+controlDomainInsights_totalControlsCount :: Lens.Lens' ControlDomainInsights (Prelude.Maybe Prelude.Int)
+controlDomainInsights_totalControlsCount = Lens.lens (\ControlDomainInsights' {totalControlsCount} -> totalControlsCount) (\s@ControlDomainInsights' {} a -> s {totalControlsCount = a} :: ControlDomainInsights)
+
+instance Data.FromJSON ControlDomainInsights where
+  parseJSON =
+    Data.withObject
+      "ControlDomainInsights"
+      ( \x ->
+          ControlDomainInsights'
+            Prelude.<$> (x Data..:? "controlsCountByNoncompliantEvidence")
+            Prelude.<*> (x Data..:? "evidenceInsights")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "lastUpdated")
+            Prelude.<*> (x Data..:? "name")
+            Prelude.<*> (x Data..:? "totalControlsCount")
+      )
+
+instance Prelude.Hashable ControlDomainInsights where
+  hashWithSalt _salt ControlDomainInsights' {..} =
+    _salt
+      `Prelude.hashWithSalt` controlsCountByNoncompliantEvidence
+      `Prelude.hashWithSalt` evidenceInsights
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` lastUpdated
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` totalControlsCount
+
+instance Prelude.NFData ControlDomainInsights where
+  rnf ControlDomainInsights' {..} =
+    Prelude.rnf controlsCountByNoncompliantEvidence
+      `Prelude.seq` Prelude.rnf evidenceInsights
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf lastUpdated
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf totalControlsCount
diff --git a/gen/Amazonka/AuditManager/Types/ControlInsightsMetadataByAssessmentItem.hs b/gen/Amazonka/AuditManager/Types/ControlInsightsMetadataByAssessmentItem.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ControlInsightsMetadataByAssessmentItem.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.ControlInsightsMetadataByAssessmentItem
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ControlInsightsMetadataByAssessmentItem where
+
+import Amazonka.AuditManager.Types.EvidenceInsights
+import qualified 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 summary of the latest analytics data for a specific control in a
+-- specific active assessment.
+--
+-- Control insights are grouped by control domain, and ranked by the
+-- highest total count of non-compliant evidence.
+--
+-- /See:/ 'newControlInsightsMetadataByAssessmentItem' smart constructor.
+data ControlInsightsMetadataByAssessmentItem = ControlInsightsMetadataByAssessmentItem'
+  { -- | The name of the control set that the assessment control belongs to.
+    controlSetName :: Prelude.Maybe Prelude.Text,
+    -- | A breakdown of the compliance check status for the evidence that’s
+    -- associated with the assessment control.
+    evidenceInsights :: Prelude.Maybe EvidenceInsights,
+    -- | The unique identifier for the assessment control.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The time when the assessment control insights were last updated.
+    lastUpdated :: Prelude.Maybe Data.POSIX,
+    -- | The name of the assessment control.
+    name :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ControlInsightsMetadataByAssessmentItem' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controlSetName', 'controlInsightsMetadataByAssessmentItem_controlSetName' - The name of the control set that the assessment control belongs to.
+--
+-- 'evidenceInsights', 'controlInsightsMetadataByAssessmentItem_evidenceInsights' - A breakdown of the compliance check status for the evidence that’s
+-- associated with the assessment control.
+--
+-- 'id', 'controlInsightsMetadataByAssessmentItem_id' - The unique identifier for the assessment control.
+--
+-- 'lastUpdated', 'controlInsightsMetadataByAssessmentItem_lastUpdated' - The time when the assessment control insights were last updated.
+--
+-- 'name', 'controlInsightsMetadataByAssessmentItem_name' - The name of the assessment control.
+newControlInsightsMetadataByAssessmentItem ::
+  ControlInsightsMetadataByAssessmentItem
+newControlInsightsMetadataByAssessmentItem =
+  ControlInsightsMetadataByAssessmentItem'
+    { controlSetName =
+        Prelude.Nothing,
+      evidenceInsights = Prelude.Nothing,
+      id = Prelude.Nothing,
+      lastUpdated = Prelude.Nothing,
+      name = Prelude.Nothing
+    }
+
+-- | The name of the control set that the assessment control belongs to.
+controlInsightsMetadataByAssessmentItem_controlSetName :: Lens.Lens' ControlInsightsMetadataByAssessmentItem (Prelude.Maybe Prelude.Text)
+controlInsightsMetadataByAssessmentItem_controlSetName = Lens.lens (\ControlInsightsMetadataByAssessmentItem' {controlSetName} -> controlSetName) (\s@ControlInsightsMetadataByAssessmentItem' {} a -> s {controlSetName = a} :: ControlInsightsMetadataByAssessmentItem)
+
+-- | A breakdown of the compliance check status for the evidence that’s
+-- associated with the assessment control.
+controlInsightsMetadataByAssessmentItem_evidenceInsights :: Lens.Lens' ControlInsightsMetadataByAssessmentItem (Prelude.Maybe EvidenceInsights)
+controlInsightsMetadataByAssessmentItem_evidenceInsights = Lens.lens (\ControlInsightsMetadataByAssessmentItem' {evidenceInsights} -> evidenceInsights) (\s@ControlInsightsMetadataByAssessmentItem' {} a -> s {evidenceInsights = a} :: ControlInsightsMetadataByAssessmentItem)
+
+-- | The unique identifier for the assessment control.
+controlInsightsMetadataByAssessmentItem_id :: Lens.Lens' ControlInsightsMetadataByAssessmentItem (Prelude.Maybe Prelude.Text)
+controlInsightsMetadataByAssessmentItem_id = Lens.lens (\ControlInsightsMetadataByAssessmentItem' {id} -> id) (\s@ControlInsightsMetadataByAssessmentItem' {} a -> s {id = a} :: ControlInsightsMetadataByAssessmentItem)
+
+-- | The time when the assessment control insights were last updated.
+controlInsightsMetadataByAssessmentItem_lastUpdated :: Lens.Lens' ControlInsightsMetadataByAssessmentItem (Prelude.Maybe Prelude.UTCTime)
+controlInsightsMetadataByAssessmentItem_lastUpdated = Lens.lens (\ControlInsightsMetadataByAssessmentItem' {lastUpdated} -> lastUpdated) (\s@ControlInsightsMetadataByAssessmentItem' {} a -> s {lastUpdated = a} :: ControlInsightsMetadataByAssessmentItem) Prelude.. Lens.mapping Data._Time
+
+-- | The name of the assessment control.
+controlInsightsMetadataByAssessmentItem_name :: Lens.Lens' ControlInsightsMetadataByAssessmentItem (Prelude.Maybe Prelude.Text)
+controlInsightsMetadataByAssessmentItem_name = Lens.lens (\ControlInsightsMetadataByAssessmentItem' {name} -> name) (\s@ControlInsightsMetadataByAssessmentItem' {} a -> s {name = a} :: ControlInsightsMetadataByAssessmentItem)
+
+instance
+  Data.FromJSON
+    ControlInsightsMetadataByAssessmentItem
+  where
+  parseJSON =
+    Data.withObject
+      "ControlInsightsMetadataByAssessmentItem"
+      ( \x ->
+          ControlInsightsMetadataByAssessmentItem'
+            Prelude.<$> (x Data..:? "controlSetName")
+            Prelude.<*> (x Data..:? "evidenceInsights")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "lastUpdated")
+            Prelude.<*> (x Data..:? "name")
+      )
+
+instance
+  Prelude.Hashable
+    ControlInsightsMetadataByAssessmentItem
+  where
+  hashWithSalt
+    _salt
+    ControlInsightsMetadataByAssessmentItem' {..} =
+      _salt
+        `Prelude.hashWithSalt` controlSetName
+        `Prelude.hashWithSalt` evidenceInsights
+        `Prelude.hashWithSalt` id
+        `Prelude.hashWithSalt` lastUpdated
+        `Prelude.hashWithSalt` name
+
+instance
+  Prelude.NFData
+    ControlInsightsMetadataByAssessmentItem
+  where
+  rnf ControlInsightsMetadataByAssessmentItem' {..} =
+    Prelude.rnf controlSetName
+      `Prelude.seq` Prelude.rnf evidenceInsights
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf lastUpdated
+      `Prelude.seq` Prelude.rnf name
diff --git a/gen/Amazonka/AuditManager/Types/ControlInsightsMetadataItem.hs b/gen/Amazonka/AuditManager/Types/ControlInsightsMetadataItem.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ControlInsightsMetadataItem.hs
@@ -0,0 +1,117 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.ControlInsightsMetadataItem
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ControlInsightsMetadataItem where
+
+import Amazonka.AuditManager.Types.EvidenceInsights
+import qualified 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 summary of the latest analytics data for a specific control.
+--
+-- This data reflects the total counts for the specified control across all
+-- active assessments. Control insights are grouped by control domain, and
+-- ranked by the highest total count of non-compliant evidence.
+--
+-- /See:/ 'newControlInsightsMetadataItem' smart constructor.
+data ControlInsightsMetadataItem = ControlInsightsMetadataItem'
+  { -- | A breakdown of the compliance check status for the evidence that’s
+    -- associated with the control.
+    evidenceInsights :: Prelude.Maybe EvidenceInsights,
+    -- | The unique identifier for the control.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The time when the control insights were last updated.
+    lastUpdated :: Prelude.Maybe Data.POSIX,
+    -- | The name of the control.
+    name :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ControlInsightsMetadataItem' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'evidenceInsights', 'controlInsightsMetadataItem_evidenceInsights' - A breakdown of the compliance check status for the evidence that’s
+-- associated with the control.
+--
+-- 'id', 'controlInsightsMetadataItem_id' - The unique identifier for the control.
+--
+-- 'lastUpdated', 'controlInsightsMetadataItem_lastUpdated' - The time when the control insights were last updated.
+--
+-- 'name', 'controlInsightsMetadataItem_name' - The name of the control.
+newControlInsightsMetadataItem ::
+  ControlInsightsMetadataItem
+newControlInsightsMetadataItem =
+  ControlInsightsMetadataItem'
+    { evidenceInsights =
+        Prelude.Nothing,
+      id = Prelude.Nothing,
+      lastUpdated = Prelude.Nothing,
+      name = Prelude.Nothing
+    }
+
+-- | A breakdown of the compliance check status for the evidence that’s
+-- associated with the control.
+controlInsightsMetadataItem_evidenceInsights :: Lens.Lens' ControlInsightsMetadataItem (Prelude.Maybe EvidenceInsights)
+controlInsightsMetadataItem_evidenceInsights = Lens.lens (\ControlInsightsMetadataItem' {evidenceInsights} -> evidenceInsights) (\s@ControlInsightsMetadataItem' {} a -> s {evidenceInsights = a} :: ControlInsightsMetadataItem)
+
+-- | The unique identifier for the control.
+controlInsightsMetadataItem_id :: Lens.Lens' ControlInsightsMetadataItem (Prelude.Maybe Prelude.Text)
+controlInsightsMetadataItem_id = Lens.lens (\ControlInsightsMetadataItem' {id} -> id) (\s@ControlInsightsMetadataItem' {} a -> s {id = a} :: ControlInsightsMetadataItem)
+
+-- | The time when the control insights were last updated.
+controlInsightsMetadataItem_lastUpdated :: Lens.Lens' ControlInsightsMetadataItem (Prelude.Maybe Prelude.UTCTime)
+controlInsightsMetadataItem_lastUpdated = Lens.lens (\ControlInsightsMetadataItem' {lastUpdated} -> lastUpdated) (\s@ControlInsightsMetadataItem' {} a -> s {lastUpdated = a} :: ControlInsightsMetadataItem) Prelude.. Lens.mapping Data._Time
+
+-- | The name of the control.
+controlInsightsMetadataItem_name :: Lens.Lens' ControlInsightsMetadataItem (Prelude.Maybe Prelude.Text)
+controlInsightsMetadataItem_name = Lens.lens (\ControlInsightsMetadataItem' {name} -> name) (\s@ControlInsightsMetadataItem' {} a -> s {name = a} :: ControlInsightsMetadataItem)
+
+instance Data.FromJSON ControlInsightsMetadataItem where
+  parseJSON =
+    Data.withObject
+      "ControlInsightsMetadataItem"
+      ( \x ->
+          ControlInsightsMetadataItem'
+            Prelude.<$> (x Data..:? "evidenceInsights")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "lastUpdated")
+            Prelude.<*> (x Data..:? "name")
+      )
+
+instance Prelude.Hashable ControlInsightsMetadataItem where
+  hashWithSalt _salt ControlInsightsMetadataItem' {..} =
+    _salt
+      `Prelude.hashWithSalt` evidenceInsights
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` lastUpdated
+      `Prelude.hashWithSalt` name
+
+instance Prelude.NFData ControlInsightsMetadataItem where
+  rnf ControlInsightsMetadataItem' {..} =
+    Prelude.rnf evidenceInsights
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf lastUpdated
+      `Prelude.seq` Prelude.rnf name
diff --git a/gen/Amazonka/AuditManager/Types/ControlMappingSource.hs b/gen/Amazonka/AuditManager/Types/ControlMappingSource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ControlMappingSource.hs
@@ -0,0 +1,183 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.ControlMappingSource
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ControlMappingSource where
+
+import Amazonka.AuditManager.Types.SourceFrequency
+import Amazonka.AuditManager.Types.SourceKeyword
+import Amazonka.AuditManager.Types.SourceSetUpOption
+import Amazonka.AuditManager.Types.SourceType
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The data source that determines where Audit Manager collects evidence
+-- from for the control.
+--
+-- /See:/ 'newControlMappingSource' smart constructor.
+data ControlMappingSource = ControlMappingSource'
+  { -- | The description of the source.
+    sourceDescription :: Prelude.Maybe Prelude.Text,
+    -- | The frequency of evidence collection for the control mapping source.
+    sourceFrequency :: Prelude.Maybe SourceFrequency,
+    -- | The unique identifier for the source.
+    sourceId :: Prelude.Maybe Prelude.Text,
+    sourceKeyword :: Prelude.Maybe SourceKeyword,
+    -- | The name of the source.
+    sourceName :: Prelude.Maybe Prelude.Text,
+    -- | The setup option for the data source. This option reflects if the
+    -- evidence collection is automated or manual.
+    sourceSetUpOption :: Prelude.Maybe SourceSetUpOption,
+    -- | Specifies one of the five data source types for evidence collection.
+    sourceType :: Prelude.Maybe SourceType,
+    -- | The instructions for troubleshooting the control.
+    troubleshootingText :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ControlMappingSource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'sourceDescription', 'controlMappingSource_sourceDescription' - The description of the source.
+--
+-- 'sourceFrequency', 'controlMappingSource_sourceFrequency' - The frequency of evidence collection for the control mapping source.
+--
+-- 'sourceId', 'controlMappingSource_sourceId' - The unique identifier for the source.
+--
+-- 'sourceKeyword', 'controlMappingSource_sourceKeyword' - Undocumented member.
+--
+-- 'sourceName', 'controlMappingSource_sourceName' - The name of the source.
+--
+-- 'sourceSetUpOption', 'controlMappingSource_sourceSetUpOption' - The setup option for the data source. This option reflects if the
+-- evidence collection is automated or manual.
+--
+-- 'sourceType', 'controlMappingSource_sourceType' - Specifies one of the five data source types for evidence collection.
+--
+-- 'troubleshootingText', 'controlMappingSource_troubleshootingText' - The instructions for troubleshooting the control.
+newControlMappingSource ::
+  ControlMappingSource
+newControlMappingSource =
+  ControlMappingSource'
+    { sourceDescription =
+        Prelude.Nothing,
+      sourceFrequency = Prelude.Nothing,
+      sourceId = Prelude.Nothing,
+      sourceKeyword = Prelude.Nothing,
+      sourceName = Prelude.Nothing,
+      sourceSetUpOption = Prelude.Nothing,
+      sourceType = Prelude.Nothing,
+      troubleshootingText = Prelude.Nothing
+    }
+
+-- | The description of the source.
+controlMappingSource_sourceDescription :: Lens.Lens' ControlMappingSource (Prelude.Maybe Prelude.Text)
+controlMappingSource_sourceDescription = Lens.lens (\ControlMappingSource' {sourceDescription} -> sourceDescription) (\s@ControlMappingSource' {} a -> s {sourceDescription = a} :: ControlMappingSource)
+
+-- | The frequency of evidence collection for the control mapping source.
+controlMappingSource_sourceFrequency :: Lens.Lens' ControlMappingSource (Prelude.Maybe SourceFrequency)
+controlMappingSource_sourceFrequency = Lens.lens (\ControlMappingSource' {sourceFrequency} -> sourceFrequency) (\s@ControlMappingSource' {} a -> s {sourceFrequency = a} :: ControlMappingSource)
+
+-- | The unique identifier for the source.
+controlMappingSource_sourceId :: Lens.Lens' ControlMappingSource (Prelude.Maybe Prelude.Text)
+controlMappingSource_sourceId = Lens.lens (\ControlMappingSource' {sourceId} -> sourceId) (\s@ControlMappingSource' {} a -> s {sourceId = a} :: ControlMappingSource)
+
+-- | Undocumented member.
+controlMappingSource_sourceKeyword :: Lens.Lens' ControlMappingSource (Prelude.Maybe SourceKeyword)
+controlMappingSource_sourceKeyword = Lens.lens (\ControlMappingSource' {sourceKeyword} -> sourceKeyword) (\s@ControlMappingSource' {} a -> s {sourceKeyword = a} :: ControlMappingSource)
+
+-- | The name of the source.
+controlMappingSource_sourceName :: Lens.Lens' ControlMappingSource (Prelude.Maybe Prelude.Text)
+controlMappingSource_sourceName = Lens.lens (\ControlMappingSource' {sourceName} -> sourceName) (\s@ControlMappingSource' {} a -> s {sourceName = a} :: ControlMappingSource)
+
+-- | The setup option for the data source. This option reflects if the
+-- evidence collection is automated or manual.
+controlMappingSource_sourceSetUpOption :: Lens.Lens' ControlMappingSource (Prelude.Maybe SourceSetUpOption)
+controlMappingSource_sourceSetUpOption = Lens.lens (\ControlMappingSource' {sourceSetUpOption} -> sourceSetUpOption) (\s@ControlMappingSource' {} a -> s {sourceSetUpOption = a} :: ControlMappingSource)
+
+-- | Specifies one of the five data source types for evidence collection.
+controlMappingSource_sourceType :: Lens.Lens' ControlMappingSource (Prelude.Maybe SourceType)
+controlMappingSource_sourceType = Lens.lens (\ControlMappingSource' {sourceType} -> sourceType) (\s@ControlMappingSource' {} a -> s {sourceType = a} :: ControlMappingSource)
+
+-- | The instructions for troubleshooting the control.
+controlMappingSource_troubleshootingText :: Lens.Lens' ControlMappingSource (Prelude.Maybe Prelude.Text)
+controlMappingSource_troubleshootingText = Lens.lens (\ControlMappingSource' {troubleshootingText} -> troubleshootingText) (\s@ControlMappingSource' {} a -> s {troubleshootingText = a} :: ControlMappingSource)
+
+instance Data.FromJSON ControlMappingSource where
+  parseJSON =
+    Data.withObject
+      "ControlMappingSource"
+      ( \x ->
+          ControlMappingSource'
+            Prelude.<$> (x Data..:? "sourceDescription")
+            Prelude.<*> (x Data..:? "sourceFrequency")
+            Prelude.<*> (x Data..:? "sourceId")
+            Prelude.<*> (x Data..:? "sourceKeyword")
+            Prelude.<*> (x Data..:? "sourceName")
+            Prelude.<*> (x Data..:? "sourceSetUpOption")
+            Prelude.<*> (x Data..:? "sourceType")
+            Prelude.<*> (x Data..:? "troubleshootingText")
+      )
+
+instance Prelude.Hashable ControlMappingSource where
+  hashWithSalt _salt ControlMappingSource' {..} =
+    _salt
+      `Prelude.hashWithSalt` sourceDescription
+      `Prelude.hashWithSalt` sourceFrequency
+      `Prelude.hashWithSalt` sourceId
+      `Prelude.hashWithSalt` sourceKeyword
+      `Prelude.hashWithSalt` sourceName
+      `Prelude.hashWithSalt` sourceSetUpOption
+      `Prelude.hashWithSalt` sourceType
+      `Prelude.hashWithSalt` troubleshootingText
+
+instance Prelude.NFData ControlMappingSource where
+  rnf ControlMappingSource' {..} =
+    Prelude.rnf sourceDescription
+      `Prelude.seq` Prelude.rnf sourceFrequency
+      `Prelude.seq` Prelude.rnf sourceId
+      `Prelude.seq` Prelude.rnf sourceKeyword
+      `Prelude.seq` Prelude.rnf sourceName
+      `Prelude.seq` Prelude.rnf sourceSetUpOption
+      `Prelude.seq` Prelude.rnf sourceType
+      `Prelude.seq` Prelude.rnf troubleshootingText
+
+instance Data.ToJSON ControlMappingSource where
+  toJSON ControlMappingSource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("sourceDescription" Data..=)
+              Prelude.<$> sourceDescription,
+            ("sourceFrequency" Data..=)
+              Prelude.<$> sourceFrequency,
+            ("sourceId" Data..=) Prelude.<$> sourceId,
+            ("sourceKeyword" Data..=) Prelude.<$> sourceKeyword,
+            ("sourceName" Data..=) Prelude.<$> sourceName,
+            ("sourceSetUpOption" Data..=)
+              Prelude.<$> sourceSetUpOption,
+            ("sourceType" Data..=) Prelude.<$> sourceType,
+            ("troubleshootingText" Data..=)
+              Prelude.<$> troubleshootingText
+          ]
+      )
diff --git a/gen/Amazonka/AuditManager/Types/ControlMetadata.hs b/gen/Amazonka/AuditManager/Types/ControlMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ControlMetadata.hs
@@ -0,0 +1,136 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.ControlMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ControlMetadata where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The metadata that\'s associated with the standard control or custom
+-- control.
+--
+-- /See:/ 'newControlMetadata' smart constructor.
+data ControlMetadata = ControlMetadata'
+  { -- | The Amazon Resource Name (ARN) of the control.
+    arn :: Prelude.Maybe Prelude.Text,
+    -- | The data source that determines where Audit Manager collects evidence
+    -- from for the control.
+    controlSources :: Prelude.Maybe Prelude.Text,
+    -- | The time when the control was created.
+    createdAt :: Prelude.Maybe Data.POSIX,
+    -- | The unique identifier for the control.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The time when the control was most recently updated.
+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,
+    -- | The name of the control.
+    name :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ControlMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'controlMetadata_arn' - The Amazon Resource Name (ARN) of the control.
+--
+-- 'controlSources', 'controlMetadata_controlSources' - The data source that determines where Audit Manager collects evidence
+-- from for the control.
+--
+-- 'createdAt', 'controlMetadata_createdAt' - The time when the control was created.
+--
+-- 'id', 'controlMetadata_id' - The unique identifier for the control.
+--
+-- 'lastUpdatedAt', 'controlMetadata_lastUpdatedAt' - The time when the control was most recently updated.
+--
+-- 'name', 'controlMetadata_name' - The name of the control.
+newControlMetadata ::
+  ControlMetadata
+newControlMetadata =
+  ControlMetadata'
+    { arn = Prelude.Nothing,
+      controlSources = Prelude.Nothing,
+      createdAt = Prelude.Nothing,
+      id = Prelude.Nothing,
+      lastUpdatedAt = Prelude.Nothing,
+      name = Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) of the control.
+controlMetadata_arn :: Lens.Lens' ControlMetadata (Prelude.Maybe Prelude.Text)
+controlMetadata_arn = Lens.lens (\ControlMetadata' {arn} -> arn) (\s@ControlMetadata' {} a -> s {arn = a} :: ControlMetadata)
+
+-- | The data source that determines where Audit Manager collects evidence
+-- from for the control.
+controlMetadata_controlSources :: Lens.Lens' ControlMetadata (Prelude.Maybe Prelude.Text)
+controlMetadata_controlSources = Lens.lens (\ControlMetadata' {controlSources} -> controlSources) (\s@ControlMetadata' {} a -> s {controlSources = a} :: ControlMetadata)
+
+-- | The time when the control was created.
+controlMetadata_createdAt :: Lens.Lens' ControlMetadata (Prelude.Maybe Prelude.UTCTime)
+controlMetadata_createdAt = Lens.lens (\ControlMetadata' {createdAt} -> createdAt) (\s@ControlMetadata' {} a -> s {createdAt = a} :: ControlMetadata) Prelude.. Lens.mapping Data._Time
+
+-- | The unique identifier for the control.
+controlMetadata_id :: Lens.Lens' ControlMetadata (Prelude.Maybe Prelude.Text)
+controlMetadata_id = Lens.lens (\ControlMetadata' {id} -> id) (\s@ControlMetadata' {} a -> s {id = a} :: ControlMetadata)
+
+-- | The time when the control was most recently updated.
+controlMetadata_lastUpdatedAt :: Lens.Lens' ControlMetadata (Prelude.Maybe Prelude.UTCTime)
+controlMetadata_lastUpdatedAt = Lens.lens (\ControlMetadata' {lastUpdatedAt} -> lastUpdatedAt) (\s@ControlMetadata' {} a -> s {lastUpdatedAt = a} :: ControlMetadata) Prelude.. Lens.mapping Data._Time
+
+-- | The name of the control.
+controlMetadata_name :: Lens.Lens' ControlMetadata (Prelude.Maybe Prelude.Text)
+controlMetadata_name = Lens.lens (\ControlMetadata' {name} -> name) (\s@ControlMetadata' {} a -> s {name = a} :: ControlMetadata)
+
+instance Data.FromJSON ControlMetadata where
+  parseJSON =
+    Data.withObject
+      "ControlMetadata"
+      ( \x ->
+          ControlMetadata'
+            Prelude.<$> (x Data..:? "arn")
+            Prelude.<*> (x Data..:? "controlSources")
+            Prelude.<*> (x Data..:? "createdAt")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "lastUpdatedAt")
+            Prelude.<*> (x Data..:? "name")
+      )
+
+instance Prelude.Hashable ControlMetadata where
+  hashWithSalt _salt ControlMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` arn
+      `Prelude.hashWithSalt` controlSources
+      `Prelude.hashWithSalt` createdAt
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` lastUpdatedAt
+      `Prelude.hashWithSalt` name
+
+instance Prelude.NFData ControlMetadata where
+  rnf ControlMetadata' {..} =
+    Prelude.rnf arn
+      `Prelude.seq` Prelude.rnf controlSources
+      `Prelude.seq` Prelude.rnf createdAt
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf lastUpdatedAt
+      `Prelude.seq` Prelude.rnf name
diff --git a/gen/Amazonka/AuditManager/Types/ControlResponse.hs b/gen/Amazonka/AuditManager/Types/ControlResponse.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ControlResponse.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.AuditManager.Types.ControlResponse
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ControlResponse
+  ( ControlResponse
+      ( ..,
+        ControlResponse_AUTOMATE,
+        ControlResponse_DEFER,
+        ControlResponse_IGNORE,
+        ControlResponse_MANUAL
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ControlResponse = ControlResponse'
+  { fromControlResponse ::
+      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 ControlResponse_AUTOMATE :: ControlResponse
+pattern ControlResponse_AUTOMATE = ControlResponse' "AUTOMATE"
+
+pattern ControlResponse_DEFER :: ControlResponse
+pattern ControlResponse_DEFER = ControlResponse' "DEFER"
+
+pattern ControlResponse_IGNORE :: ControlResponse
+pattern ControlResponse_IGNORE = ControlResponse' "IGNORE"
+
+pattern ControlResponse_MANUAL :: ControlResponse
+pattern ControlResponse_MANUAL = ControlResponse' "MANUAL"
+
+{-# COMPLETE
+  ControlResponse_AUTOMATE,
+  ControlResponse_DEFER,
+  ControlResponse_IGNORE,
+  ControlResponse_MANUAL,
+  ControlResponse'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/ControlSet.hs b/gen/Amazonka/AuditManager/Types/ControlSet.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ControlSet.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.AuditManager.Types.ControlSet
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ControlSet where
+
+import Amazonka.AuditManager.Types.Control
+import qualified 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 set of controls in Audit Manager.
+--
+-- /See:/ 'newControlSet' smart constructor.
+data ControlSet = ControlSet'
+  { -- | The list of controls within the control set.
+    controls :: Prelude.Maybe (Prelude.NonEmpty Control),
+    -- | The identifier of the control set in the assessment. This is the control
+    -- set name in a plain string format.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The name of the control set.
+    name :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ControlSet' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controls', 'controlSet_controls' - The list of controls within the control set.
+--
+-- 'id', 'controlSet_id' - The identifier of the control set in the assessment. This is the control
+-- set name in a plain string format.
+--
+-- 'name', 'controlSet_name' - The name of the control set.
+newControlSet ::
+  ControlSet
+newControlSet =
+  ControlSet'
+    { controls = Prelude.Nothing,
+      id = Prelude.Nothing,
+      name = Prelude.Nothing
+    }
+
+-- | The list of controls within the control set.
+controlSet_controls :: Lens.Lens' ControlSet (Prelude.Maybe (Prelude.NonEmpty Control))
+controlSet_controls = Lens.lens (\ControlSet' {controls} -> controls) (\s@ControlSet' {} a -> s {controls = a} :: ControlSet) Prelude.. Lens.mapping Lens.coerced
+
+-- | The identifier of the control set in the assessment. This is the control
+-- set name in a plain string format.
+controlSet_id :: Lens.Lens' ControlSet (Prelude.Maybe Prelude.Text)
+controlSet_id = Lens.lens (\ControlSet' {id} -> id) (\s@ControlSet' {} a -> s {id = a} :: ControlSet)
+
+-- | The name of the control set.
+controlSet_name :: Lens.Lens' ControlSet (Prelude.Maybe Prelude.Text)
+controlSet_name = Lens.lens (\ControlSet' {name} -> name) (\s@ControlSet' {} a -> s {name = a} :: ControlSet)
+
+instance Data.FromJSON ControlSet where
+  parseJSON =
+    Data.withObject
+      "ControlSet"
+      ( \x ->
+          ControlSet'
+            Prelude.<$> (x Data..:? "controls")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "name")
+      )
+
+instance Prelude.Hashable ControlSet where
+  hashWithSalt _salt ControlSet' {..} =
+    _salt
+      `Prelude.hashWithSalt` controls
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` name
+
+instance Prelude.NFData ControlSet where
+  rnf ControlSet' {..} =
+    Prelude.rnf controls
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf name
diff --git a/gen/Amazonka/AuditManager/Types/ControlSetStatus.hs b/gen/Amazonka/AuditManager/Types/ControlSetStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ControlSetStatus.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.AuditManager.Types.ControlSetStatus
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ControlSetStatus
+  ( ControlSetStatus
+      ( ..,
+        ControlSetStatus_ACTIVE,
+        ControlSetStatus_REVIEWED,
+        ControlSetStatus_UNDER_REVIEW
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ControlSetStatus = ControlSetStatus'
+  { fromControlSetStatus ::
+      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 ControlSetStatus_ACTIVE :: ControlSetStatus
+pattern ControlSetStatus_ACTIVE = ControlSetStatus' "ACTIVE"
+
+pattern ControlSetStatus_REVIEWED :: ControlSetStatus
+pattern ControlSetStatus_REVIEWED = ControlSetStatus' "REVIEWED"
+
+pattern ControlSetStatus_UNDER_REVIEW :: ControlSetStatus
+pattern ControlSetStatus_UNDER_REVIEW = ControlSetStatus' "UNDER_REVIEW"
+
+{-# COMPLETE
+  ControlSetStatus_ACTIVE,
+  ControlSetStatus_REVIEWED,
+  ControlSetStatus_UNDER_REVIEW,
+  ControlSetStatus'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/ControlStatus.hs b/gen/Amazonka/AuditManager/Types/ControlStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ControlStatus.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.AuditManager.Types.ControlStatus
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ControlStatus
+  ( ControlStatus
+      ( ..,
+        ControlStatus_INACTIVE,
+        ControlStatus_REVIEWED,
+        ControlStatus_UNDER_REVIEW
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ControlStatus = ControlStatus'
+  { fromControlStatus ::
+      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 ControlStatus_INACTIVE :: ControlStatus
+pattern ControlStatus_INACTIVE = ControlStatus' "INACTIVE"
+
+pattern ControlStatus_REVIEWED :: ControlStatus
+pattern ControlStatus_REVIEWED = ControlStatus' "REVIEWED"
+
+pattern ControlStatus_UNDER_REVIEW :: ControlStatus
+pattern ControlStatus_UNDER_REVIEW = ControlStatus' "UNDER_REVIEW"
+
+{-# COMPLETE
+  ControlStatus_INACTIVE,
+  ControlStatus_REVIEWED,
+  ControlStatus_UNDER_REVIEW,
+  ControlStatus'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/ControlType.hs b/gen/Amazonka/AuditManager/Types/ControlType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ControlType.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.AuditManager.Types.ControlType
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ControlType
+  ( ControlType
+      ( ..,
+        ControlType_Custom,
+        ControlType_Standard
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ControlType = ControlType'
+  { fromControlType ::
+      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 ControlType_Custom :: ControlType
+pattern ControlType_Custom = ControlType' "Custom"
+
+pattern ControlType_Standard :: ControlType
+pattern ControlType_Standard = ControlType' "Standard"
+
+{-# COMPLETE
+  ControlType_Custom,
+  ControlType_Standard,
+  ControlType'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/CreateAssessmentFrameworkControl.hs b/gen/Amazonka/AuditManager/Types/CreateAssessmentFrameworkControl.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/CreateAssessmentFrameworkControl.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.CreateAssessmentFrameworkControl
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.CreateAssessmentFrameworkControl where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The control entity attributes that uniquely identify an existing control
+-- to be added to a framework in Audit Manager.
+--
+-- /See:/ 'newCreateAssessmentFrameworkControl' smart constructor.
+data CreateAssessmentFrameworkControl = CreateAssessmentFrameworkControl'
+  { -- | The unique identifier of the control.
+    id :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateAssessmentFrameworkControl' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'id', 'createAssessmentFrameworkControl_id' - The unique identifier of the control.
+newCreateAssessmentFrameworkControl ::
+  -- | 'id'
+  Prelude.Text ->
+  CreateAssessmentFrameworkControl
+newCreateAssessmentFrameworkControl pId_ =
+  CreateAssessmentFrameworkControl' {id = pId_}
+
+-- | The unique identifier of the control.
+createAssessmentFrameworkControl_id :: Lens.Lens' CreateAssessmentFrameworkControl Prelude.Text
+createAssessmentFrameworkControl_id = Lens.lens (\CreateAssessmentFrameworkControl' {id} -> id) (\s@CreateAssessmentFrameworkControl' {} a -> s {id = a} :: CreateAssessmentFrameworkControl)
+
+instance
+  Prelude.Hashable
+    CreateAssessmentFrameworkControl
+  where
+  hashWithSalt
+    _salt
+    CreateAssessmentFrameworkControl' {..} =
+      _salt `Prelude.hashWithSalt` id
+
+instance
+  Prelude.NFData
+    CreateAssessmentFrameworkControl
+  where
+  rnf CreateAssessmentFrameworkControl' {..} =
+    Prelude.rnf id
+
+instance Data.ToJSON CreateAssessmentFrameworkControl where
+  toJSON CreateAssessmentFrameworkControl' {..} =
+    Data.object
+      (Prelude.catMaybes [Prelude.Just ("id" Data..= id)])
diff --git a/gen/Amazonka/AuditManager/Types/CreateAssessmentFrameworkControlSet.hs b/gen/Amazonka/AuditManager/Types/CreateAssessmentFrameworkControlSet.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/CreateAssessmentFrameworkControlSet.hs
@@ -0,0 +1,101 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.CreateAssessmentFrameworkControlSet
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.CreateAssessmentFrameworkControlSet where
+
+import Amazonka.AuditManager.Types.CreateAssessmentFrameworkControl
+import qualified 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 @controlSet@ entity that represents a collection of controls in Audit
+-- Manager. This doesn\'t contain the control set ID.
+--
+-- /See:/ 'newCreateAssessmentFrameworkControlSet' smart constructor.
+data CreateAssessmentFrameworkControlSet = CreateAssessmentFrameworkControlSet'
+  { -- | The list of controls within the control set. This doesn\'t contain the
+    -- control set ID.
+    controls :: Prelude.Maybe (Prelude.NonEmpty CreateAssessmentFrameworkControl),
+    -- | The name of the control set.
+    name :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateAssessmentFrameworkControlSet' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controls', 'createAssessmentFrameworkControlSet_controls' - The list of controls within the control set. This doesn\'t contain the
+-- control set ID.
+--
+-- 'name', 'createAssessmentFrameworkControlSet_name' - The name of the control set.
+newCreateAssessmentFrameworkControlSet ::
+  -- | 'name'
+  Prelude.Text ->
+  CreateAssessmentFrameworkControlSet
+newCreateAssessmentFrameworkControlSet pName_ =
+  CreateAssessmentFrameworkControlSet'
+    { controls =
+        Prelude.Nothing,
+      name = pName_
+    }
+
+-- | The list of controls within the control set. This doesn\'t contain the
+-- control set ID.
+createAssessmentFrameworkControlSet_controls :: Lens.Lens' CreateAssessmentFrameworkControlSet (Prelude.Maybe (Prelude.NonEmpty CreateAssessmentFrameworkControl))
+createAssessmentFrameworkControlSet_controls = Lens.lens (\CreateAssessmentFrameworkControlSet' {controls} -> controls) (\s@CreateAssessmentFrameworkControlSet' {} a -> s {controls = a} :: CreateAssessmentFrameworkControlSet) Prelude.. Lens.mapping Lens.coerced
+
+-- | The name of the control set.
+createAssessmentFrameworkControlSet_name :: Lens.Lens' CreateAssessmentFrameworkControlSet Prelude.Text
+createAssessmentFrameworkControlSet_name = Lens.lens (\CreateAssessmentFrameworkControlSet' {name} -> name) (\s@CreateAssessmentFrameworkControlSet' {} a -> s {name = a} :: CreateAssessmentFrameworkControlSet)
+
+instance
+  Prelude.Hashable
+    CreateAssessmentFrameworkControlSet
+  where
+  hashWithSalt
+    _salt
+    CreateAssessmentFrameworkControlSet' {..} =
+      _salt
+        `Prelude.hashWithSalt` controls
+        `Prelude.hashWithSalt` name
+
+instance
+  Prelude.NFData
+    CreateAssessmentFrameworkControlSet
+  where
+  rnf CreateAssessmentFrameworkControlSet' {..} =
+    Prelude.rnf controls `Prelude.seq` Prelude.rnf name
+
+instance
+  Data.ToJSON
+    CreateAssessmentFrameworkControlSet
+  where
+  toJSON CreateAssessmentFrameworkControlSet' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("controls" Data..=) Prelude.<$> controls,
+            Prelude.Just ("name" Data..= name)
+          ]
+      )
diff --git a/gen/Amazonka/AuditManager/Types/CreateControlMappingSource.hs b/gen/Amazonka/AuditManager/Types/CreateControlMappingSource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/CreateControlMappingSource.hs
@@ -0,0 +1,159 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.CreateControlMappingSource
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.CreateControlMappingSource where
+
+import Amazonka.AuditManager.Types.SourceFrequency
+import Amazonka.AuditManager.Types.SourceKeyword
+import Amazonka.AuditManager.Types.SourceSetUpOption
+import Amazonka.AuditManager.Types.SourceType
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The control mapping fields that represent the source for evidence
+-- collection, along with related parameters and metadata. This doesn\'t
+-- contain @mappingID@.
+--
+-- /See:/ 'newCreateControlMappingSource' smart constructor.
+data CreateControlMappingSource = CreateControlMappingSource'
+  { -- | The description of the data source that determines where Audit Manager
+    -- collects evidence from for the control.
+    sourceDescription :: Prelude.Maybe Prelude.Text,
+    -- | The frequency of evidence collection for the control mapping source.
+    sourceFrequency :: Prelude.Maybe SourceFrequency,
+    sourceKeyword :: Prelude.Maybe SourceKeyword,
+    -- | The name of the control mapping data source.
+    sourceName :: Prelude.Maybe Prelude.Text,
+    -- | The setup option for the data source, which reflects if the evidence
+    -- collection is automated or manual.
+    sourceSetUpOption :: Prelude.Maybe SourceSetUpOption,
+    -- | Specifies one of the five types of data sources for evidence collection.
+    sourceType :: Prelude.Maybe SourceType,
+    -- | The instructions for troubleshooting the control.
+    troubleshootingText :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateControlMappingSource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'sourceDescription', 'createControlMappingSource_sourceDescription' - The description of the data source that determines where Audit Manager
+-- collects evidence from for the control.
+--
+-- 'sourceFrequency', 'createControlMappingSource_sourceFrequency' - The frequency of evidence collection for the control mapping source.
+--
+-- 'sourceKeyword', 'createControlMappingSource_sourceKeyword' - Undocumented member.
+--
+-- 'sourceName', 'createControlMappingSource_sourceName' - The name of the control mapping data source.
+--
+-- 'sourceSetUpOption', 'createControlMappingSource_sourceSetUpOption' - The setup option for the data source, which reflects if the evidence
+-- collection is automated or manual.
+--
+-- 'sourceType', 'createControlMappingSource_sourceType' - Specifies one of the five types of data sources for evidence collection.
+--
+-- 'troubleshootingText', 'createControlMappingSource_troubleshootingText' - The instructions for troubleshooting the control.
+newCreateControlMappingSource ::
+  CreateControlMappingSource
+newCreateControlMappingSource =
+  CreateControlMappingSource'
+    { sourceDescription =
+        Prelude.Nothing,
+      sourceFrequency = Prelude.Nothing,
+      sourceKeyword = Prelude.Nothing,
+      sourceName = Prelude.Nothing,
+      sourceSetUpOption = Prelude.Nothing,
+      sourceType = Prelude.Nothing,
+      troubleshootingText = Prelude.Nothing
+    }
+
+-- | The description of the data source that determines where Audit Manager
+-- collects evidence from for the control.
+createControlMappingSource_sourceDescription :: Lens.Lens' CreateControlMappingSource (Prelude.Maybe Prelude.Text)
+createControlMappingSource_sourceDescription = Lens.lens (\CreateControlMappingSource' {sourceDescription} -> sourceDescription) (\s@CreateControlMappingSource' {} a -> s {sourceDescription = a} :: CreateControlMappingSource)
+
+-- | The frequency of evidence collection for the control mapping source.
+createControlMappingSource_sourceFrequency :: Lens.Lens' CreateControlMappingSource (Prelude.Maybe SourceFrequency)
+createControlMappingSource_sourceFrequency = Lens.lens (\CreateControlMappingSource' {sourceFrequency} -> sourceFrequency) (\s@CreateControlMappingSource' {} a -> s {sourceFrequency = a} :: CreateControlMappingSource)
+
+-- | Undocumented member.
+createControlMappingSource_sourceKeyword :: Lens.Lens' CreateControlMappingSource (Prelude.Maybe SourceKeyword)
+createControlMappingSource_sourceKeyword = Lens.lens (\CreateControlMappingSource' {sourceKeyword} -> sourceKeyword) (\s@CreateControlMappingSource' {} a -> s {sourceKeyword = a} :: CreateControlMappingSource)
+
+-- | The name of the control mapping data source.
+createControlMappingSource_sourceName :: Lens.Lens' CreateControlMappingSource (Prelude.Maybe Prelude.Text)
+createControlMappingSource_sourceName = Lens.lens (\CreateControlMappingSource' {sourceName} -> sourceName) (\s@CreateControlMappingSource' {} a -> s {sourceName = a} :: CreateControlMappingSource)
+
+-- | The setup option for the data source, which reflects if the evidence
+-- collection is automated or manual.
+createControlMappingSource_sourceSetUpOption :: Lens.Lens' CreateControlMappingSource (Prelude.Maybe SourceSetUpOption)
+createControlMappingSource_sourceSetUpOption = Lens.lens (\CreateControlMappingSource' {sourceSetUpOption} -> sourceSetUpOption) (\s@CreateControlMappingSource' {} a -> s {sourceSetUpOption = a} :: CreateControlMappingSource)
+
+-- | Specifies one of the five types of data sources for evidence collection.
+createControlMappingSource_sourceType :: Lens.Lens' CreateControlMappingSource (Prelude.Maybe SourceType)
+createControlMappingSource_sourceType = Lens.lens (\CreateControlMappingSource' {sourceType} -> sourceType) (\s@CreateControlMappingSource' {} a -> s {sourceType = a} :: CreateControlMappingSource)
+
+-- | The instructions for troubleshooting the control.
+createControlMappingSource_troubleshootingText :: Lens.Lens' CreateControlMappingSource (Prelude.Maybe Prelude.Text)
+createControlMappingSource_troubleshootingText = Lens.lens (\CreateControlMappingSource' {troubleshootingText} -> troubleshootingText) (\s@CreateControlMappingSource' {} a -> s {troubleshootingText = a} :: CreateControlMappingSource)
+
+instance Prelude.Hashable CreateControlMappingSource where
+  hashWithSalt _salt CreateControlMappingSource' {..} =
+    _salt
+      `Prelude.hashWithSalt` sourceDescription
+      `Prelude.hashWithSalt` sourceFrequency
+      `Prelude.hashWithSalt` sourceKeyword
+      `Prelude.hashWithSalt` sourceName
+      `Prelude.hashWithSalt` sourceSetUpOption
+      `Prelude.hashWithSalt` sourceType
+      `Prelude.hashWithSalt` troubleshootingText
+
+instance Prelude.NFData CreateControlMappingSource where
+  rnf CreateControlMappingSource' {..} =
+    Prelude.rnf sourceDescription
+      `Prelude.seq` Prelude.rnf sourceFrequency
+      `Prelude.seq` Prelude.rnf sourceKeyword
+      `Prelude.seq` Prelude.rnf sourceName
+      `Prelude.seq` Prelude.rnf sourceSetUpOption
+      `Prelude.seq` Prelude.rnf sourceType
+      `Prelude.seq` Prelude.rnf troubleshootingText
+
+instance Data.ToJSON CreateControlMappingSource where
+  toJSON CreateControlMappingSource' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("sourceDescription" Data..=)
+              Prelude.<$> sourceDescription,
+            ("sourceFrequency" Data..=)
+              Prelude.<$> sourceFrequency,
+            ("sourceKeyword" Data..=) Prelude.<$> sourceKeyword,
+            ("sourceName" Data..=) Prelude.<$> sourceName,
+            ("sourceSetUpOption" Data..=)
+              Prelude.<$> sourceSetUpOption,
+            ("sourceType" Data..=) Prelude.<$> sourceType,
+            ("troubleshootingText" Data..=)
+              Prelude.<$> troubleshootingText
+          ]
+      )
diff --git a/gen/Amazonka/AuditManager/Types/CreateDelegationRequest.hs b/gen/Amazonka/AuditManager/Types/CreateDelegationRequest.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/CreateDelegationRequest.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.CreateDelegationRequest
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.CreateDelegationRequest where
+
+import Amazonka.AuditManager.Types.RoleType
+import qualified 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 collection of attributes that\'s used to create a delegation for an
+-- assessment in Audit Manager.
+--
+-- /See:/ 'newCreateDelegationRequest' smart constructor.
+data CreateDelegationRequest = CreateDelegationRequest'
+  { -- | A comment that\'s related to the delegation request.
+    comment :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the control set.
+    controlSetId :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the IAM role.
+    roleArn :: Prelude.Maybe Prelude.Text,
+    -- | The type of customer persona.
+    --
+    -- In @CreateAssessment@, @roleType@ can only be @PROCESS_OWNER@.
+    --
+    -- In @UpdateSettings@, @roleType@ can only be @PROCESS_OWNER@.
+    --
+    -- In @BatchCreateDelegationByAssessment@, @roleType@ can only be
+    -- @RESOURCE_OWNER@.
+    roleType :: Prelude.Maybe RoleType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateDelegationRequest' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDelegationRequest_comment' - A comment that\'s related to the delegation request.
+--
+-- 'controlSetId', 'createDelegationRequest_controlSetId' - The unique identifier for the control set.
+--
+-- 'roleArn', 'createDelegationRequest_roleArn' - The Amazon Resource Name (ARN) of the IAM role.
+--
+-- 'roleType', 'createDelegationRequest_roleType' - The type of customer persona.
+--
+-- In @CreateAssessment@, @roleType@ can only be @PROCESS_OWNER@.
+--
+-- In @UpdateSettings@, @roleType@ can only be @PROCESS_OWNER@.
+--
+-- In @BatchCreateDelegationByAssessment@, @roleType@ can only be
+-- @RESOURCE_OWNER@.
+newCreateDelegationRequest ::
+  CreateDelegationRequest
+newCreateDelegationRequest =
+  CreateDelegationRequest'
+    { comment = Prelude.Nothing,
+      controlSetId = Prelude.Nothing,
+      roleArn = Prelude.Nothing,
+      roleType = Prelude.Nothing
+    }
+
+-- | A comment that\'s related to the delegation request.
+createDelegationRequest_comment :: Lens.Lens' CreateDelegationRequest (Prelude.Maybe Prelude.Text)
+createDelegationRequest_comment = Lens.lens (\CreateDelegationRequest' {comment} -> comment) (\s@CreateDelegationRequest' {} a -> s {comment = a} :: CreateDelegationRequest)
+
+-- | The unique identifier for the control set.
+createDelegationRequest_controlSetId :: Lens.Lens' CreateDelegationRequest (Prelude.Maybe Prelude.Text)
+createDelegationRequest_controlSetId = Lens.lens (\CreateDelegationRequest' {controlSetId} -> controlSetId) (\s@CreateDelegationRequest' {} a -> s {controlSetId = a} :: CreateDelegationRequest)
+
+-- | The Amazon Resource Name (ARN) of the IAM role.
+createDelegationRequest_roleArn :: Lens.Lens' CreateDelegationRequest (Prelude.Maybe Prelude.Text)
+createDelegationRequest_roleArn = Lens.lens (\CreateDelegationRequest' {roleArn} -> roleArn) (\s@CreateDelegationRequest' {} a -> s {roleArn = a} :: CreateDelegationRequest)
+
+-- | The type of customer persona.
+--
+-- In @CreateAssessment@, @roleType@ can only be @PROCESS_OWNER@.
+--
+-- In @UpdateSettings@, @roleType@ can only be @PROCESS_OWNER@.
+--
+-- In @BatchCreateDelegationByAssessment@, @roleType@ can only be
+-- @RESOURCE_OWNER@.
+createDelegationRequest_roleType :: Lens.Lens' CreateDelegationRequest (Prelude.Maybe RoleType)
+createDelegationRequest_roleType = Lens.lens (\CreateDelegationRequest' {roleType} -> roleType) (\s@CreateDelegationRequest' {} a -> s {roleType = a} :: CreateDelegationRequest)
+
+instance Data.FromJSON CreateDelegationRequest where
+  parseJSON =
+    Data.withObject
+      "CreateDelegationRequest"
+      ( \x ->
+          CreateDelegationRequest'
+            Prelude.<$> (x Data..:? "comment")
+            Prelude.<*> (x Data..:? "controlSetId")
+            Prelude.<*> (x Data..:? "roleArn")
+            Prelude.<*> (x Data..:? "roleType")
+      )
+
+instance Prelude.Hashable CreateDelegationRequest where
+  hashWithSalt _salt CreateDelegationRequest' {..} =
+    _salt
+      `Prelude.hashWithSalt` comment
+      `Prelude.hashWithSalt` controlSetId
+      `Prelude.hashWithSalt` roleArn
+      `Prelude.hashWithSalt` roleType
+
+instance Prelude.NFData CreateDelegationRequest where
+  rnf CreateDelegationRequest' {..} =
+    Prelude.rnf comment
+      `Prelude.seq` Prelude.rnf controlSetId
+      `Prelude.seq` Prelude.rnf roleArn
+      `Prelude.seq` Prelude.rnf roleType
+
+instance Data.ToJSON CreateDelegationRequest where
+  toJSON CreateDelegationRequest' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("comment" Data..=) Prelude.<$> comment,
+            ("controlSetId" Data..=) Prelude.<$> controlSetId,
+            ("roleArn" Data..=) Prelude.<$> roleArn,
+            ("roleType" Data..=) Prelude.<$> roleType
+          ]
+      )
diff --git a/gen/Amazonka/AuditManager/Types/Delegation.hs b/gen/Amazonka/AuditManager/Types/Delegation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/Delegation.hs
@@ -0,0 +1,221 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.Delegation
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.Delegation where
+
+import Amazonka.AuditManager.Types.DelegationStatus
+import Amazonka.AuditManager.Types.RoleType
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The assignment of a control set to a delegate for review.
+--
+-- /See:/ 'newDelegation' smart constructor.
+data Delegation = Delegation'
+  { -- | The identifier for the assessment that\'s associated with the
+    -- delegation.
+    assessmentId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the assessment that\'s associated with the delegation.
+    assessmentName :: Prelude.Maybe Prelude.Text,
+    -- | The comment that\'s related to the delegation.
+    comment :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the control set that\'s associated with the
+    -- delegation.
+    controlSetId :: Prelude.Maybe Prelude.Text,
+    -- | The IAM user or role that created the delegation.
+    createdBy :: Prelude.Maybe Prelude.Text,
+    -- | Specifies when the delegation was created.
+    creationTime :: Prelude.Maybe Data.POSIX,
+    -- | The unique identifier for the delegation.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | Specifies when the delegation was last updated.
+    lastUpdated :: Prelude.Maybe Data.POSIX,
+    -- | The Amazon Resource Name (ARN) of the IAM role.
+    roleArn :: Prelude.Maybe Prelude.Text,
+    -- | The type of customer persona.
+    --
+    -- In @CreateAssessment@, @roleType@ can only be @PROCESS_OWNER@.
+    --
+    -- In @UpdateSettings@, @roleType@ can only be @PROCESS_OWNER@.
+    --
+    -- In @BatchCreateDelegationByAssessment@, @roleType@ can only be
+    -- @RESOURCE_OWNER@.
+    roleType :: Prelude.Maybe RoleType,
+    -- | The status of the delegation.
+    status :: Prelude.Maybe DelegationStatus
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Delegation' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'delegation_assessmentId' - The identifier for the assessment that\'s associated with the
+-- delegation.
+--
+-- 'assessmentName', 'delegation_assessmentName' - The name of the assessment that\'s associated with the delegation.
+--
+-- 'comment', 'delegation_comment' - The comment that\'s related to the delegation.
+--
+-- 'controlSetId', 'delegation_controlSetId' - The identifier for the control set that\'s associated with the
+-- delegation.
+--
+-- 'createdBy', 'delegation_createdBy' - The IAM user or role that created the delegation.
+--
+-- 'creationTime', 'delegation_creationTime' - Specifies when the delegation was created.
+--
+-- 'id', 'delegation_id' - The unique identifier for the delegation.
+--
+-- 'lastUpdated', 'delegation_lastUpdated' - Specifies when the delegation was last updated.
+--
+-- 'roleArn', 'delegation_roleArn' - The Amazon Resource Name (ARN) of the IAM role.
+--
+-- 'roleType', 'delegation_roleType' - The type of customer persona.
+--
+-- In @CreateAssessment@, @roleType@ can only be @PROCESS_OWNER@.
+--
+-- In @UpdateSettings@, @roleType@ can only be @PROCESS_OWNER@.
+--
+-- In @BatchCreateDelegationByAssessment@, @roleType@ can only be
+-- @RESOURCE_OWNER@.
+--
+-- 'status', 'delegation_status' - The status of the delegation.
+newDelegation ::
+  Delegation
+newDelegation =
+  Delegation'
+    { assessmentId = Prelude.Nothing,
+      assessmentName = Prelude.Nothing,
+      comment = Prelude.Nothing,
+      controlSetId = Prelude.Nothing,
+      createdBy = Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      id = Prelude.Nothing,
+      lastUpdated = Prelude.Nothing,
+      roleArn = Prelude.Nothing,
+      roleType = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | The identifier for the assessment that\'s associated with the
+-- delegation.
+delegation_assessmentId :: Lens.Lens' Delegation (Prelude.Maybe Prelude.Text)
+delegation_assessmentId = Lens.lens (\Delegation' {assessmentId} -> assessmentId) (\s@Delegation' {} a -> s {assessmentId = a} :: Delegation)
+
+-- | The name of the assessment that\'s associated with the delegation.
+delegation_assessmentName :: Lens.Lens' Delegation (Prelude.Maybe Prelude.Text)
+delegation_assessmentName = Lens.lens (\Delegation' {assessmentName} -> assessmentName) (\s@Delegation' {} a -> s {assessmentName = a} :: Delegation)
+
+-- | The comment that\'s related to the delegation.
+delegation_comment :: Lens.Lens' Delegation (Prelude.Maybe Prelude.Text)
+delegation_comment = Lens.lens (\Delegation' {comment} -> comment) (\s@Delegation' {} a -> s {comment = a} :: Delegation)
+
+-- | The identifier for the control set that\'s associated with the
+-- delegation.
+delegation_controlSetId :: Lens.Lens' Delegation (Prelude.Maybe Prelude.Text)
+delegation_controlSetId = Lens.lens (\Delegation' {controlSetId} -> controlSetId) (\s@Delegation' {} a -> s {controlSetId = a} :: Delegation)
+
+-- | The IAM user or role that created the delegation.
+delegation_createdBy :: Lens.Lens' Delegation (Prelude.Maybe Prelude.Text)
+delegation_createdBy = Lens.lens (\Delegation' {createdBy} -> createdBy) (\s@Delegation' {} a -> s {createdBy = a} :: Delegation)
+
+-- | Specifies when the delegation was created.
+delegation_creationTime :: Lens.Lens' Delegation (Prelude.Maybe Prelude.UTCTime)
+delegation_creationTime = Lens.lens (\Delegation' {creationTime} -> creationTime) (\s@Delegation' {} a -> s {creationTime = a} :: Delegation) Prelude.. Lens.mapping Data._Time
+
+-- | The unique identifier for the delegation.
+delegation_id :: Lens.Lens' Delegation (Prelude.Maybe Prelude.Text)
+delegation_id = Lens.lens (\Delegation' {id} -> id) (\s@Delegation' {} a -> s {id = a} :: Delegation)
+
+-- | Specifies when the delegation was last updated.
+delegation_lastUpdated :: Lens.Lens' Delegation (Prelude.Maybe Prelude.UTCTime)
+delegation_lastUpdated = Lens.lens (\Delegation' {lastUpdated} -> lastUpdated) (\s@Delegation' {} a -> s {lastUpdated = a} :: Delegation) Prelude.. Lens.mapping Data._Time
+
+-- | The Amazon Resource Name (ARN) of the IAM role.
+delegation_roleArn :: Lens.Lens' Delegation (Prelude.Maybe Prelude.Text)
+delegation_roleArn = Lens.lens (\Delegation' {roleArn} -> roleArn) (\s@Delegation' {} a -> s {roleArn = a} :: Delegation)
+
+-- | The type of customer persona.
+--
+-- In @CreateAssessment@, @roleType@ can only be @PROCESS_OWNER@.
+--
+-- In @UpdateSettings@, @roleType@ can only be @PROCESS_OWNER@.
+--
+-- In @BatchCreateDelegationByAssessment@, @roleType@ can only be
+-- @RESOURCE_OWNER@.
+delegation_roleType :: Lens.Lens' Delegation (Prelude.Maybe RoleType)
+delegation_roleType = Lens.lens (\Delegation' {roleType} -> roleType) (\s@Delegation' {} a -> s {roleType = a} :: Delegation)
+
+-- | The status of the delegation.
+delegation_status :: Lens.Lens' Delegation (Prelude.Maybe DelegationStatus)
+delegation_status = Lens.lens (\Delegation' {status} -> status) (\s@Delegation' {} a -> s {status = a} :: Delegation)
+
+instance Data.FromJSON Delegation where
+  parseJSON =
+    Data.withObject
+      "Delegation"
+      ( \x ->
+          Delegation'
+            Prelude.<$> (x Data..:? "assessmentId")
+            Prelude.<*> (x Data..:? "assessmentName")
+            Prelude.<*> (x Data..:? "comment")
+            Prelude.<*> (x Data..:? "controlSetId")
+            Prelude.<*> (x Data..:? "createdBy")
+            Prelude.<*> (x Data..:? "creationTime")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "lastUpdated")
+            Prelude.<*> (x Data..:? "roleArn")
+            Prelude.<*> (x Data..:? "roleType")
+            Prelude.<*> (x Data..:? "status")
+      )
+
+instance Prelude.Hashable Delegation where
+  hashWithSalt _salt Delegation' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` assessmentName
+      `Prelude.hashWithSalt` comment
+      `Prelude.hashWithSalt` controlSetId
+      `Prelude.hashWithSalt` createdBy
+      `Prelude.hashWithSalt` creationTime
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` lastUpdated
+      `Prelude.hashWithSalt` roleArn
+      `Prelude.hashWithSalt` roleType
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData Delegation where
+  rnf Delegation' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf assessmentName
+      `Prelude.seq` Prelude.rnf comment
+      `Prelude.seq` Prelude.rnf controlSetId
+      `Prelude.seq` Prelude.rnf createdBy
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf lastUpdated
+      `Prelude.seq` Prelude.rnf roleArn
+      `Prelude.seq` Prelude.rnf roleType
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/AuditManager/Types/DelegationMetadata.hs b/gen/Amazonka/AuditManager/Types/DelegationMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/DelegationMetadata.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.DelegationMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.DelegationMetadata where
+
+import Amazonka.AuditManager.Types.DelegationStatus
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The metadata that\'s associated with the delegation.
+--
+-- /See:/ 'newDelegationMetadata' smart constructor.
+data DelegationMetadata = DelegationMetadata'
+  { -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the associated assessment.
+    assessmentName :: Prelude.Maybe Prelude.Text,
+    -- | Specifies the name of the control set that was delegated for review.
+    controlSetName :: Prelude.Maybe Prelude.Text,
+    -- | Specifies when the delegation was created.
+    creationTime :: Prelude.Maybe Data.POSIX,
+    -- | The unique identifier for the delegation.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the IAM role.
+    roleArn :: Prelude.Maybe Prelude.Text,
+    -- | The current status of the delegation.
+    status :: Prelude.Maybe DelegationStatus
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DelegationMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'delegationMetadata_assessmentId' - The unique identifier for the assessment.
+--
+-- 'assessmentName', 'delegationMetadata_assessmentName' - The name of the associated assessment.
+--
+-- 'controlSetName', 'delegationMetadata_controlSetName' - Specifies the name of the control set that was delegated for review.
+--
+-- 'creationTime', 'delegationMetadata_creationTime' - Specifies when the delegation was created.
+--
+-- 'id', 'delegationMetadata_id' - The unique identifier for the delegation.
+--
+-- 'roleArn', 'delegationMetadata_roleArn' - The Amazon Resource Name (ARN) of the IAM role.
+--
+-- 'status', 'delegationMetadata_status' - The current status of the delegation.
+newDelegationMetadata ::
+  DelegationMetadata
+newDelegationMetadata =
+  DelegationMetadata'
+    { assessmentId = Prelude.Nothing,
+      assessmentName = Prelude.Nothing,
+      controlSetName = Prelude.Nothing,
+      creationTime = Prelude.Nothing,
+      id = Prelude.Nothing,
+      roleArn = Prelude.Nothing,
+      status = Prelude.Nothing
+    }
+
+-- | The unique identifier for the assessment.
+delegationMetadata_assessmentId :: Lens.Lens' DelegationMetadata (Prelude.Maybe Prelude.Text)
+delegationMetadata_assessmentId = Lens.lens (\DelegationMetadata' {assessmentId} -> assessmentId) (\s@DelegationMetadata' {} a -> s {assessmentId = a} :: DelegationMetadata)
+
+-- | The name of the associated assessment.
+delegationMetadata_assessmentName :: Lens.Lens' DelegationMetadata (Prelude.Maybe Prelude.Text)
+delegationMetadata_assessmentName = Lens.lens (\DelegationMetadata' {assessmentName} -> assessmentName) (\s@DelegationMetadata' {} a -> s {assessmentName = a} :: DelegationMetadata)
+
+-- | Specifies the name of the control set that was delegated for review.
+delegationMetadata_controlSetName :: Lens.Lens' DelegationMetadata (Prelude.Maybe Prelude.Text)
+delegationMetadata_controlSetName = Lens.lens (\DelegationMetadata' {controlSetName} -> controlSetName) (\s@DelegationMetadata' {} a -> s {controlSetName = a} :: DelegationMetadata)
+
+-- | Specifies when the delegation was created.
+delegationMetadata_creationTime :: Lens.Lens' DelegationMetadata (Prelude.Maybe Prelude.UTCTime)
+delegationMetadata_creationTime = Lens.lens (\DelegationMetadata' {creationTime} -> creationTime) (\s@DelegationMetadata' {} a -> s {creationTime = a} :: DelegationMetadata) Prelude.. Lens.mapping Data._Time
+
+-- | The unique identifier for the delegation.
+delegationMetadata_id :: Lens.Lens' DelegationMetadata (Prelude.Maybe Prelude.Text)
+delegationMetadata_id = Lens.lens (\DelegationMetadata' {id} -> id) (\s@DelegationMetadata' {} a -> s {id = a} :: DelegationMetadata)
+
+-- | The Amazon Resource Name (ARN) of the IAM role.
+delegationMetadata_roleArn :: Lens.Lens' DelegationMetadata (Prelude.Maybe Prelude.Text)
+delegationMetadata_roleArn = Lens.lens (\DelegationMetadata' {roleArn} -> roleArn) (\s@DelegationMetadata' {} a -> s {roleArn = a} :: DelegationMetadata)
+
+-- | The current status of the delegation.
+delegationMetadata_status :: Lens.Lens' DelegationMetadata (Prelude.Maybe DelegationStatus)
+delegationMetadata_status = Lens.lens (\DelegationMetadata' {status} -> status) (\s@DelegationMetadata' {} a -> s {status = a} :: DelegationMetadata)
+
+instance Data.FromJSON DelegationMetadata where
+  parseJSON =
+    Data.withObject
+      "DelegationMetadata"
+      ( \x ->
+          DelegationMetadata'
+            Prelude.<$> (x Data..:? "assessmentId")
+            Prelude.<*> (x Data..:? "assessmentName")
+            Prelude.<*> (x Data..:? "controlSetName")
+            Prelude.<*> (x Data..:? "creationTime")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "roleArn")
+            Prelude.<*> (x Data..:? "status")
+      )
+
+instance Prelude.Hashable DelegationMetadata where
+  hashWithSalt _salt DelegationMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` assessmentName
+      `Prelude.hashWithSalt` controlSetName
+      `Prelude.hashWithSalt` creationTime
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` roleArn
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData DelegationMetadata where
+  rnf DelegationMetadata' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf assessmentName
+      `Prelude.seq` Prelude.rnf controlSetName
+      `Prelude.seq` Prelude.rnf creationTime
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf roleArn
+      `Prelude.seq` Prelude.rnf status
diff --git a/gen/Amazonka/AuditManager/Types/DelegationStatus.hs b/gen/Amazonka/AuditManager/Types/DelegationStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/DelegationStatus.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.AuditManager.Types.DelegationStatus
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.DelegationStatus
+  ( DelegationStatus
+      ( ..,
+        DelegationStatus_COMPLETE,
+        DelegationStatus_IN_PROGRESS,
+        DelegationStatus_UNDER_REVIEW
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype DelegationStatus = DelegationStatus'
+  { fromDelegationStatus ::
+      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 DelegationStatus_COMPLETE :: DelegationStatus
+pattern DelegationStatus_COMPLETE = DelegationStatus' "COMPLETE"
+
+pattern DelegationStatus_IN_PROGRESS :: DelegationStatus
+pattern DelegationStatus_IN_PROGRESS = DelegationStatus' "IN_PROGRESS"
+
+pattern DelegationStatus_UNDER_REVIEW :: DelegationStatus
+pattern DelegationStatus_UNDER_REVIEW = DelegationStatus' "UNDER_REVIEW"
+
+{-# COMPLETE
+  DelegationStatus_COMPLETE,
+  DelegationStatus_IN_PROGRESS,
+  DelegationStatus_UNDER_REVIEW,
+  DelegationStatus'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/DeleteResources.hs b/gen/Amazonka/AuditManager/Types/DeleteResources.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/DeleteResources.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.AuditManager.Types.DeleteResources
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.DeleteResources
+  ( DeleteResources
+      ( ..,
+        DeleteResources_ALL,
+        DeleteResources_DEFAULT
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype DeleteResources = DeleteResources'
+  { fromDeleteResources ::
+      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 DeleteResources_ALL :: DeleteResources
+pattern DeleteResources_ALL = DeleteResources' "ALL"
+
+pattern DeleteResources_DEFAULT :: DeleteResources
+pattern DeleteResources_DEFAULT = DeleteResources' "DEFAULT"
+
+{-# COMPLETE
+  DeleteResources_ALL,
+  DeleteResources_DEFAULT,
+  DeleteResources'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/DeregistrationPolicy.hs b/gen/Amazonka/AuditManager/Types/DeregistrationPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/DeregistrationPolicy.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.DeregistrationPolicy
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.DeregistrationPolicy where
+
+import Amazonka.AuditManager.Types.DeleteResources
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The deregistration policy for the data that\'s stored in Audit Manager.
+-- You can use this attribute to determine how your data is handled when
+-- you
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeregisterAccount.html deregister Audit Manager>.
+--
+-- By default, Audit Manager retains evidence data for two years from the
+-- time of its creation. Other Audit Manager resources (including
+-- assessments, custom controls, and custom frameworks) remain in Audit
+-- Manager indefinitely, and are available if you
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_RegisterAccount.html re-register Audit Manager>
+-- in the future. For more information about data retention, see
+-- <https://docs.aws.amazon.com/audit-manager/latest/userguide/data-protection.html Data Protection>
+-- in the /Audit Manager User Guide/.
+--
+-- If you choose to delete all data, this action permanently deletes all
+-- evidence data in your account within seven days. It also deletes all of
+-- the Audit Manager resources that you created, including assessments,
+-- custom controls, and custom frameworks. Your data will not be available
+-- if you re-register Audit Manager in the future.
+--
+-- /See:/ 'newDeregistrationPolicy' smart constructor.
+data DeregistrationPolicy = DeregistrationPolicy'
+  { -- | Specifies which Audit Manager data will be deleted when you deregister
+    -- Audit Manager.
+    --
+    -- -   If you set the value to @ALL@, all of your data is deleted within
+    --     seven days of deregistration.
+    --
+    -- -   If you set the value to @DEFAULT@, none of your data is deleted at
+    --     the time of deregistration. However, keep in mind that the Audit
+    --     Manager data retention policy still applies. As a result, any
+    --     evidence data will be deleted two years after its creation date.
+    --     Your other Audit Manager resources will continue to exist
+    --     indefinitely.
+    deleteResources :: Prelude.Maybe DeleteResources
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeregistrationPolicy' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'deleteResources', 'deregistrationPolicy_deleteResources' - Specifies which Audit Manager data will be deleted when you deregister
+-- Audit Manager.
+--
+-- -   If you set the value to @ALL@, all of your data is deleted within
+--     seven days of deregistration.
+--
+-- -   If you set the value to @DEFAULT@, none of your data is deleted at
+--     the time of deregistration. However, keep in mind that the Audit
+--     Manager data retention policy still applies. As a result, any
+--     evidence data will be deleted two years after its creation date.
+--     Your other Audit Manager resources will continue to exist
+--     indefinitely.
+newDeregistrationPolicy ::
+  DeregistrationPolicy
+newDeregistrationPolicy =
+  DeregistrationPolicy'
+    { deleteResources =
+        Prelude.Nothing
+    }
+
+-- | Specifies which Audit Manager data will be deleted when you deregister
+-- Audit Manager.
+--
+-- -   If you set the value to @ALL@, all of your data is deleted within
+--     seven days of deregistration.
+--
+-- -   If you set the value to @DEFAULT@, none of your data is deleted at
+--     the time of deregistration. However, keep in mind that the Audit
+--     Manager data retention policy still applies. As a result, any
+--     evidence data will be deleted two years after its creation date.
+--     Your other Audit Manager resources will continue to exist
+--     indefinitely.
+deregistrationPolicy_deleteResources :: Lens.Lens' DeregistrationPolicy (Prelude.Maybe DeleteResources)
+deregistrationPolicy_deleteResources = Lens.lens (\DeregistrationPolicy' {deleteResources} -> deleteResources) (\s@DeregistrationPolicy' {} a -> s {deleteResources = a} :: DeregistrationPolicy)
+
+instance Data.FromJSON DeregistrationPolicy where
+  parseJSON =
+    Data.withObject
+      "DeregistrationPolicy"
+      ( \x ->
+          DeregistrationPolicy'
+            Prelude.<$> (x Data..:? "deleteResources")
+      )
+
+instance Prelude.Hashable DeregistrationPolicy where
+  hashWithSalt _salt DeregistrationPolicy' {..} =
+    _salt `Prelude.hashWithSalt` deleteResources
+
+instance Prelude.NFData DeregistrationPolicy where
+  rnf DeregistrationPolicy' {..} =
+    Prelude.rnf deleteResources
+
+instance Data.ToJSON DeregistrationPolicy where
+  toJSON DeregistrationPolicy' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("deleteResources" Data..=)
+              Prelude.<$> deleteResources
+          ]
+      )
diff --git a/gen/Amazonka/AuditManager/Types/Evidence.hs b/gen/Amazonka/AuditManager/Types/Evidence.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/Evidence.hs
@@ -0,0 +1,308 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.Evidence
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.Evidence where
+
+import Amazonka.AuditManager.Types.Resource
+import qualified 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 record that contains the information needed to demonstrate compliance
+-- with the requirements specified by a control. Examples of evidence
+-- include change activity invoked by a user, or a system configuration
+-- snapshot.
+--
+-- /See:/ 'newEvidence' smart constructor.
+data Evidence = Evidence'
+  { -- | Specifies whether the evidence is included in the assessment report.
+    assessmentReportSelection :: Prelude.Maybe Prelude.Text,
+    -- | The names and values that are used by the evidence event. This includes
+    -- an attribute name (such as @allowUsersToChangePassword@) and value (such
+    -- as @true@ or @false@).
+    attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | The identifier for the Amazon Web Services account.
+    awsAccountId :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Web Services account that the evidence is collected from, and
+    -- its organization path.
+    awsOrganization :: Prelude.Maybe Prelude.Text,
+    -- | The evaluation status for automated evidence that falls under the
+    -- compliance check category.
+    --
+    -- -   Audit Manager classes evidence as non-compliant if Security Hub
+    --     reports a /Fail/ result, or if Config reports a /Non-compliant/
+    --     result.
+    --
+    -- -   Audit Manager classes evidence as compliant if Security Hub reports
+    --     a /Pass/ result, or if Config reports a /Compliant/ result.
+    --
+    -- -   If a compliance check isn\'t available or applicable, then no
+    --     compliance evaluation can be made for that evidence. This is the
+    --     case if the evidence uses Config or Security Hub as the underlying
+    --     data source type, but those services aren\'t enabled. This is also
+    --     the case if the evidence uses an underlying data source type that
+    --     doesn\'t support compliance checks (such as manual evidence, Amazon
+    --     Web Services API calls, or CloudTrail).
+    complianceCheck :: Prelude.Maybe Prelude.Text,
+    -- | The data source where the evidence was collected from.
+    dataSource :: Prelude.Maybe Prelude.Text,
+    -- | The name of the evidence event.
+    eventName :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Web Service that the evidence is collected from.
+    eventSource :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the Amazon Web Services account.
+    evidenceAwsAccountId :: Prelude.Maybe Prelude.Text,
+    -- | The type of automated evidence.
+    evidenceByType :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the folder that the evidence is stored in.
+    evidenceFolderId :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the IAM user or role that\'s associated with
+    -- the evidence.
+    iamId :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the evidence.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The list of resources that are assessed to generate the evidence.
+    resourcesIncluded :: Prelude.Maybe [Resource],
+    -- | The timestamp that represents when the evidence was collected.
+    time :: Prelude.Maybe Data.POSIX
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Evidence' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentReportSelection', 'evidence_assessmentReportSelection' - Specifies whether the evidence is included in the assessment report.
+--
+-- 'attributes', 'evidence_attributes' - The names and values that are used by the evidence event. This includes
+-- an attribute name (such as @allowUsersToChangePassword@) and value (such
+-- as @true@ or @false@).
+--
+-- 'awsAccountId', 'evidence_awsAccountId' - The identifier for the Amazon Web Services account.
+--
+-- 'awsOrganization', 'evidence_awsOrganization' - The Amazon Web Services account that the evidence is collected from, and
+-- its organization path.
+--
+-- 'complianceCheck', 'evidence_complianceCheck' - The evaluation status for automated evidence that falls under the
+-- compliance check category.
+--
+-- -   Audit Manager classes evidence as non-compliant if Security Hub
+--     reports a /Fail/ result, or if Config reports a /Non-compliant/
+--     result.
+--
+-- -   Audit Manager classes evidence as compliant if Security Hub reports
+--     a /Pass/ result, or if Config reports a /Compliant/ result.
+--
+-- -   If a compliance check isn\'t available or applicable, then no
+--     compliance evaluation can be made for that evidence. This is the
+--     case if the evidence uses Config or Security Hub as the underlying
+--     data source type, but those services aren\'t enabled. This is also
+--     the case if the evidence uses an underlying data source type that
+--     doesn\'t support compliance checks (such as manual evidence, Amazon
+--     Web Services API calls, or CloudTrail).
+--
+-- 'dataSource', 'evidence_dataSource' - The data source where the evidence was collected from.
+--
+-- 'eventName', 'evidence_eventName' - The name of the evidence event.
+--
+-- 'eventSource', 'evidence_eventSource' - The Amazon Web Service that the evidence is collected from.
+--
+-- 'evidenceAwsAccountId', 'evidence_evidenceAwsAccountId' - The identifier for the Amazon Web Services account.
+--
+-- 'evidenceByType', 'evidence_evidenceByType' - The type of automated evidence.
+--
+-- 'evidenceFolderId', 'evidence_evidenceFolderId' - The identifier for the folder that the evidence is stored in.
+--
+-- 'iamId', 'evidence_iamId' - The unique identifier for the IAM user or role that\'s associated with
+-- the evidence.
+--
+-- 'id', 'evidence_id' - The identifier for the evidence.
+--
+-- 'resourcesIncluded', 'evidence_resourcesIncluded' - The list of resources that are assessed to generate the evidence.
+--
+-- 'time', 'evidence_time' - The timestamp that represents when the evidence was collected.
+newEvidence ::
+  Evidence
+newEvidence =
+  Evidence'
+    { assessmentReportSelection =
+        Prelude.Nothing,
+      attributes = Prelude.Nothing,
+      awsAccountId = Prelude.Nothing,
+      awsOrganization = Prelude.Nothing,
+      complianceCheck = Prelude.Nothing,
+      dataSource = Prelude.Nothing,
+      eventName = Prelude.Nothing,
+      eventSource = Prelude.Nothing,
+      evidenceAwsAccountId = Prelude.Nothing,
+      evidenceByType = Prelude.Nothing,
+      evidenceFolderId = Prelude.Nothing,
+      iamId = Prelude.Nothing,
+      id = Prelude.Nothing,
+      resourcesIncluded = Prelude.Nothing,
+      time = Prelude.Nothing
+    }
+
+-- | Specifies whether the evidence is included in the assessment report.
+evidence_assessmentReportSelection :: Lens.Lens' Evidence (Prelude.Maybe Prelude.Text)
+evidence_assessmentReportSelection = Lens.lens (\Evidence' {assessmentReportSelection} -> assessmentReportSelection) (\s@Evidence' {} a -> s {assessmentReportSelection = a} :: Evidence)
+
+-- | The names and values that are used by the evidence event. This includes
+-- an attribute name (such as @allowUsersToChangePassword@) and value (such
+-- as @true@ or @false@).
+evidence_attributes :: Lens.Lens' Evidence (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+evidence_attributes = Lens.lens (\Evidence' {attributes} -> attributes) (\s@Evidence' {} a -> s {attributes = a} :: Evidence) Prelude.. Lens.mapping Lens.coerced
+
+-- | The identifier for the Amazon Web Services account.
+evidence_awsAccountId :: Lens.Lens' Evidence (Prelude.Maybe Prelude.Text)
+evidence_awsAccountId = Lens.lens (\Evidence' {awsAccountId} -> awsAccountId) (\s@Evidence' {} a -> s {awsAccountId = a} :: Evidence)
+
+-- | The Amazon Web Services account that the evidence is collected from, and
+-- its organization path.
+evidence_awsOrganization :: Lens.Lens' Evidence (Prelude.Maybe Prelude.Text)
+evidence_awsOrganization = Lens.lens (\Evidence' {awsOrganization} -> awsOrganization) (\s@Evidence' {} a -> s {awsOrganization = a} :: Evidence)
+
+-- | The evaluation status for automated evidence that falls under the
+-- compliance check category.
+--
+-- -   Audit Manager classes evidence as non-compliant if Security Hub
+--     reports a /Fail/ result, or if Config reports a /Non-compliant/
+--     result.
+--
+-- -   Audit Manager classes evidence as compliant if Security Hub reports
+--     a /Pass/ result, or if Config reports a /Compliant/ result.
+--
+-- -   If a compliance check isn\'t available or applicable, then no
+--     compliance evaluation can be made for that evidence. This is the
+--     case if the evidence uses Config or Security Hub as the underlying
+--     data source type, but those services aren\'t enabled. This is also
+--     the case if the evidence uses an underlying data source type that
+--     doesn\'t support compliance checks (such as manual evidence, Amazon
+--     Web Services API calls, or CloudTrail).
+evidence_complianceCheck :: Lens.Lens' Evidence (Prelude.Maybe Prelude.Text)
+evidence_complianceCheck = Lens.lens (\Evidence' {complianceCheck} -> complianceCheck) (\s@Evidence' {} a -> s {complianceCheck = a} :: Evidence)
+
+-- | The data source where the evidence was collected from.
+evidence_dataSource :: Lens.Lens' Evidence (Prelude.Maybe Prelude.Text)
+evidence_dataSource = Lens.lens (\Evidence' {dataSource} -> dataSource) (\s@Evidence' {} a -> s {dataSource = a} :: Evidence)
+
+-- | The name of the evidence event.
+evidence_eventName :: Lens.Lens' Evidence (Prelude.Maybe Prelude.Text)
+evidence_eventName = Lens.lens (\Evidence' {eventName} -> eventName) (\s@Evidence' {} a -> s {eventName = a} :: Evidence)
+
+-- | The Amazon Web Service that the evidence is collected from.
+evidence_eventSource :: Lens.Lens' Evidence (Prelude.Maybe Prelude.Text)
+evidence_eventSource = Lens.lens (\Evidence' {eventSource} -> eventSource) (\s@Evidence' {} a -> s {eventSource = a} :: Evidence)
+
+-- | The identifier for the Amazon Web Services account.
+evidence_evidenceAwsAccountId :: Lens.Lens' Evidence (Prelude.Maybe Prelude.Text)
+evidence_evidenceAwsAccountId = Lens.lens (\Evidence' {evidenceAwsAccountId} -> evidenceAwsAccountId) (\s@Evidence' {} a -> s {evidenceAwsAccountId = a} :: Evidence)
+
+-- | The type of automated evidence.
+evidence_evidenceByType :: Lens.Lens' Evidence (Prelude.Maybe Prelude.Text)
+evidence_evidenceByType = Lens.lens (\Evidence' {evidenceByType} -> evidenceByType) (\s@Evidence' {} a -> s {evidenceByType = a} :: Evidence)
+
+-- | The identifier for the folder that the evidence is stored in.
+evidence_evidenceFolderId :: Lens.Lens' Evidence (Prelude.Maybe Prelude.Text)
+evidence_evidenceFolderId = Lens.lens (\Evidence' {evidenceFolderId} -> evidenceFolderId) (\s@Evidence' {} a -> s {evidenceFolderId = a} :: Evidence)
+
+-- | The unique identifier for the IAM user or role that\'s associated with
+-- the evidence.
+evidence_iamId :: Lens.Lens' Evidence (Prelude.Maybe Prelude.Text)
+evidence_iamId = Lens.lens (\Evidence' {iamId} -> iamId) (\s@Evidence' {} a -> s {iamId = a} :: Evidence)
+
+-- | The identifier for the evidence.
+evidence_id :: Lens.Lens' Evidence (Prelude.Maybe Prelude.Text)
+evidence_id = Lens.lens (\Evidence' {id} -> id) (\s@Evidence' {} a -> s {id = a} :: Evidence)
+
+-- | The list of resources that are assessed to generate the evidence.
+evidence_resourcesIncluded :: Lens.Lens' Evidence (Prelude.Maybe [Resource])
+evidence_resourcesIncluded = Lens.lens (\Evidence' {resourcesIncluded} -> resourcesIncluded) (\s@Evidence' {} a -> s {resourcesIncluded = a} :: Evidence) Prelude.. Lens.mapping Lens.coerced
+
+-- | The timestamp that represents when the evidence was collected.
+evidence_time :: Lens.Lens' Evidence (Prelude.Maybe Prelude.UTCTime)
+evidence_time = Lens.lens (\Evidence' {time} -> time) (\s@Evidence' {} a -> s {time = a} :: Evidence) Prelude.. Lens.mapping Data._Time
+
+instance Data.FromJSON Evidence where
+  parseJSON =
+    Data.withObject
+      "Evidence"
+      ( \x ->
+          Evidence'
+            Prelude.<$> (x Data..:? "assessmentReportSelection")
+            Prelude.<*> (x Data..:? "attributes" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "awsAccountId")
+            Prelude.<*> (x Data..:? "awsOrganization")
+            Prelude.<*> (x Data..:? "complianceCheck")
+            Prelude.<*> (x Data..:? "dataSource")
+            Prelude.<*> (x Data..:? "eventName")
+            Prelude.<*> (x Data..:? "eventSource")
+            Prelude.<*> (x Data..:? "evidenceAwsAccountId")
+            Prelude.<*> (x Data..:? "evidenceByType")
+            Prelude.<*> (x Data..:? "evidenceFolderId")
+            Prelude.<*> (x Data..:? "iamId")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> ( x
+                            Data..:? "resourcesIncluded"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "time")
+      )
+
+instance Prelude.Hashable Evidence where
+  hashWithSalt _salt Evidence' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentReportSelection
+      `Prelude.hashWithSalt` attributes
+      `Prelude.hashWithSalt` awsAccountId
+      `Prelude.hashWithSalt` awsOrganization
+      `Prelude.hashWithSalt` complianceCheck
+      `Prelude.hashWithSalt` dataSource
+      `Prelude.hashWithSalt` eventName
+      `Prelude.hashWithSalt` eventSource
+      `Prelude.hashWithSalt` evidenceAwsAccountId
+      `Prelude.hashWithSalt` evidenceByType
+      `Prelude.hashWithSalt` evidenceFolderId
+      `Prelude.hashWithSalt` iamId
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` resourcesIncluded
+      `Prelude.hashWithSalt` time
+
+instance Prelude.NFData Evidence where
+  rnf Evidence' {..} =
+    Prelude.rnf assessmentReportSelection
+      `Prelude.seq` Prelude.rnf attributes
+      `Prelude.seq` Prelude.rnf awsAccountId
+      `Prelude.seq` Prelude.rnf awsOrganization
+      `Prelude.seq` Prelude.rnf complianceCheck
+      `Prelude.seq` Prelude.rnf dataSource
+      `Prelude.seq` Prelude.rnf eventName
+      `Prelude.seq` Prelude.rnf eventSource
+      `Prelude.seq` Prelude.rnf evidenceAwsAccountId
+      `Prelude.seq` Prelude.rnf evidenceByType
+      `Prelude.seq` Prelude.rnf evidenceFolderId
+      `Prelude.seq` Prelude.rnf iamId
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf resourcesIncluded
+      `Prelude.seq` Prelude.rnf time
diff --git a/gen/Amazonka/AuditManager/Types/EvidenceFinderBackfillStatus.hs b/gen/Amazonka/AuditManager/Types/EvidenceFinderBackfillStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/EvidenceFinderBackfillStatus.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.AuditManager.Types.EvidenceFinderBackfillStatus
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.EvidenceFinderBackfillStatus
+  ( EvidenceFinderBackfillStatus
+      ( ..,
+        EvidenceFinderBackfillStatus_COMPLETED,
+        EvidenceFinderBackfillStatus_IN_PROGRESS,
+        EvidenceFinderBackfillStatus_NOT_STARTED
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype EvidenceFinderBackfillStatus = EvidenceFinderBackfillStatus'
+  { fromEvidenceFinderBackfillStatus ::
+      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 EvidenceFinderBackfillStatus_COMPLETED :: EvidenceFinderBackfillStatus
+pattern EvidenceFinderBackfillStatus_COMPLETED = EvidenceFinderBackfillStatus' "COMPLETED"
+
+pattern EvidenceFinderBackfillStatus_IN_PROGRESS :: EvidenceFinderBackfillStatus
+pattern EvidenceFinderBackfillStatus_IN_PROGRESS = EvidenceFinderBackfillStatus' "IN_PROGRESS"
+
+pattern EvidenceFinderBackfillStatus_NOT_STARTED :: EvidenceFinderBackfillStatus
+pattern EvidenceFinderBackfillStatus_NOT_STARTED = EvidenceFinderBackfillStatus' "NOT_STARTED"
+
+{-# COMPLETE
+  EvidenceFinderBackfillStatus_COMPLETED,
+  EvidenceFinderBackfillStatus_IN_PROGRESS,
+  EvidenceFinderBackfillStatus_NOT_STARTED,
+  EvidenceFinderBackfillStatus'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/EvidenceFinderEnablement.hs b/gen/Amazonka/AuditManager/Types/EvidenceFinderEnablement.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/EvidenceFinderEnablement.hs
@@ -0,0 +1,215 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.EvidenceFinderEnablement
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.EvidenceFinderEnablement where
+
+import Amazonka.AuditManager.Types.EvidenceFinderBackfillStatus
+import Amazonka.AuditManager.Types.EvidenceFinderEnablementStatus
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The settings object that specifies whether evidence finder is enabled.
+-- This object also describes the related event data store, and the
+-- backfill status for populating the event data store with evidence data.
+--
+-- /See:/ 'newEvidenceFinderEnablement' smart constructor.
+data EvidenceFinderEnablement = EvidenceFinderEnablement'
+  { -- | The current status of the evidence data backfill process.
+    --
+    -- The backfill starts after you enable evidence finder. During this task,
+    -- Audit Manager populates an event data store with your past two years’
+    -- worth of evidence data so that your evidence can be queried.
+    --
+    -- -   @NOT_STARTED@ means that the backfill hasn’t started yet.
+    --
+    -- -   @IN_PROGRESS@ means that the backfill is in progress. This can take
+    --     up to 7 days to complete, depending on the amount of evidence data.
+    --
+    -- -   @COMPLETED@ means that the backfill is complete. All of your past
+    --     evidence is now queryable.
+    backfillStatus :: Prelude.Maybe EvidenceFinderBackfillStatus,
+    -- | The current status of the evidence finder feature and the related event
+    -- data store.
+    --
+    -- -   @ENABLE_IN_PROGRESS@ means that you requested to enable evidence
+    --     finder. An event data store is currently being created to support
+    --     evidence finder queries.
+    --
+    -- -   @ENABLED@ means that an event data store was successfully created
+    --     and evidence finder is enabled. We recommend that you wait 7 days
+    --     until the event data store is backfilled with your past two years’
+    --     worth of evidence data. You can use evidence finder in the meantime,
+    --     but not all data might be available until the backfill is complete.
+    --
+    -- -   @DISABLE_IN_PROGRESS@ means that you requested to disable evidence
+    --     finder, and your request is pending the deletion of the event data
+    --     store.
+    --
+    -- -   @DISABLED@ means that you have permanently disabled evidence finder
+    --     and the event data store has been deleted. You can\'t re-enable
+    --     evidence finder after this point.
+    enablementStatus :: Prelude.Maybe EvidenceFinderEnablementStatus,
+    -- | Represents any errors that occurred when enabling or disabling evidence
+    -- finder.
+    error :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Resource Name (ARN) of the CloudTrail Lake event data store
+    -- that’s used by evidence finder. The event data store is the lake of
+    -- evidence data that evidence finder runs queries against.
+    eventDataStoreArn :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'EvidenceFinderEnablement' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'backfillStatus', 'evidenceFinderEnablement_backfillStatus' - The current status of the evidence data backfill process.
+--
+-- The backfill starts after you enable evidence finder. During this task,
+-- Audit Manager populates an event data store with your past two years’
+-- worth of evidence data so that your evidence can be queried.
+--
+-- -   @NOT_STARTED@ means that the backfill hasn’t started yet.
+--
+-- -   @IN_PROGRESS@ means that the backfill is in progress. This can take
+--     up to 7 days to complete, depending on the amount of evidence data.
+--
+-- -   @COMPLETED@ means that the backfill is complete. All of your past
+--     evidence is now queryable.
+--
+-- 'enablementStatus', 'evidenceFinderEnablement_enablementStatus' - The current status of the evidence finder feature and the related event
+-- data store.
+--
+-- -   @ENABLE_IN_PROGRESS@ means that you requested to enable evidence
+--     finder. An event data store is currently being created to support
+--     evidence finder queries.
+--
+-- -   @ENABLED@ means that an event data store was successfully created
+--     and evidence finder is enabled. We recommend that you wait 7 days
+--     until the event data store is backfilled with your past two years’
+--     worth of evidence data. You can use evidence finder in the meantime,
+--     but not all data might be available until the backfill is complete.
+--
+-- -   @DISABLE_IN_PROGRESS@ means that you requested to disable evidence
+--     finder, and your request is pending the deletion of the event data
+--     store.
+--
+-- -   @DISABLED@ means that you have permanently disabled evidence finder
+--     and the event data store has been deleted. You can\'t re-enable
+--     evidence finder after this point.
+--
+-- 'error', 'evidenceFinderEnablement_error' - Represents any errors that occurred when enabling or disabling evidence
+-- finder.
+--
+-- 'eventDataStoreArn', 'evidenceFinderEnablement_eventDataStoreArn' - The Amazon Resource Name (ARN) of the CloudTrail Lake event data store
+-- that’s used by evidence finder. The event data store is the lake of
+-- evidence data that evidence finder runs queries against.
+newEvidenceFinderEnablement ::
+  EvidenceFinderEnablement
+newEvidenceFinderEnablement =
+  EvidenceFinderEnablement'
+    { backfillStatus =
+        Prelude.Nothing,
+      enablementStatus = Prelude.Nothing,
+      error = Prelude.Nothing,
+      eventDataStoreArn = Prelude.Nothing
+    }
+
+-- | The current status of the evidence data backfill process.
+--
+-- The backfill starts after you enable evidence finder. During this task,
+-- Audit Manager populates an event data store with your past two years’
+-- worth of evidence data so that your evidence can be queried.
+--
+-- -   @NOT_STARTED@ means that the backfill hasn’t started yet.
+--
+-- -   @IN_PROGRESS@ means that the backfill is in progress. This can take
+--     up to 7 days to complete, depending on the amount of evidence data.
+--
+-- -   @COMPLETED@ means that the backfill is complete. All of your past
+--     evidence is now queryable.
+evidenceFinderEnablement_backfillStatus :: Lens.Lens' EvidenceFinderEnablement (Prelude.Maybe EvidenceFinderBackfillStatus)
+evidenceFinderEnablement_backfillStatus = Lens.lens (\EvidenceFinderEnablement' {backfillStatus} -> backfillStatus) (\s@EvidenceFinderEnablement' {} a -> s {backfillStatus = a} :: EvidenceFinderEnablement)
+
+-- | The current status of the evidence finder feature and the related event
+-- data store.
+--
+-- -   @ENABLE_IN_PROGRESS@ means that you requested to enable evidence
+--     finder. An event data store is currently being created to support
+--     evidence finder queries.
+--
+-- -   @ENABLED@ means that an event data store was successfully created
+--     and evidence finder is enabled. We recommend that you wait 7 days
+--     until the event data store is backfilled with your past two years’
+--     worth of evidence data. You can use evidence finder in the meantime,
+--     but not all data might be available until the backfill is complete.
+--
+-- -   @DISABLE_IN_PROGRESS@ means that you requested to disable evidence
+--     finder, and your request is pending the deletion of the event data
+--     store.
+--
+-- -   @DISABLED@ means that you have permanently disabled evidence finder
+--     and the event data store has been deleted. You can\'t re-enable
+--     evidence finder after this point.
+evidenceFinderEnablement_enablementStatus :: Lens.Lens' EvidenceFinderEnablement (Prelude.Maybe EvidenceFinderEnablementStatus)
+evidenceFinderEnablement_enablementStatus = Lens.lens (\EvidenceFinderEnablement' {enablementStatus} -> enablementStatus) (\s@EvidenceFinderEnablement' {} a -> s {enablementStatus = a} :: EvidenceFinderEnablement)
+
+-- | Represents any errors that occurred when enabling or disabling evidence
+-- finder.
+evidenceFinderEnablement_error :: Lens.Lens' EvidenceFinderEnablement (Prelude.Maybe Prelude.Text)
+evidenceFinderEnablement_error = Lens.lens (\EvidenceFinderEnablement' {error} -> error) (\s@EvidenceFinderEnablement' {} a -> s {error = a} :: EvidenceFinderEnablement)
+
+-- | The Amazon Resource Name (ARN) of the CloudTrail Lake event data store
+-- that’s used by evidence finder. The event data store is the lake of
+-- evidence data that evidence finder runs queries against.
+evidenceFinderEnablement_eventDataStoreArn :: Lens.Lens' EvidenceFinderEnablement (Prelude.Maybe Prelude.Text)
+evidenceFinderEnablement_eventDataStoreArn = Lens.lens (\EvidenceFinderEnablement' {eventDataStoreArn} -> eventDataStoreArn) (\s@EvidenceFinderEnablement' {} a -> s {eventDataStoreArn = a} :: EvidenceFinderEnablement)
+
+instance Data.FromJSON EvidenceFinderEnablement where
+  parseJSON =
+    Data.withObject
+      "EvidenceFinderEnablement"
+      ( \x ->
+          EvidenceFinderEnablement'
+            Prelude.<$> (x Data..:? "backfillStatus")
+            Prelude.<*> (x Data..:? "enablementStatus")
+            Prelude.<*> (x Data..:? "error")
+            Prelude.<*> (x Data..:? "eventDataStoreArn")
+      )
+
+instance Prelude.Hashable EvidenceFinderEnablement where
+  hashWithSalt _salt EvidenceFinderEnablement' {..} =
+    _salt
+      `Prelude.hashWithSalt` backfillStatus
+      `Prelude.hashWithSalt` enablementStatus
+      `Prelude.hashWithSalt` error
+      `Prelude.hashWithSalt` eventDataStoreArn
+
+instance Prelude.NFData EvidenceFinderEnablement where
+  rnf EvidenceFinderEnablement' {..} =
+    Prelude.rnf backfillStatus
+      `Prelude.seq` Prelude.rnf enablementStatus
+      `Prelude.seq` Prelude.rnf error
+      `Prelude.seq` Prelude.rnf eventDataStoreArn
diff --git a/gen/Amazonka/AuditManager/Types/EvidenceFinderEnablementStatus.hs b/gen/Amazonka/AuditManager/Types/EvidenceFinderEnablementStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/EvidenceFinderEnablementStatus.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.AuditManager.Types.EvidenceFinderEnablementStatus
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.EvidenceFinderEnablementStatus
+  ( EvidenceFinderEnablementStatus
+      ( ..,
+        EvidenceFinderEnablementStatus_DISABLED,
+        EvidenceFinderEnablementStatus_DISABLE_IN_PROGRESS,
+        EvidenceFinderEnablementStatus_ENABLED,
+        EvidenceFinderEnablementStatus_ENABLE_IN_PROGRESS
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype EvidenceFinderEnablementStatus = EvidenceFinderEnablementStatus'
+  { fromEvidenceFinderEnablementStatus ::
+      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 EvidenceFinderEnablementStatus_DISABLED :: EvidenceFinderEnablementStatus
+pattern EvidenceFinderEnablementStatus_DISABLED = EvidenceFinderEnablementStatus' "DISABLED"
+
+pattern EvidenceFinderEnablementStatus_DISABLE_IN_PROGRESS :: EvidenceFinderEnablementStatus
+pattern EvidenceFinderEnablementStatus_DISABLE_IN_PROGRESS = EvidenceFinderEnablementStatus' "DISABLE_IN_PROGRESS"
+
+pattern EvidenceFinderEnablementStatus_ENABLED :: EvidenceFinderEnablementStatus
+pattern EvidenceFinderEnablementStatus_ENABLED = EvidenceFinderEnablementStatus' "ENABLED"
+
+pattern EvidenceFinderEnablementStatus_ENABLE_IN_PROGRESS :: EvidenceFinderEnablementStatus
+pattern EvidenceFinderEnablementStatus_ENABLE_IN_PROGRESS = EvidenceFinderEnablementStatus' "ENABLE_IN_PROGRESS"
+
+{-# COMPLETE
+  EvidenceFinderEnablementStatus_DISABLED,
+  EvidenceFinderEnablementStatus_DISABLE_IN_PROGRESS,
+  EvidenceFinderEnablementStatus_ENABLED,
+  EvidenceFinderEnablementStatus_ENABLE_IN_PROGRESS,
+  EvidenceFinderEnablementStatus'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/EvidenceInsights.hs b/gen/Amazonka/AuditManager/Types/EvidenceInsights.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/EvidenceInsights.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.EvidenceInsights
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.EvidenceInsights 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 breakdown of the latest compliance check status for the evidence in
+-- your Audit Manager assessments.
+--
+-- /See:/ 'newEvidenceInsights' smart constructor.
+data EvidenceInsights = EvidenceInsights'
+  { -- | The number of compliance check evidence that Audit Manager classified as
+    -- compliant. This includes evidence that was collected from Security Hub
+    -- with a /Pass/ ruling, or collected from Config with a /Compliant/
+    -- ruling.
+    compliantEvidenceCount :: Prelude.Maybe Prelude.Int,
+    -- | The number of evidence that a compliance check ruling isn\'t available
+    -- for. Evidence is inconclusive when the associated control uses Security
+    -- Hub or Config as a data source but you didn\'t enable those services.
+    -- This is also the case when a control uses a data source that doesn’t
+    -- support compliance checks (for example, manual evidence, API calls, or
+    -- CloudTrail).
+    --
+    -- If evidence has a compliance check status of /not applicable/ in the
+    -- console, it\'s classified as /inconclusive/ in @EvidenceInsights@ data.
+    inconclusiveEvidenceCount :: Prelude.Maybe Prelude.Int,
+    -- | The number of compliance check evidence that Audit Manager classified as
+    -- non-compliant. This includes evidence that was collected from Security
+    -- Hub with a /Fail/ ruling, or collected from Config with a
+    -- /Non-compliant/ ruling.
+    noncompliantEvidenceCount :: Prelude.Maybe Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'EvidenceInsights' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'compliantEvidenceCount', 'evidenceInsights_compliantEvidenceCount' - The number of compliance check evidence that Audit Manager classified as
+-- compliant. This includes evidence that was collected from Security Hub
+-- with a /Pass/ ruling, or collected from Config with a /Compliant/
+-- ruling.
+--
+-- 'inconclusiveEvidenceCount', 'evidenceInsights_inconclusiveEvidenceCount' - The number of evidence that a compliance check ruling isn\'t available
+-- for. Evidence is inconclusive when the associated control uses Security
+-- Hub or Config as a data source but you didn\'t enable those services.
+-- This is also the case when a control uses a data source that doesn’t
+-- support compliance checks (for example, manual evidence, API calls, or
+-- CloudTrail).
+--
+-- If evidence has a compliance check status of /not applicable/ in the
+-- console, it\'s classified as /inconclusive/ in @EvidenceInsights@ data.
+--
+-- 'noncompliantEvidenceCount', 'evidenceInsights_noncompliantEvidenceCount' - The number of compliance check evidence that Audit Manager classified as
+-- non-compliant. This includes evidence that was collected from Security
+-- Hub with a /Fail/ ruling, or collected from Config with a
+-- /Non-compliant/ ruling.
+newEvidenceInsights ::
+  EvidenceInsights
+newEvidenceInsights =
+  EvidenceInsights'
+    { compliantEvidenceCount =
+        Prelude.Nothing,
+      inconclusiveEvidenceCount = Prelude.Nothing,
+      noncompliantEvidenceCount = Prelude.Nothing
+    }
+
+-- | The number of compliance check evidence that Audit Manager classified as
+-- compliant. This includes evidence that was collected from Security Hub
+-- with a /Pass/ ruling, or collected from Config with a /Compliant/
+-- ruling.
+evidenceInsights_compliantEvidenceCount :: Lens.Lens' EvidenceInsights (Prelude.Maybe Prelude.Int)
+evidenceInsights_compliantEvidenceCount = Lens.lens (\EvidenceInsights' {compliantEvidenceCount} -> compliantEvidenceCount) (\s@EvidenceInsights' {} a -> s {compliantEvidenceCount = a} :: EvidenceInsights)
+
+-- | The number of evidence that a compliance check ruling isn\'t available
+-- for. Evidence is inconclusive when the associated control uses Security
+-- Hub or Config as a data source but you didn\'t enable those services.
+-- This is also the case when a control uses a data source that doesn’t
+-- support compliance checks (for example, manual evidence, API calls, or
+-- CloudTrail).
+--
+-- If evidence has a compliance check status of /not applicable/ in the
+-- console, it\'s classified as /inconclusive/ in @EvidenceInsights@ data.
+evidenceInsights_inconclusiveEvidenceCount :: Lens.Lens' EvidenceInsights (Prelude.Maybe Prelude.Int)
+evidenceInsights_inconclusiveEvidenceCount = Lens.lens (\EvidenceInsights' {inconclusiveEvidenceCount} -> inconclusiveEvidenceCount) (\s@EvidenceInsights' {} a -> s {inconclusiveEvidenceCount = a} :: EvidenceInsights)
+
+-- | The number of compliance check evidence that Audit Manager classified as
+-- non-compliant. This includes evidence that was collected from Security
+-- Hub with a /Fail/ ruling, or collected from Config with a
+-- /Non-compliant/ ruling.
+evidenceInsights_noncompliantEvidenceCount :: Lens.Lens' EvidenceInsights (Prelude.Maybe Prelude.Int)
+evidenceInsights_noncompliantEvidenceCount = Lens.lens (\EvidenceInsights' {noncompliantEvidenceCount} -> noncompliantEvidenceCount) (\s@EvidenceInsights' {} a -> s {noncompliantEvidenceCount = a} :: EvidenceInsights)
+
+instance Data.FromJSON EvidenceInsights where
+  parseJSON =
+    Data.withObject
+      "EvidenceInsights"
+      ( \x ->
+          EvidenceInsights'
+            Prelude.<$> (x Data..:? "compliantEvidenceCount")
+            Prelude.<*> (x Data..:? "inconclusiveEvidenceCount")
+            Prelude.<*> (x Data..:? "noncompliantEvidenceCount")
+      )
+
+instance Prelude.Hashable EvidenceInsights where
+  hashWithSalt _salt EvidenceInsights' {..} =
+    _salt
+      `Prelude.hashWithSalt` compliantEvidenceCount
+      `Prelude.hashWithSalt` inconclusiveEvidenceCount
+      `Prelude.hashWithSalt` noncompliantEvidenceCount
+
+instance Prelude.NFData EvidenceInsights where
+  rnf EvidenceInsights' {..} =
+    Prelude.rnf compliantEvidenceCount
+      `Prelude.seq` Prelude.rnf inconclusiveEvidenceCount
+      `Prelude.seq` Prelude.rnf noncompliantEvidenceCount
diff --git a/gen/Amazonka/AuditManager/Types/Framework.hs b/gen/Amazonka/AuditManager/Types/Framework.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/Framework.hs
@@ -0,0 +1,234 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.Framework
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.Framework where
+
+import Amazonka.AuditManager.Types.ControlSet
+import Amazonka.AuditManager.Types.FrameworkType
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The file that\'s used to structure and automate Audit Manager
+-- assessments for a given compliance standard.
+--
+-- /See:/ 'newFramework' smart constructor.
+data Framework = Framework'
+  { -- | The Amazon Resource Name (ARN) of the framework.
+    arn :: Prelude.Maybe Prelude.Text,
+    -- | The compliance type that the new custom framework supports, such as CIS
+    -- or HIPAA.
+    complianceType :: Prelude.Maybe Prelude.Text,
+    -- | The control sets that are associated with the framework.
+    controlSets :: Prelude.Maybe (Prelude.NonEmpty ControlSet),
+    -- | The sources that Audit Manager collects evidence from for the control.
+    controlSources :: Prelude.Maybe Prelude.Text,
+    -- | The time when the framework was created.
+    createdAt :: Prelude.Maybe Data.POSIX,
+    -- | The IAM user or role that created the framework.
+    createdBy :: Prelude.Maybe Prelude.Text,
+    -- | The description of the framework.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the framework.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The time when the framework was most recently updated.
+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,
+    -- | The IAM user or role that most recently updated the framework.
+    lastUpdatedBy :: Prelude.Maybe Prelude.Text,
+    -- | The logo that\'s associated with the framework.
+    logo :: Prelude.Maybe Prelude.Text,
+    -- | The name of the framework.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The tags that are associated with the framework.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | The framework type, such as a custom framework or a standard framework.
+    type' :: Prelude.Maybe FrameworkType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Framework' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'framework_arn' - The Amazon Resource Name (ARN) of the framework.
+--
+-- 'complianceType', 'framework_complianceType' - The compliance type that the new custom framework supports, such as CIS
+-- or HIPAA.
+--
+-- 'controlSets', 'framework_controlSets' - The control sets that are associated with the framework.
+--
+-- 'controlSources', 'framework_controlSources' - The sources that Audit Manager collects evidence from for the control.
+--
+-- 'createdAt', 'framework_createdAt' - The time when the framework was created.
+--
+-- 'createdBy', 'framework_createdBy' - The IAM user or role that created the framework.
+--
+-- 'description', 'framework_description' - The description of the framework.
+--
+-- 'id', 'framework_id' - The unique identifier for the framework.
+--
+-- 'lastUpdatedAt', 'framework_lastUpdatedAt' - The time when the framework was most recently updated.
+--
+-- 'lastUpdatedBy', 'framework_lastUpdatedBy' - The IAM user or role that most recently updated the framework.
+--
+-- 'logo', 'framework_logo' - The logo that\'s associated with the framework.
+--
+-- 'name', 'framework_name' - The name of the framework.
+--
+-- 'tags', 'framework_tags' - The tags that are associated with the framework.
+--
+-- 'type'', 'framework_type' - The framework type, such as a custom framework or a standard framework.
+newFramework ::
+  Framework
+newFramework =
+  Framework'
+    { arn = Prelude.Nothing,
+      complianceType = Prelude.Nothing,
+      controlSets = Prelude.Nothing,
+      controlSources = Prelude.Nothing,
+      createdAt = Prelude.Nothing,
+      createdBy = Prelude.Nothing,
+      description = Prelude.Nothing,
+      id = Prelude.Nothing,
+      lastUpdatedAt = Prelude.Nothing,
+      lastUpdatedBy = Prelude.Nothing,
+      logo = Prelude.Nothing,
+      name = Prelude.Nothing,
+      tags = Prelude.Nothing,
+      type' = Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) of the framework.
+framework_arn :: Lens.Lens' Framework (Prelude.Maybe Prelude.Text)
+framework_arn = Lens.lens (\Framework' {arn} -> arn) (\s@Framework' {} a -> s {arn = a} :: Framework)
+
+-- | The compliance type that the new custom framework supports, such as CIS
+-- or HIPAA.
+framework_complianceType :: Lens.Lens' Framework (Prelude.Maybe Prelude.Text)
+framework_complianceType = Lens.lens (\Framework' {complianceType} -> complianceType) (\s@Framework' {} a -> s {complianceType = a} :: Framework)
+
+-- | The control sets that are associated with the framework.
+framework_controlSets :: Lens.Lens' Framework (Prelude.Maybe (Prelude.NonEmpty ControlSet))
+framework_controlSets = Lens.lens (\Framework' {controlSets} -> controlSets) (\s@Framework' {} a -> s {controlSets = a} :: Framework) Prelude.. Lens.mapping Lens.coerced
+
+-- | The sources that Audit Manager collects evidence from for the control.
+framework_controlSources :: Lens.Lens' Framework (Prelude.Maybe Prelude.Text)
+framework_controlSources = Lens.lens (\Framework' {controlSources} -> controlSources) (\s@Framework' {} a -> s {controlSources = a} :: Framework)
+
+-- | The time when the framework was created.
+framework_createdAt :: Lens.Lens' Framework (Prelude.Maybe Prelude.UTCTime)
+framework_createdAt = Lens.lens (\Framework' {createdAt} -> createdAt) (\s@Framework' {} a -> s {createdAt = a} :: Framework) Prelude.. Lens.mapping Data._Time
+
+-- | The IAM user or role that created the framework.
+framework_createdBy :: Lens.Lens' Framework (Prelude.Maybe Prelude.Text)
+framework_createdBy = Lens.lens (\Framework' {createdBy} -> createdBy) (\s@Framework' {} a -> s {createdBy = a} :: Framework)
+
+-- | The description of the framework.
+framework_description :: Lens.Lens' Framework (Prelude.Maybe Prelude.Text)
+framework_description = Lens.lens (\Framework' {description} -> description) (\s@Framework' {} a -> s {description = a} :: Framework)
+
+-- | The unique identifier for the framework.
+framework_id :: Lens.Lens' Framework (Prelude.Maybe Prelude.Text)
+framework_id = Lens.lens (\Framework' {id} -> id) (\s@Framework' {} a -> s {id = a} :: Framework)
+
+-- | The time when the framework was most recently updated.
+framework_lastUpdatedAt :: Lens.Lens' Framework (Prelude.Maybe Prelude.UTCTime)
+framework_lastUpdatedAt = Lens.lens (\Framework' {lastUpdatedAt} -> lastUpdatedAt) (\s@Framework' {} a -> s {lastUpdatedAt = a} :: Framework) Prelude.. Lens.mapping Data._Time
+
+-- | The IAM user or role that most recently updated the framework.
+framework_lastUpdatedBy :: Lens.Lens' Framework (Prelude.Maybe Prelude.Text)
+framework_lastUpdatedBy = Lens.lens (\Framework' {lastUpdatedBy} -> lastUpdatedBy) (\s@Framework' {} a -> s {lastUpdatedBy = a} :: Framework)
+
+-- | The logo that\'s associated with the framework.
+framework_logo :: Lens.Lens' Framework (Prelude.Maybe Prelude.Text)
+framework_logo = Lens.lens (\Framework' {logo} -> logo) (\s@Framework' {} a -> s {logo = a} :: Framework)
+
+-- | The name of the framework.
+framework_name :: Lens.Lens' Framework (Prelude.Maybe Prelude.Text)
+framework_name = Lens.lens (\Framework' {name} -> name) (\s@Framework' {} a -> s {name = a} :: Framework)
+
+-- | The tags that are associated with the framework.
+framework_tags :: Lens.Lens' Framework (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+framework_tags = Lens.lens (\Framework' {tags} -> tags) (\s@Framework' {} a -> s {tags = a} :: Framework) Prelude.. Lens.mapping Lens.coerced
+
+-- | The framework type, such as a custom framework or a standard framework.
+framework_type :: Lens.Lens' Framework (Prelude.Maybe FrameworkType)
+framework_type = Lens.lens (\Framework' {type'} -> type') (\s@Framework' {} a -> s {type' = a} :: Framework)
+
+instance Data.FromJSON Framework where
+  parseJSON =
+    Data.withObject
+      "Framework"
+      ( \x ->
+          Framework'
+            Prelude.<$> (x Data..:? "arn")
+            Prelude.<*> (x Data..:? "complianceType")
+            Prelude.<*> (x Data..:? "controlSets")
+            Prelude.<*> (x Data..:? "controlSources")
+            Prelude.<*> (x Data..:? "createdAt")
+            Prelude.<*> (x Data..:? "createdBy")
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "lastUpdatedAt")
+            Prelude.<*> (x Data..:? "lastUpdatedBy")
+            Prelude.<*> (x Data..:? "logo")
+            Prelude.<*> (x Data..:? "name")
+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "type")
+      )
+
+instance Prelude.Hashable Framework where
+  hashWithSalt _salt Framework' {..} =
+    _salt
+      `Prelude.hashWithSalt` arn
+      `Prelude.hashWithSalt` complianceType
+      `Prelude.hashWithSalt` controlSets
+      `Prelude.hashWithSalt` controlSources
+      `Prelude.hashWithSalt` createdAt
+      `Prelude.hashWithSalt` createdBy
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` lastUpdatedAt
+      `Prelude.hashWithSalt` lastUpdatedBy
+      `Prelude.hashWithSalt` logo
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` type'
+
+instance Prelude.NFData Framework where
+  rnf Framework' {..} =
+    Prelude.rnf arn
+      `Prelude.seq` Prelude.rnf complianceType
+      `Prelude.seq` Prelude.rnf controlSets
+      `Prelude.seq` Prelude.rnf controlSources
+      `Prelude.seq` Prelude.rnf createdAt
+      `Prelude.seq` Prelude.rnf createdBy
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf lastUpdatedAt
+      `Prelude.seq` Prelude.rnf lastUpdatedBy
+      `Prelude.seq` Prelude.rnf logo
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf type'
diff --git a/gen/Amazonka/AuditManager/Types/FrameworkMetadata.hs b/gen/Amazonka/AuditManager/Types/FrameworkMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/FrameworkMetadata.hs
@@ -0,0 +1,112 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.FrameworkMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.FrameworkMetadata where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The metadata of a framework, such as the name, ID, or description.
+--
+-- /See:/ 'newFrameworkMetadata' smart constructor.
+data FrameworkMetadata = FrameworkMetadata'
+  { -- | The compliance standard that\'s associated with the framework. For
+    -- example, this could be PCI DSS or HIPAA.
+    complianceType :: Prelude.Maybe Prelude.Text,
+    -- | The description of the framework.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The logo that\'s associated with the framework.
+    logo :: Prelude.Maybe Prelude.Text,
+    -- | The name of the framework.
+    name :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'FrameworkMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'complianceType', 'frameworkMetadata_complianceType' - The compliance standard that\'s associated with the framework. For
+-- example, this could be PCI DSS or HIPAA.
+--
+-- 'description', 'frameworkMetadata_description' - The description of the framework.
+--
+-- 'logo', 'frameworkMetadata_logo' - The logo that\'s associated with the framework.
+--
+-- 'name', 'frameworkMetadata_name' - The name of the framework.
+newFrameworkMetadata ::
+  FrameworkMetadata
+newFrameworkMetadata =
+  FrameworkMetadata'
+    { complianceType =
+        Prelude.Nothing,
+      description = Prelude.Nothing,
+      logo = Prelude.Nothing,
+      name = Prelude.Nothing
+    }
+
+-- | The compliance standard that\'s associated with the framework. For
+-- example, this could be PCI DSS or HIPAA.
+frameworkMetadata_complianceType :: Lens.Lens' FrameworkMetadata (Prelude.Maybe Prelude.Text)
+frameworkMetadata_complianceType = Lens.lens (\FrameworkMetadata' {complianceType} -> complianceType) (\s@FrameworkMetadata' {} a -> s {complianceType = a} :: FrameworkMetadata)
+
+-- | The description of the framework.
+frameworkMetadata_description :: Lens.Lens' FrameworkMetadata (Prelude.Maybe Prelude.Text)
+frameworkMetadata_description = Lens.lens (\FrameworkMetadata' {description} -> description) (\s@FrameworkMetadata' {} a -> s {description = a} :: FrameworkMetadata)
+
+-- | The logo that\'s associated with the framework.
+frameworkMetadata_logo :: Lens.Lens' FrameworkMetadata (Prelude.Maybe Prelude.Text)
+frameworkMetadata_logo = Lens.lens (\FrameworkMetadata' {logo} -> logo) (\s@FrameworkMetadata' {} a -> s {logo = a} :: FrameworkMetadata)
+
+-- | The name of the framework.
+frameworkMetadata_name :: Lens.Lens' FrameworkMetadata (Prelude.Maybe Prelude.Text)
+frameworkMetadata_name = Lens.lens (\FrameworkMetadata' {name} -> name) (\s@FrameworkMetadata' {} a -> s {name = a} :: FrameworkMetadata)
+
+instance Data.FromJSON FrameworkMetadata where
+  parseJSON =
+    Data.withObject
+      "FrameworkMetadata"
+      ( \x ->
+          FrameworkMetadata'
+            Prelude.<$> (x Data..:? "complianceType")
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "logo")
+            Prelude.<*> (x Data..:? "name")
+      )
+
+instance Prelude.Hashable FrameworkMetadata where
+  hashWithSalt _salt FrameworkMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` complianceType
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` logo
+      `Prelude.hashWithSalt` name
+
+instance Prelude.NFData FrameworkMetadata where
+  rnf FrameworkMetadata' {..} =
+    Prelude.rnf complianceType
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf logo
+      `Prelude.seq` Prelude.rnf name
diff --git a/gen/Amazonka/AuditManager/Types/FrameworkType.hs b/gen/Amazonka/AuditManager/Types/FrameworkType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/FrameworkType.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.AuditManager.Types.FrameworkType
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.FrameworkType
+  ( FrameworkType
+      ( ..,
+        FrameworkType_Custom,
+        FrameworkType_Standard
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype FrameworkType = FrameworkType'
+  { fromFrameworkType ::
+      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 FrameworkType_Custom :: FrameworkType
+pattern FrameworkType_Custom = FrameworkType' "Custom"
+
+pattern FrameworkType_Standard :: FrameworkType
+pattern FrameworkType_Standard = FrameworkType' "Standard"
+
+{-# COMPLETE
+  FrameworkType_Custom,
+  FrameworkType_Standard,
+  FrameworkType'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/Insights.hs b/gen/Amazonka/AuditManager/Types/Insights.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/Insights.hs
@@ -0,0 +1,212 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.Insights
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.Insights 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 summary of the latest analytics data for all your active assessments.
+--
+-- This summary is a snapshot of the data that your active assessments
+-- collected on the @lastUpdated@ date. It’s important to understand that
+-- the following totals are daily counts based on this date — they aren’t a
+-- total sum to date.
+--
+-- The @Insights@ data is eventually consistent. This means that, when you
+-- read data from @Insights@, the response might not instantly reflect the
+-- results of a recently completed write or update operation. If you repeat
+-- your read request after a few hours, the response should return the
+-- latest data.
+--
+-- If you delete an assessment or change its status to inactive,
+-- @InsightsByAssessment@ includes data for that assessment as follows.
+--
+-- -   __Inactive assessments__ - If Audit Manager collected evidence for
+--     your assessment before you changed it inactive, that evidence is
+--     included in the @InsightsByAssessment@ counts for that day.
+--
+-- -   __Deleted assessments__ - If Audit Manager collected evidence for
+--     your assessment before you deleted it, that evidence isn\'t included
+--     in the @InsightsByAssessment@ counts for that day.
+--
+-- /See:/ 'newInsights' smart constructor.
+data Insights = Insights'
+  { -- | The number of active assessments in Audit Manager.
+    activeAssessmentsCount :: Prelude.Maybe Prelude.Int,
+    -- | The number of assessment controls that collected non-compliant evidence
+    -- on the @lastUpdated@ date.
+    assessmentControlsCountByNoncompliantEvidence :: Prelude.Maybe Prelude.Int,
+    -- | The number of compliance check evidence that Audit Manager classified as
+    -- compliant on the @lastUpdated@ date. This includes evidence that was
+    -- collected from Security Hub with a /Pass/ ruling, or collected from
+    -- Config with a /Compliant/ ruling.
+    compliantEvidenceCount :: Prelude.Maybe Prelude.Int,
+    -- | The number of evidence without a compliance check ruling. Evidence is
+    -- inconclusive when the associated control uses Security Hub or Config as
+    -- a data source but you didn\'t enable those services. This is also the
+    -- case when a control uses a data source that doesn’t support compliance
+    -- checks (for example: manual evidence, API calls, or CloudTrail).
+    --
+    -- If evidence has a compliance check status of /not applicable/, it\'s
+    -- classed as /inconclusive/ in @Insights@ data.
+    inconclusiveEvidenceCount :: Prelude.Maybe Prelude.Int,
+    -- | The time when the cross-assessment insights were last updated.
+    lastUpdated :: Prelude.Maybe Data.POSIX,
+    -- | The number of compliance check evidence that Audit Manager classified as
+    -- non-compliant on the @lastUpdated@ date. This includes evidence that was
+    -- collected from Security Hub with a /Fail/ ruling, or collected from
+    -- Config with a /Non-compliant/ ruling.
+    noncompliantEvidenceCount :: Prelude.Maybe Prelude.Int,
+    -- | The total number of controls across all active assessments.
+    totalAssessmentControlsCount :: Prelude.Maybe Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Insights' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'activeAssessmentsCount', 'insights_activeAssessmentsCount' - The number of active assessments in Audit Manager.
+--
+-- 'assessmentControlsCountByNoncompliantEvidence', 'insights_assessmentControlsCountByNoncompliantEvidence' - The number of assessment controls that collected non-compliant evidence
+-- on the @lastUpdated@ date.
+--
+-- 'compliantEvidenceCount', 'insights_compliantEvidenceCount' - The number of compliance check evidence that Audit Manager classified as
+-- compliant on the @lastUpdated@ date. This includes evidence that was
+-- collected from Security Hub with a /Pass/ ruling, or collected from
+-- Config with a /Compliant/ ruling.
+--
+-- 'inconclusiveEvidenceCount', 'insights_inconclusiveEvidenceCount' - The number of evidence without a compliance check ruling. Evidence is
+-- inconclusive when the associated control uses Security Hub or Config as
+-- a data source but you didn\'t enable those services. This is also the
+-- case when a control uses a data source that doesn’t support compliance
+-- checks (for example: manual evidence, API calls, or CloudTrail).
+--
+-- If evidence has a compliance check status of /not applicable/, it\'s
+-- classed as /inconclusive/ in @Insights@ data.
+--
+-- 'lastUpdated', 'insights_lastUpdated' - The time when the cross-assessment insights were last updated.
+--
+-- 'noncompliantEvidenceCount', 'insights_noncompliantEvidenceCount' - The number of compliance check evidence that Audit Manager classified as
+-- non-compliant on the @lastUpdated@ date. This includes evidence that was
+-- collected from Security Hub with a /Fail/ ruling, or collected from
+-- Config with a /Non-compliant/ ruling.
+--
+-- 'totalAssessmentControlsCount', 'insights_totalAssessmentControlsCount' - The total number of controls across all active assessments.
+newInsights ::
+  Insights
+newInsights =
+  Insights'
+    { activeAssessmentsCount = Prelude.Nothing,
+      assessmentControlsCountByNoncompliantEvidence =
+        Prelude.Nothing,
+      compliantEvidenceCount = Prelude.Nothing,
+      inconclusiveEvidenceCount = Prelude.Nothing,
+      lastUpdated = Prelude.Nothing,
+      noncompliantEvidenceCount = Prelude.Nothing,
+      totalAssessmentControlsCount = Prelude.Nothing
+    }
+
+-- | The number of active assessments in Audit Manager.
+insights_activeAssessmentsCount :: Lens.Lens' Insights (Prelude.Maybe Prelude.Int)
+insights_activeAssessmentsCount = Lens.lens (\Insights' {activeAssessmentsCount} -> activeAssessmentsCount) (\s@Insights' {} a -> s {activeAssessmentsCount = a} :: Insights)
+
+-- | The number of assessment controls that collected non-compliant evidence
+-- on the @lastUpdated@ date.
+insights_assessmentControlsCountByNoncompliantEvidence :: Lens.Lens' Insights (Prelude.Maybe Prelude.Int)
+insights_assessmentControlsCountByNoncompliantEvidence = Lens.lens (\Insights' {assessmentControlsCountByNoncompliantEvidence} -> assessmentControlsCountByNoncompliantEvidence) (\s@Insights' {} a -> s {assessmentControlsCountByNoncompliantEvidence = a} :: Insights)
+
+-- | The number of compliance check evidence that Audit Manager classified as
+-- compliant on the @lastUpdated@ date. This includes evidence that was
+-- collected from Security Hub with a /Pass/ ruling, or collected from
+-- Config with a /Compliant/ ruling.
+insights_compliantEvidenceCount :: Lens.Lens' Insights (Prelude.Maybe Prelude.Int)
+insights_compliantEvidenceCount = Lens.lens (\Insights' {compliantEvidenceCount} -> compliantEvidenceCount) (\s@Insights' {} a -> s {compliantEvidenceCount = a} :: Insights)
+
+-- | The number of evidence without a compliance check ruling. Evidence is
+-- inconclusive when the associated control uses Security Hub or Config as
+-- a data source but you didn\'t enable those services. This is also the
+-- case when a control uses a data source that doesn’t support compliance
+-- checks (for example: manual evidence, API calls, or CloudTrail).
+--
+-- If evidence has a compliance check status of /not applicable/, it\'s
+-- classed as /inconclusive/ in @Insights@ data.
+insights_inconclusiveEvidenceCount :: Lens.Lens' Insights (Prelude.Maybe Prelude.Int)
+insights_inconclusiveEvidenceCount = Lens.lens (\Insights' {inconclusiveEvidenceCount} -> inconclusiveEvidenceCount) (\s@Insights' {} a -> s {inconclusiveEvidenceCount = a} :: Insights)
+
+-- | The time when the cross-assessment insights were last updated.
+insights_lastUpdated :: Lens.Lens' Insights (Prelude.Maybe Prelude.UTCTime)
+insights_lastUpdated = Lens.lens (\Insights' {lastUpdated} -> lastUpdated) (\s@Insights' {} a -> s {lastUpdated = a} :: Insights) Prelude.. Lens.mapping Data._Time
+
+-- | The number of compliance check evidence that Audit Manager classified as
+-- non-compliant on the @lastUpdated@ date. This includes evidence that was
+-- collected from Security Hub with a /Fail/ ruling, or collected from
+-- Config with a /Non-compliant/ ruling.
+insights_noncompliantEvidenceCount :: Lens.Lens' Insights (Prelude.Maybe Prelude.Int)
+insights_noncompliantEvidenceCount = Lens.lens (\Insights' {noncompliantEvidenceCount} -> noncompliantEvidenceCount) (\s@Insights' {} a -> s {noncompliantEvidenceCount = a} :: Insights)
+
+-- | The total number of controls across all active assessments.
+insights_totalAssessmentControlsCount :: Lens.Lens' Insights (Prelude.Maybe Prelude.Int)
+insights_totalAssessmentControlsCount = Lens.lens (\Insights' {totalAssessmentControlsCount} -> totalAssessmentControlsCount) (\s@Insights' {} a -> s {totalAssessmentControlsCount = a} :: Insights)
+
+instance Data.FromJSON Insights where
+  parseJSON =
+    Data.withObject
+      "Insights"
+      ( \x ->
+          Insights'
+            Prelude.<$> (x Data..:? "activeAssessmentsCount")
+            Prelude.<*> ( x
+                            Data..:? "assessmentControlsCountByNoncompliantEvidence"
+                        )
+            Prelude.<*> (x Data..:? "compliantEvidenceCount")
+            Prelude.<*> (x Data..:? "inconclusiveEvidenceCount")
+            Prelude.<*> (x Data..:? "lastUpdated")
+            Prelude.<*> (x Data..:? "noncompliantEvidenceCount")
+            Prelude.<*> (x Data..:? "totalAssessmentControlsCount")
+      )
+
+instance Prelude.Hashable Insights where
+  hashWithSalt _salt Insights' {..} =
+    _salt
+      `Prelude.hashWithSalt` activeAssessmentsCount
+      `Prelude.hashWithSalt` assessmentControlsCountByNoncompliantEvidence
+      `Prelude.hashWithSalt` compliantEvidenceCount
+      `Prelude.hashWithSalt` inconclusiveEvidenceCount
+      `Prelude.hashWithSalt` lastUpdated
+      `Prelude.hashWithSalt` noncompliantEvidenceCount
+      `Prelude.hashWithSalt` totalAssessmentControlsCount
+
+instance Prelude.NFData Insights where
+  rnf Insights' {..} =
+    Prelude.rnf activeAssessmentsCount
+      `Prelude.seq` Prelude.rnf
+        assessmentControlsCountByNoncompliantEvidence
+      `Prelude.seq` Prelude.rnf compliantEvidenceCount
+      `Prelude.seq` Prelude.rnf inconclusiveEvidenceCount
+      `Prelude.seq` Prelude.rnf lastUpdated
+      `Prelude.seq` Prelude.rnf noncompliantEvidenceCount
+      `Prelude.seq` Prelude.rnf totalAssessmentControlsCount
diff --git a/gen/Amazonka/AuditManager/Types/InsightsByAssessment.hs b/gen/Amazonka/AuditManager/Types/InsightsByAssessment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/InsightsByAssessment.hs
@@ -0,0 +1,200 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.InsightsByAssessment
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.InsightsByAssessment 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 summary of the latest analytics data for a specific active assessment.
+--
+-- This summary is a snapshot of the data that was collected on the
+-- @lastUpdated@ date. It’s important to understand that the totals in
+-- @InsightsByAssessment@ are daily counts based on this date — they aren’t
+-- a total sum to date.
+--
+-- The @InsightsByAssessment@ data is eventually consistent. This means
+-- that when you read data from @InsightsByAssessment@, the response might
+-- not instantly reflect the results of a recently completed write or
+-- update operation. If you repeat your read request after a few hours, the
+-- response returns the latest data.
+--
+-- If you delete an assessment or change its status to inactive,
+-- @InsightsByAssessment@ includes data for that assessment as follows.
+--
+-- -   __Inactive assessments__ - If Audit Manager collected evidence for
+--     your assessment before you changed it inactive, that evidence is
+--     included in the @InsightsByAssessment@ counts for that day.
+--
+-- -   __Deleted assessments__ - If Audit Manager collected evidence for
+--     your assessment before you deleted it, that evidence isn\'t included
+--     in the @InsightsByAssessment@ counts for that day.
+--
+-- /See:/ 'newInsightsByAssessment' smart constructor.
+data InsightsByAssessment = InsightsByAssessment'
+  { -- | The number of assessment controls that collected non-compliant evidence
+    -- on the @lastUpdated@ date.
+    assessmentControlsCountByNoncompliantEvidence :: Prelude.Maybe Prelude.Int,
+    -- | The number of compliance check evidence that Audit Manager classified as
+    -- compliant. This includes evidence that was collected from Security Hub
+    -- with a /Pass/ ruling, or collected from Config with a /Compliant/
+    -- ruling.
+    compliantEvidenceCount :: Prelude.Maybe Prelude.Int,
+    -- | The amount of evidence without a compliance check ruling. Evidence is
+    -- inconclusive if the associated control uses Security Hub or Config as a
+    -- data source and you didn\'t enable those services. This is also the case
+    -- if a control uses a data source that doesn’t support compliance checks
+    -- (for example, manual evidence, API calls, or CloudTrail).
+    --
+    -- If evidence has a compliance check status of /not applicable/, it\'s
+    -- classified as /inconclusive/ in @InsightsByAssessment@ data.
+    inconclusiveEvidenceCount :: Prelude.Maybe Prelude.Int,
+    -- | The time when the assessment insights were last updated.
+    lastUpdated :: Prelude.Maybe Data.POSIX,
+    -- | The number of compliance check evidence that Audit Manager classified as
+    -- non-compliant. This includes evidence that was collected from Security
+    -- Hub with a /Fail/ ruling, or collected from Config with a
+    -- /Non-compliant/ ruling.
+    noncompliantEvidenceCount :: Prelude.Maybe Prelude.Int,
+    -- | The total number of controls in the assessment.
+    totalAssessmentControlsCount :: Prelude.Maybe Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'InsightsByAssessment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentControlsCountByNoncompliantEvidence', 'insightsByAssessment_assessmentControlsCountByNoncompliantEvidence' - The number of assessment controls that collected non-compliant evidence
+-- on the @lastUpdated@ date.
+--
+-- 'compliantEvidenceCount', 'insightsByAssessment_compliantEvidenceCount' - The number of compliance check evidence that Audit Manager classified as
+-- compliant. This includes evidence that was collected from Security Hub
+-- with a /Pass/ ruling, or collected from Config with a /Compliant/
+-- ruling.
+--
+-- 'inconclusiveEvidenceCount', 'insightsByAssessment_inconclusiveEvidenceCount' - The amount of evidence without a compliance check ruling. Evidence is
+-- inconclusive if the associated control uses Security Hub or Config as a
+-- data source and you didn\'t enable those services. This is also the case
+-- if a control uses a data source that doesn’t support compliance checks
+-- (for example, manual evidence, API calls, or CloudTrail).
+--
+-- If evidence has a compliance check status of /not applicable/, it\'s
+-- classified as /inconclusive/ in @InsightsByAssessment@ data.
+--
+-- 'lastUpdated', 'insightsByAssessment_lastUpdated' - The time when the assessment insights were last updated.
+--
+-- 'noncompliantEvidenceCount', 'insightsByAssessment_noncompliantEvidenceCount' - The number of compliance check evidence that Audit Manager classified as
+-- non-compliant. This includes evidence that was collected from Security
+-- Hub with a /Fail/ ruling, or collected from Config with a
+-- /Non-compliant/ ruling.
+--
+-- 'totalAssessmentControlsCount', 'insightsByAssessment_totalAssessmentControlsCount' - The total number of controls in the assessment.
+newInsightsByAssessment ::
+  InsightsByAssessment
+newInsightsByAssessment =
+  InsightsByAssessment'
+    { assessmentControlsCountByNoncompliantEvidence =
+        Prelude.Nothing,
+      compliantEvidenceCount = Prelude.Nothing,
+      inconclusiveEvidenceCount = Prelude.Nothing,
+      lastUpdated = Prelude.Nothing,
+      noncompliantEvidenceCount = Prelude.Nothing,
+      totalAssessmentControlsCount = Prelude.Nothing
+    }
+
+-- | The number of assessment controls that collected non-compliant evidence
+-- on the @lastUpdated@ date.
+insightsByAssessment_assessmentControlsCountByNoncompliantEvidence :: Lens.Lens' InsightsByAssessment (Prelude.Maybe Prelude.Int)
+insightsByAssessment_assessmentControlsCountByNoncompliantEvidence = Lens.lens (\InsightsByAssessment' {assessmentControlsCountByNoncompliantEvidence} -> assessmentControlsCountByNoncompliantEvidence) (\s@InsightsByAssessment' {} a -> s {assessmentControlsCountByNoncompliantEvidence = a} :: InsightsByAssessment)
+
+-- | The number of compliance check evidence that Audit Manager classified as
+-- compliant. This includes evidence that was collected from Security Hub
+-- with a /Pass/ ruling, or collected from Config with a /Compliant/
+-- ruling.
+insightsByAssessment_compliantEvidenceCount :: Lens.Lens' InsightsByAssessment (Prelude.Maybe Prelude.Int)
+insightsByAssessment_compliantEvidenceCount = Lens.lens (\InsightsByAssessment' {compliantEvidenceCount} -> compliantEvidenceCount) (\s@InsightsByAssessment' {} a -> s {compliantEvidenceCount = a} :: InsightsByAssessment)
+
+-- | The amount of evidence without a compliance check ruling. Evidence is
+-- inconclusive if the associated control uses Security Hub or Config as a
+-- data source and you didn\'t enable those services. This is also the case
+-- if a control uses a data source that doesn’t support compliance checks
+-- (for example, manual evidence, API calls, or CloudTrail).
+--
+-- If evidence has a compliance check status of /not applicable/, it\'s
+-- classified as /inconclusive/ in @InsightsByAssessment@ data.
+insightsByAssessment_inconclusiveEvidenceCount :: Lens.Lens' InsightsByAssessment (Prelude.Maybe Prelude.Int)
+insightsByAssessment_inconclusiveEvidenceCount = Lens.lens (\InsightsByAssessment' {inconclusiveEvidenceCount} -> inconclusiveEvidenceCount) (\s@InsightsByAssessment' {} a -> s {inconclusiveEvidenceCount = a} :: InsightsByAssessment)
+
+-- | The time when the assessment insights were last updated.
+insightsByAssessment_lastUpdated :: Lens.Lens' InsightsByAssessment (Prelude.Maybe Prelude.UTCTime)
+insightsByAssessment_lastUpdated = Lens.lens (\InsightsByAssessment' {lastUpdated} -> lastUpdated) (\s@InsightsByAssessment' {} a -> s {lastUpdated = a} :: InsightsByAssessment) Prelude.. Lens.mapping Data._Time
+
+-- | The number of compliance check evidence that Audit Manager classified as
+-- non-compliant. This includes evidence that was collected from Security
+-- Hub with a /Fail/ ruling, or collected from Config with a
+-- /Non-compliant/ ruling.
+insightsByAssessment_noncompliantEvidenceCount :: Lens.Lens' InsightsByAssessment (Prelude.Maybe Prelude.Int)
+insightsByAssessment_noncompliantEvidenceCount = Lens.lens (\InsightsByAssessment' {noncompliantEvidenceCount} -> noncompliantEvidenceCount) (\s@InsightsByAssessment' {} a -> s {noncompliantEvidenceCount = a} :: InsightsByAssessment)
+
+-- | The total number of controls in the assessment.
+insightsByAssessment_totalAssessmentControlsCount :: Lens.Lens' InsightsByAssessment (Prelude.Maybe Prelude.Int)
+insightsByAssessment_totalAssessmentControlsCount = Lens.lens (\InsightsByAssessment' {totalAssessmentControlsCount} -> totalAssessmentControlsCount) (\s@InsightsByAssessment' {} a -> s {totalAssessmentControlsCount = a} :: InsightsByAssessment)
+
+instance Data.FromJSON InsightsByAssessment where
+  parseJSON =
+    Data.withObject
+      "InsightsByAssessment"
+      ( \x ->
+          InsightsByAssessment'
+            Prelude.<$> ( x
+                            Data..:? "assessmentControlsCountByNoncompliantEvidence"
+                        )
+            Prelude.<*> (x Data..:? "compliantEvidenceCount")
+            Prelude.<*> (x Data..:? "inconclusiveEvidenceCount")
+            Prelude.<*> (x Data..:? "lastUpdated")
+            Prelude.<*> (x Data..:? "noncompliantEvidenceCount")
+            Prelude.<*> (x Data..:? "totalAssessmentControlsCount")
+      )
+
+instance Prelude.Hashable InsightsByAssessment where
+  hashWithSalt _salt InsightsByAssessment' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentControlsCountByNoncompliantEvidence
+      `Prelude.hashWithSalt` compliantEvidenceCount
+      `Prelude.hashWithSalt` inconclusiveEvidenceCount
+      `Prelude.hashWithSalt` lastUpdated
+      `Prelude.hashWithSalt` noncompliantEvidenceCount
+      `Prelude.hashWithSalt` totalAssessmentControlsCount
+
+instance Prelude.NFData InsightsByAssessment where
+  rnf InsightsByAssessment' {..} =
+    Prelude.rnf
+      assessmentControlsCountByNoncompliantEvidence
+      `Prelude.seq` Prelude.rnf compliantEvidenceCount
+      `Prelude.seq` Prelude.rnf inconclusiveEvidenceCount
+      `Prelude.seq` Prelude.rnf lastUpdated
+      `Prelude.seq` Prelude.rnf noncompliantEvidenceCount
+      `Prelude.seq` Prelude.rnf totalAssessmentControlsCount
diff --git a/gen/Amazonka/AuditManager/Types/KeywordInputType.hs b/gen/Amazonka/AuditManager/Types/KeywordInputType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/KeywordInputType.hs
@@ -0,0 +1,66 @@
+{-# 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.AuditManager.Types.KeywordInputType
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.KeywordInputType
+  ( KeywordInputType
+      ( ..,
+        KeywordInputType_SELECT_FROM_LIST
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype KeywordInputType = KeywordInputType'
+  { fromKeywordInputType ::
+      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 KeywordInputType_SELECT_FROM_LIST :: KeywordInputType
+pattern KeywordInputType_SELECT_FROM_LIST = KeywordInputType' "SELECT_FROM_LIST"
+
+{-# COMPLETE
+  KeywordInputType_SELECT_FROM_LIST,
+  KeywordInputType'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/ManualEvidence.hs b/gen/Amazonka/AuditManager/Types/ManualEvidence.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ManualEvidence.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.ManualEvidence
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ManualEvidence 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
+
+-- | Evidence that\'s uploaded to Audit Manager manually.
+--
+-- /See:/ 'newManualEvidence' smart constructor.
+data ManualEvidence = ManualEvidence'
+  { -- | The Amazon S3 URL that points to a manual evidence object.
+    s3ResourcePath :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ManualEvidence' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 's3ResourcePath', 'manualEvidence_s3ResourcePath' - The Amazon S3 URL that points to a manual evidence object.
+newManualEvidence ::
+  ManualEvidence
+newManualEvidence =
+  ManualEvidence' {s3ResourcePath = Prelude.Nothing}
+
+-- | The Amazon S3 URL that points to a manual evidence object.
+manualEvidence_s3ResourcePath :: Lens.Lens' ManualEvidence (Prelude.Maybe Prelude.Text)
+manualEvidence_s3ResourcePath = Lens.lens (\ManualEvidence' {s3ResourcePath} -> s3ResourcePath) (\s@ManualEvidence' {} a -> s {s3ResourcePath = a} :: ManualEvidence)
+
+instance Data.FromJSON ManualEvidence where
+  parseJSON =
+    Data.withObject
+      "ManualEvidence"
+      ( \x ->
+          ManualEvidence'
+            Prelude.<$> (x Data..:? "s3ResourcePath")
+      )
+
+instance Prelude.Hashable ManualEvidence where
+  hashWithSalt _salt ManualEvidence' {..} =
+    _salt `Prelude.hashWithSalt` s3ResourcePath
+
+instance Prelude.NFData ManualEvidence where
+  rnf ManualEvidence' {..} = Prelude.rnf s3ResourcePath
+
+instance Data.ToJSON ManualEvidence where
+  toJSON ManualEvidence' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("s3ResourcePath" Data..=)
+              Prelude.<$> s3ResourcePath
+          ]
+      )
diff --git a/gen/Amazonka/AuditManager/Types/Notification.hs b/gen/Amazonka/AuditManager/Types/Notification.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/Notification.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.Notification
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.Notification where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The notification that informs a user of an update in Audit Manager. For
+-- example, this includes the notification that\'s sent when a control set
+-- is delegated for review.
+--
+-- /See:/ 'newNotification' smart constructor.
+data Notification = Notification'
+  { -- | The identifier for the assessment.
+    assessmentId :: Prelude.Maybe Prelude.Text,
+    -- | The name of the related assessment.
+    assessmentName :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the control set.
+    controlSetId :: Prelude.Maybe Prelude.Text,
+    -- | Specifies the name of the control set that the notification is about.
+    controlSetName :: Prelude.Maybe Prelude.Text,
+    -- | The description of the notification.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The time when the notification was sent.
+    eventTime :: Prelude.Maybe Data.POSIX,
+    -- | The unique identifier for the notification.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The sender of the notification.
+    source :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Notification' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'notification_assessmentId' - The identifier for the assessment.
+--
+-- 'assessmentName', 'notification_assessmentName' - The name of the related assessment.
+--
+-- 'controlSetId', 'notification_controlSetId' - The identifier for the control set.
+--
+-- 'controlSetName', 'notification_controlSetName' - Specifies the name of the control set that the notification is about.
+--
+-- 'description', 'notification_description' - The description of the notification.
+--
+-- 'eventTime', 'notification_eventTime' - The time when the notification was sent.
+--
+-- 'id', 'notification_id' - The unique identifier for the notification.
+--
+-- 'source', 'notification_source' - The sender of the notification.
+newNotification ::
+  Notification
+newNotification =
+  Notification'
+    { assessmentId = Prelude.Nothing,
+      assessmentName = Prelude.Nothing,
+      controlSetId = Prelude.Nothing,
+      controlSetName = Prelude.Nothing,
+      description = Prelude.Nothing,
+      eventTime = Prelude.Nothing,
+      id = Prelude.Nothing,
+      source = Prelude.Nothing
+    }
+
+-- | The identifier for the assessment.
+notification_assessmentId :: Lens.Lens' Notification (Prelude.Maybe Prelude.Text)
+notification_assessmentId = Lens.lens (\Notification' {assessmentId} -> assessmentId) (\s@Notification' {} a -> s {assessmentId = a} :: Notification)
+
+-- | The name of the related assessment.
+notification_assessmentName :: Lens.Lens' Notification (Prelude.Maybe Prelude.Text)
+notification_assessmentName = Lens.lens (\Notification' {assessmentName} -> assessmentName) (\s@Notification' {} a -> s {assessmentName = a} :: Notification)
+
+-- | The identifier for the control set.
+notification_controlSetId :: Lens.Lens' Notification (Prelude.Maybe Prelude.Text)
+notification_controlSetId = Lens.lens (\Notification' {controlSetId} -> controlSetId) (\s@Notification' {} a -> s {controlSetId = a} :: Notification)
+
+-- | Specifies the name of the control set that the notification is about.
+notification_controlSetName :: Lens.Lens' Notification (Prelude.Maybe Prelude.Text)
+notification_controlSetName = Lens.lens (\Notification' {controlSetName} -> controlSetName) (\s@Notification' {} a -> s {controlSetName = a} :: Notification)
+
+-- | The description of the notification.
+notification_description :: Lens.Lens' Notification (Prelude.Maybe Prelude.Text)
+notification_description = Lens.lens (\Notification' {description} -> description) (\s@Notification' {} a -> s {description = a} :: Notification)
+
+-- | The time when the notification was sent.
+notification_eventTime :: Lens.Lens' Notification (Prelude.Maybe Prelude.UTCTime)
+notification_eventTime = Lens.lens (\Notification' {eventTime} -> eventTime) (\s@Notification' {} a -> s {eventTime = a} :: Notification) Prelude.. Lens.mapping Data._Time
+
+-- | The unique identifier for the notification.
+notification_id :: Lens.Lens' Notification (Prelude.Maybe Prelude.Text)
+notification_id = Lens.lens (\Notification' {id} -> id) (\s@Notification' {} a -> s {id = a} :: Notification)
+
+-- | The sender of the notification.
+notification_source :: Lens.Lens' Notification (Prelude.Maybe Prelude.Text)
+notification_source = Lens.lens (\Notification' {source} -> source) (\s@Notification' {} a -> s {source = a} :: Notification)
+
+instance Data.FromJSON Notification where
+  parseJSON =
+    Data.withObject
+      "Notification"
+      ( \x ->
+          Notification'
+            Prelude.<$> (x Data..:? "assessmentId")
+            Prelude.<*> (x Data..:? "assessmentName")
+            Prelude.<*> (x Data..:? "controlSetId")
+            Prelude.<*> (x Data..:? "controlSetName")
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "eventTime")
+            Prelude.<*> (x Data..:? "id")
+            Prelude.<*> (x Data..:? "source")
+      )
+
+instance Prelude.Hashable Notification where
+  hashWithSalt _salt Notification' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` assessmentName
+      `Prelude.hashWithSalt` controlSetId
+      `Prelude.hashWithSalt` controlSetName
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` eventTime
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` source
+
+instance Prelude.NFData Notification where
+  rnf Notification' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf assessmentName
+      `Prelude.seq` Prelude.rnf controlSetId
+      `Prelude.seq` Prelude.rnf controlSetName
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf eventTime
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf source
diff --git a/gen/Amazonka/AuditManager/Types/ObjectTypeEnum.hs b/gen/Amazonka/AuditManager/Types/ObjectTypeEnum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ObjectTypeEnum.hs
@@ -0,0 +1,86 @@
+{-# 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.AuditManager.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.AuditManager.Types.ObjectTypeEnum
+  ( ObjectTypeEnum
+      ( ..,
+        ObjectTypeEnum_ASSESSMENT,
+        ObjectTypeEnum_ASSESSMENT_REPORT,
+        ObjectTypeEnum_CONTROL,
+        ObjectTypeEnum_CONTROL_SET,
+        ObjectTypeEnum_DELEGATION
+      ),
+  )
+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_ASSESSMENT :: ObjectTypeEnum
+pattern ObjectTypeEnum_ASSESSMENT = ObjectTypeEnum' "ASSESSMENT"
+
+pattern ObjectTypeEnum_ASSESSMENT_REPORT :: ObjectTypeEnum
+pattern ObjectTypeEnum_ASSESSMENT_REPORT = ObjectTypeEnum' "ASSESSMENT_REPORT"
+
+pattern ObjectTypeEnum_CONTROL :: ObjectTypeEnum
+pattern ObjectTypeEnum_CONTROL = ObjectTypeEnum' "CONTROL"
+
+pattern ObjectTypeEnum_CONTROL_SET :: ObjectTypeEnum
+pattern ObjectTypeEnum_CONTROL_SET = ObjectTypeEnum' "CONTROL_SET"
+
+pattern ObjectTypeEnum_DELEGATION :: ObjectTypeEnum
+pattern ObjectTypeEnum_DELEGATION = ObjectTypeEnum' "DELEGATION"
+
+{-# COMPLETE
+  ObjectTypeEnum_ASSESSMENT,
+  ObjectTypeEnum_ASSESSMENT_REPORT,
+  ObjectTypeEnum_CONTROL,
+  ObjectTypeEnum_CONTROL_SET,
+  ObjectTypeEnum_DELEGATION,
+  ObjectTypeEnum'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/Resource.hs b/gen/Amazonka/AuditManager/Types/Resource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/Resource.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.Resource
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.Resource 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 system asset that\'s evaluated in an Audit Manager assessment.
+--
+-- /See:/ 'newResource' smart constructor.
+data Resource = Resource'
+  { -- | The Amazon Resource Name (ARN) for the resource.
+    arn :: Prelude.Maybe Prelude.Text,
+    -- | The evaluation status for a resource that was assessed when collecting
+    -- compliance check evidence.
+    --
+    -- -   Audit Manager classes the resource as non-compliant if Security Hub
+    --     reports a /Fail/ result, or if Config reports a /Non-compliant/
+    --     result.
+    --
+    -- -   Audit Manager classes the resource as compliant if Security Hub
+    --     reports a /Pass/ result, or if Config reports a /Compliant/ result.
+    --
+    -- -   If a compliance check isn\'t available or applicable, then no
+    --     compliance evaluation can be made for that resource. This is the
+    --     case if a resource assessment uses Config or Security Hub as the
+    --     underlying data source type, but those services aren\'t enabled.
+    --     This is also the case if the resource assessment uses an underlying
+    --     data source type that doesn\'t support compliance checks (such as
+    --     manual evidence, Amazon Web Services API calls, or CloudTrail).
+    complianceCheck :: Prelude.Maybe Prelude.Text,
+    -- | The value of the resource.
+    value :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Resource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'resource_arn' - The Amazon Resource Name (ARN) for the resource.
+--
+-- 'complianceCheck', 'resource_complianceCheck' - The evaluation status for a resource that was assessed when collecting
+-- compliance check evidence.
+--
+-- -   Audit Manager classes the resource as non-compliant if Security Hub
+--     reports a /Fail/ result, or if Config reports a /Non-compliant/
+--     result.
+--
+-- -   Audit Manager classes the resource as compliant if Security Hub
+--     reports a /Pass/ result, or if Config reports a /Compliant/ result.
+--
+-- -   If a compliance check isn\'t available or applicable, then no
+--     compliance evaluation can be made for that resource. This is the
+--     case if a resource assessment uses Config or Security Hub as the
+--     underlying data source type, but those services aren\'t enabled.
+--     This is also the case if the resource assessment uses an underlying
+--     data source type that doesn\'t support compliance checks (such as
+--     manual evidence, Amazon Web Services API calls, or CloudTrail).
+--
+-- 'value', 'resource_value' - The value of the resource.
+newResource ::
+  Resource
+newResource =
+  Resource'
+    { arn = Prelude.Nothing,
+      complianceCheck = Prelude.Nothing,
+      value = Prelude.Nothing
+    }
+
+-- | The Amazon Resource Name (ARN) for the resource.
+resource_arn :: Lens.Lens' Resource (Prelude.Maybe Prelude.Text)
+resource_arn = Lens.lens (\Resource' {arn} -> arn) (\s@Resource' {} a -> s {arn = a} :: Resource)
+
+-- | The evaluation status for a resource that was assessed when collecting
+-- compliance check evidence.
+--
+-- -   Audit Manager classes the resource as non-compliant if Security Hub
+--     reports a /Fail/ result, or if Config reports a /Non-compliant/
+--     result.
+--
+-- -   Audit Manager classes the resource as compliant if Security Hub
+--     reports a /Pass/ result, or if Config reports a /Compliant/ result.
+--
+-- -   If a compliance check isn\'t available or applicable, then no
+--     compliance evaluation can be made for that resource. This is the
+--     case if a resource assessment uses Config or Security Hub as the
+--     underlying data source type, but those services aren\'t enabled.
+--     This is also the case if the resource assessment uses an underlying
+--     data source type that doesn\'t support compliance checks (such as
+--     manual evidence, Amazon Web Services API calls, or CloudTrail).
+resource_complianceCheck :: Lens.Lens' Resource (Prelude.Maybe Prelude.Text)
+resource_complianceCheck = Lens.lens (\Resource' {complianceCheck} -> complianceCheck) (\s@Resource' {} a -> s {complianceCheck = a} :: Resource)
+
+-- | The value of the resource.
+resource_value :: Lens.Lens' Resource (Prelude.Maybe Prelude.Text)
+resource_value = Lens.lens (\Resource' {value} -> value) (\s@Resource' {} a -> s {value = a} :: Resource)
+
+instance Data.FromJSON Resource where
+  parseJSON =
+    Data.withObject
+      "Resource"
+      ( \x ->
+          Resource'
+            Prelude.<$> (x Data..:? "arn")
+            Prelude.<*> (x Data..:? "complianceCheck")
+            Prelude.<*> (x Data..:? "value")
+      )
+
+instance Prelude.Hashable Resource where
+  hashWithSalt _salt Resource' {..} =
+    _salt
+      `Prelude.hashWithSalt` arn
+      `Prelude.hashWithSalt` complianceCheck
+      `Prelude.hashWithSalt` value
+
+instance Prelude.NFData Resource where
+  rnf Resource' {..} =
+    Prelude.rnf arn
+      `Prelude.seq` Prelude.rnf complianceCheck
+      `Prelude.seq` Prelude.rnf value
diff --git a/gen/Amazonka/AuditManager/Types/Role.hs b/gen/Amazonka/AuditManager/Types/Role.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/Role.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.AuditManager.Types.Role
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.Role where
+
+import Amazonka.AuditManager.Types.RoleType
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The wrapper that contains the Audit Manager role information of the
+-- current user. This includes the role type and IAM Amazon Resource Name
+-- (ARN).
+--
+-- /See:/ 'newRole' smart constructor.
+data Role = Role'
+  { -- | The type of customer persona.
+    --
+    -- In @CreateAssessment@, @roleType@ can only be @PROCESS_OWNER@.
+    --
+    -- In @UpdateSettings@, @roleType@ can only be @PROCESS_OWNER@.
+    --
+    -- In @BatchCreateDelegationByAssessment@, @roleType@ can only be
+    -- @RESOURCE_OWNER@.
+    roleType :: RoleType,
+    -- | The Amazon Resource Name (ARN) of the IAM role.
+    roleArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Role' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'roleType', 'role_roleType' - The type of customer persona.
+--
+-- In @CreateAssessment@, @roleType@ can only be @PROCESS_OWNER@.
+--
+-- In @UpdateSettings@, @roleType@ can only be @PROCESS_OWNER@.
+--
+-- In @BatchCreateDelegationByAssessment@, @roleType@ can only be
+-- @RESOURCE_OWNER@.
+--
+-- 'roleArn', 'role_roleArn' - The Amazon Resource Name (ARN) of the IAM role.
+newRole ::
+  -- | 'roleType'
+  RoleType ->
+  -- | 'roleArn'
+  Prelude.Text ->
+  Role
+newRole pRoleType_ pRoleArn_ =
+  Role' {roleType = pRoleType_, roleArn = pRoleArn_}
+
+-- | The type of customer persona.
+--
+-- In @CreateAssessment@, @roleType@ can only be @PROCESS_OWNER@.
+--
+-- In @UpdateSettings@, @roleType@ can only be @PROCESS_OWNER@.
+--
+-- In @BatchCreateDelegationByAssessment@, @roleType@ can only be
+-- @RESOURCE_OWNER@.
+role_roleType :: Lens.Lens' Role RoleType
+role_roleType = Lens.lens (\Role' {roleType} -> roleType) (\s@Role' {} a -> s {roleType = a} :: Role)
+
+-- | The Amazon Resource Name (ARN) of the IAM role.
+role_roleArn :: Lens.Lens' Role Prelude.Text
+role_roleArn = Lens.lens (\Role' {roleArn} -> roleArn) (\s@Role' {} a -> s {roleArn = a} :: Role)
+
+instance Data.FromJSON Role where
+  parseJSON =
+    Data.withObject
+      "Role"
+      ( \x ->
+          Role'
+            Prelude.<$> (x Data..: "roleType")
+            Prelude.<*> (x Data..: "roleArn")
+      )
+
+instance Prelude.Hashable Role where
+  hashWithSalt _salt Role' {..} =
+    _salt
+      `Prelude.hashWithSalt` roleType
+      `Prelude.hashWithSalt` roleArn
+
+instance Prelude.NFData Role where
+  rnf Role' {..} =
+    Prelude.rnf roleType
+      `Prelude.seq` Prelude.rnf roleArn
+
+instance Data.ToJSON Role where
+  toJSON Role' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("roleType" Data..= roleType),
+            Prelude.Just ("roleArn" Data..= roleArn)
+          ]
+      )
diff --git a/gen/Amazonka/AuditManager/Types/RoleType.hs b/gen/Amazonka/AuditManager/Types/RoleType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/RoleType.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.AuditManager.Types.RoleType
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.RoleType
+  ( RoleType
+      ( ..,
+        RoleType_PROCESS_OWNER,
+        RoleType_RESOURCE_OWNER
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype RoleType = RoleType'
+  { fromRoleType ::
+      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 RoleType_PROCESS_OWNER :: RoleType
+pattern RoleType_PROCESS_OWNER = RoleType' "PROCESS_OWNER"
+
+pattern RoleType_RESOURCE_OWNER :: RoleType
+pattern RoleType_RESOURCE_OWNER = RoleType' "RESOURCE_OWNER"
+
+{-# COMPLETE
+  RoleType_PROCESS_OWNER,
+  RoleType_RESOURCE_OWNER,
+  RoleType'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/Scope.hs b/gen/Amazonka/AuditManager/Types/Scope.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/Scope.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.AuditManager.Types.Scope
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.Scope where
+
+import Amazonka.AuditManager.Types.AWSAccount
+import Amazonka.AuditManager.Types.AWSService
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The wrapper that contains the Amazon Web Services accounts and services
+-- that are in scope for the assessment.
+--
+-- /See:/ 'newScope' smart constructor.
+data Scope = Scope'
+  { -- | The Amazon Web Services accounts that are included in the scope of the
+    -- assessment.
+    awsAccounts :: Prelude.Maybe [AWSAccount],
+    -- | The Amazon Web Services services that are included in the scope of the
+    -- assessment.
+    awsServices :: Prelude.Maybe [AWSService]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Scope' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'awsAccounts', 'scope_awsAccounts' - The Amazon Web Services accounts that are included in the scope of the
+-- assessment.
+--
+-- 'awsServices', 'scope_awsServices' - The Amazon Web Services services that are included in the scope of the
+-- assessment.
+newScope ::
+  Scope
+newScope =
+  Scope'
+    { awsAccounts = Prelude.Nothing,
+      awsServices = Prelude.Nothing
+    }
+
+-- | The Amazon Web Services accounts that are included in the scope of the
+-- assessment.
+scope_awsAccounts :: Lens.Lens' Scope (Prelude.Maybe [AWSAccount])
+scope_awsAccounts = Lens.lens (\Scope' {awsAccounts} -> awsAccounts) (\s@Scope' {} a -> s {awsAccounts = a} :: Scope) Prelude.. Lens.mapping Lens.coerced
+
+-- | The Amazon Web Services services that are included in the scope of the
+-- assessment.
+scope_awsServices :: Lens.Lens' Scope (Prelude.Maybe [AWSService])
+scope_awsServices = Lens.lens (\Scope' {awsServices} -> awsServices) (\s@Scope' {} a -> s {awsServices = a} :: Scope) Prelude.. Lens.mapping Lens.coerced
+
+instance Data.FromJSON Scope where
+  parseJSON =
+    Data.withObject
+      "Scope"
+      ( \x ->
+          Scope'
+            Prelude.<$> (x Data..:? "awsAccounts" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "awsServices" Data..!= Prelude.mempty)
+      )
+
+instance Prelude.Hashable Scope where
+  hashWithSalt _salt Scope' {..} =
+    _salt
+      `Prelude.hashWithSalt` awsAccounts
+      `Prelude.hashWithSalt` awsServices
+
+instance Prelude.NFData Scope where
+  rnf Scope' {..} =
+    Prelude.rnf awsAccounts
+      `Prelude.seq` Prelude.rnf awsServices
+
+instance Data.ToJSON Scope where
+  toJSON Scope' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("awsAccounts" Data..=) Prelude.<$> awsAccounts,
+            ("awsServices" Data..=) Prelude.<$> awsServices
+          ]
+      )
diff --git a/gen/Amazonka/AuditManager/Types/ServiceMetadata.hs b/gen/Amazonka/AuditManager/Types/ServiceMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ServiceMetadata.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.AuditManager.Types.ServiceMetadata
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ServiceMetadata where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The metadata that\'s associated with the Amazon Web Service.
+--
+-- /See:/ 'newServiceMetadata' smart constructor.
+data ServiceMetadata = ServiceMetadata'
+  { -- | The category that the Amazon Web Service belongs to, such as compute,
+    -- storage, or database.
+    category :: Prelude.Maybe Prelude.Text,
+    -- | The description of the Amazon Web Service.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The display name of the Amazon Web Service.
+    displayName :: Prelude.Maybe Prelude.Text,
+    -- | The name of the Amazon Web Service.
+    name :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ServiceMetadata' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'category', 'serviceMetadata_category' - The category that the Amazon Web Service belongs to, such as compute,
+-- storage, or database.
+--
+-- 'description', 'serviceMetadata_description' - The description of the Amazon Web Service.
+--
+-- 'displayName', 'serviceMetadata_displayName' - The display name of the Amazon Web Service.
+--
+-- 'name', 'serviceMetadata_name' - The name of the Amazon Web Service.
+newServiceMetadata ::
+  ServiceMetadata
+newServiceMetadata =
+  ServiceMetadata'
+    { category = Prelude.Nothing,
+      description = Prelude.Nothing,
+      displayName = Prelude.Nothing,
+      name = Prelude.Nothing
+    }
+
+-- | The category that the Amazon Web Service belongs to, such as compute,
+-- storage, or database.
+serviceMetadata_category :: Lens.Lens' ServiceMetadata (Prelude.Maybe Prelude.Text)
+serviceMetadata_category = Lens.lens (\ServiceMetadata' {category} -> category) (\s@ServiceMetadata' {} a -> s {category = a} :: ServiceMetadata)
+
+-- | The description of the Amazon Web Service.
+serviceMetadata_description :: Lens.Lens' ServiceMetadata (Prelude.Maybe Prelude.Text)
+serviceMetadata_description = Lens.lens (\ServiceMetadata' {description} -> description) (\s@ServiceMetadata' {} a -> s {description = a} :: ServiceMetadata)
+
+-- | The display name of the Amazon Web Service.
+serviceMetadata_displayName :: Lens.Lens' ServiceMetadata (Prelude.Maybe Prelude.Text)
+serviceMetadata_displayName = Lens.lens (\ServiceMetadata' {displayName} -> displayName) (\s@ServiceMetadata' {} a -> s {displayName = a} :: ServiceMetadata)
+
+-- | The name of the Amazon Web Service.
+serviceMetadata_name :: Lens.Lens' ServiceMetadata (Prelude.Maybe Prelude.Text)
+serviceMetadata_name = Lens.lens (\ServiceMetadata' {name} -> name) (\s@ServiceMetadata' {} a -> s {name = a} :: ServiceMetadata)
+
+instance Data.FromJSON ServiceMetadata where
+  parseJSON =
+    Data.withObject
+      "ServiceMetadata"
+      ( \x ->
+          ServiceMetadata'
+            Prelude.<$> (x Data..:? "category")
+            Prelude.<*> (x Data..:? "description")
+            Prelude.<*> (x Data..:? "displayName")
+            Prelude.<*> (x Data..:? "name")
+      )
+
+instance Prelude.Hashable ServiceMetadata where
+  hashWithSalt _salt ServiceMetadata' {..} =
+    _salt
+      `Prelude.hashWithSalt` category
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` displayName
+      `Prelude.hashWithSalt` name
+
+instance Prelude.NFData ServiceMetadata where
+  rnf ServiceMetadata' {..} =
+    Prelude.rnf category
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf displayName
+      `Prelude.seq` Prelude.rnf name
diff --git a/gen/Amazonka/AuditManager/Types/SettingAttribute.hs b/gen/Amazonka/AuditManager/Types/SettingAttribute.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/SettingAttribute.hs
@@ -0,0 +1,96 @@
+{-# 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.AuditManager.Types.SettingAttribute
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.SettingAttribute
+  ( SettingAttribute
+      ( ..,
+        SettingAttribute_ALL,
+        SettingAttribute_DEFAULT_ASSESSMENT_REPORTS_DESTINATION,
+        SettingAttribute_DEFAULT_PROCESS_OWNERS,
+        SettingAttribute_DEREGISTRATION_POLICY,
+        SettingAttribute_EVIDENCE_FINDER_ENABLEMENT,
+        SettingAttribute_IS_AWS_ORG_ENABLED,
+        SettingAttribute_SNS_TOPIC
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype SettingAttribute = SettingAttribute'
+  { fromSettingAttribute ::
+      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 SettingAttribute_ALL :: SettingAttribute
+pattern SettingAttribute_ALL = SettingAttribute' "ALL"
+
+pattern SettingAttribute_DEFAULT_ASSESSMENT_REPORTS_DESTINATION :: SettingAttribute
+pattern SettingAttribute_DEFAULT_ASSESSMENT_REPORTS_DESTINATION = SettingAttribute' "DEFAULT_ASSESSMENT_REPORTS_DESTINATION"
+
+pattern SettingAttribute_DEFAULT_PROCESS_OWNERS :: SettingAttribute
+pattern SettingAttribute_DEFAULT_PROCESS_OWNERS = SettingAttribute' "DEFAULT_PROCESS_OWNERS"
+
+pattern SettingAttribute_DEREGISTRATION_POLICY :: SettingAttribute
+pattern SettingAttribute_DEREGISTRATION_POLICY = SettingAttribute' "DEREGISTRATION_POLICY"
+
+pattern SettingAttribute_EVIDENCE_FINDER_ENABLEMENT :: SettingAttribute
+pattern SettingAttribute_EVIDENCE_FINDER_ENABLEMENT = SettingAttribute' "EVIDENCE_FINDER_ENABLEMENT"
+
+pattern SettingAttribute_IS_AWS_ORG_ENABLED :: SettingAttribute
+pattern SettingAttribute_IS_AWS_ORG_ENABLED = SettingAttribute' "IS_AWS_ORG_ENABLED"
+
+pattern SettingAttribute_SNS_TOPIC :: SettingAttribute
+pattern SettingAttribute_SNS_TOPIC = SettingAttribute' "SNS_TOPIC"
+
+{-# COMPLETE
+  SettingAttribute_ALL,
+  SettingAttribute_DEFAULT_ASSESSMENT_REPORTS_DESTINATION,
+  SettingAttribute_DEFAULT_PROCESS_OWNERS,
+  SettingAttribute_DEREGISTRATION_POLICY,
+  SettingAttribute_EVIDENCE_FINDER_ENABLEMENT,
+  SettingAttribute_IS_AWS_ORG_ENABLED,
+  SettingAttribute_SNS_TOPIC,
+  SettingAttribute'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/Settings.hs b/gen/Amazonka/AuditManager/Types/Settings.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/Settings.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.Settings
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.Settings where
+
+import Amazonka.AuditManager.Types.AssessmentReportsDestination
+import Amazonka.AuditManager.Types.DeregistrationPolicy
+import Amazonka.AuditManager.Types.EvidenceFinderEnablement
+import Amazonka.AuditManager.Types.Role
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The settings object that holds all supported Audit Manager settings.
+--
+-- /See:/ 'newSettings' smart constructor.
+data Settings = Settings'
+  { -- | The default storage destination for assessment reports.
+    defaultAssessmentReportsDestination :: Prelude.Maybe AssessmentReportsDestination,
+    -- | The designated default audit owners.
+    defaultProcessOwners :: Prelude.Maybe [Role],
+    -- | The deregistration policy for your Audit Manager data. You can use this
+    -- attribute to determine how your data is handled when you deregister
+    -- Audit Manager.
+    deregistrationPolicy :: Prelude.Maybe DeregistrationPolicy,
+    -- | The current evidence finder status and event data store details.
+    evidenceFinderEnablement :: Prelude.Maybe EvidenceFinderEnablement,
+    -- | Specifies whether Organizations is enabled.
+    isAwsOrgEnabled :: Prelude.Maybe Prelude.Bool,
+    -- | The KMS key details.
+    kmsKey :: Prelude.Maybe Prelude.Text,
+    -- | The designated Amazon Simple Notification Service (Amazon SNS) topic.
+    snsTopic :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Settings' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'defaultAssessmentReportsDestination', 'settings_defaultAssessmentReportsDestination' - The default storage destination for assessment reports.
+--
+-- 'defaultProcessOwners', 'settings_defaultProcessOwners' - The designated default audit owners.
+--
+-- 'deregistrationPolicy', 'settings_deregistrationPolicy' - The deregistration policy for your Audit Manager data. You can use this
+-- attribute to determine how your data is handled when you deregister
+-- Audit Manager.
+--
+-- 'evidenceFinderEnablement', 'settings_evidenceFinderEnablement' - The current evidence finder status and event data store details.
+--
+-- 'isAwsOrgEnabled', 'settings_isAwsOrgEnabled' - Specifies whether Organizations is enabled.
+--
+-- 'kmsKey', 'settings_kmsKey' - The KMS key details.
+--
+-- 'snsTopic', 'settings_snsTopic' - The designated Amazon Simple Notification Service (Amazon SNS) topic.
+newSettings ::
+  Settings
+newSettings =
+  Settings'
+    { defaultAssessmentReportsDestination =
+        Prelude.Nothing,
+      defaultProcessOwners = Prelude.Nothing,
+      deregistrationPolicy = Prelude.Nothing,
+      evidenceFinderEnablement = Prelude.Nothing,
+      isAwsOrgEnabled = Prelude.Nothing,
+      kmsKey = Prelude.Nothing,
+      snsTopic = Prelude.Nothing
+    }
+
+-- | The default storage destination for assessment reports.
+settings_defaultAssessmentReportsDestination :: Lens.Lens' Settings (Prelude.Maybe AssessmentReportsDestination)
+settings_defaultAssessmentReportsDestination = Lens.lens (\Settings' {defaultAssessmentReportsDestination} -> defaultAssessmentReportsDestination) (\s@Settings' {} a -> s {defaultAssessmentReportsDestination = a} :: Settings)
+
+-- | The designated default audit owners.
+settings_defaultProcessOwners :: Lens.Lens' Settings (Prelude.Maybe [Role])
+settings_defaultProcessOwners = Lens.lens (\Settings' {defaultProcessOwners} -> defaultProcessOwners) (\s@Settings' {} a -> s {defaultProcessOwners = a} :: Settings) Prelude.. Lens.mapping Lens.coerced
+
+-- | The deregistration policy for your Audit Manager data. You can use this
+-- attribute to determine how your data is handled when you deregister
+-- Audit Manager.
+settings_deregistrationPolicy :: Lens.Lens' Settings (Prelude.Maybe DeregistrationPolicy)
+settings_deregistrationPolicy = Lens.lens (\Settings' {deregistrationPolicy} -> deregistrationPolicy) (\s@Settings' {} a -> s {deregistrationPolicy = a} :: Settings)
+
+-- | The current evidence finder status and event data store details.
+settings_evidenceFinderEnablement :: Lens.Lens' Settings (Prelude.Maybe EvidenceFinderEnablement)
+settings_evidenceFinderEnablement = Lens.lens (\Settings' {evidenceFinderEnablement} -> evidenceFinderEnablement) (\s@Settings' {} a -> s {evidenceFinderEnablement = a} :: Settings)
+
+-- | Specifies whether Organizations is enabled.
+settings_isAwsOrgEnabled :: Lens.Lens' Settings (Prelude.Maybe Prelude.Bool)
+settings_isAwsOrgEnabled = Lens.lens (\Settings' {isAwsOrgEnabled} -> isAwsOrgEnabled) (\s@Settings' {} a -> s {isAwsOrgEnabled = a} :: Settings)
+
+-- | The KMS key details.
+settings_kmsKey :: Lens.Lens' Settings (Prelude.Maybe Prelude.Text)
+settings_kmsKey = Lens.lens (\Settings' {kmsKey} -> kmsKey) (\s@Settings' {} a -> s {kmsKey = a} :: Settings)
+
+-- | The designated Amazon Simple Notification Service (Amazon SNS) topic.
+settings_snsTopic :: Lens.Lens' Settings (Prelude.Maybe Prelude.Text)
+settings_snsTopic = Lens.lens (\Settings' {snsTopic} -> snsTopic) (\s@Settings' {} a -> s {snsTopic = a} :: Settings)
+
+instance Data.FromJSON Settings where
+  parseJSON =
+    Data.withObject
+      "Settings"
+      ( \x ->
+          Settings'
+            Prelude.<$> (x Data..:? "defaultAssessmentReportsDestination")
+            Prelude.<*> ( x
+                            Data..:? "defaultProcessOwners"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "deregistrationPolicy")
+            Prelude.<*> (x Data..:? "evidenceFinderEnablement")
+            Prelude.<*> (x Data..:? "isAwsOrgEnabled")
+            Prelude.<*> (x Data..:? "kmsKey")
+            Prelude.<*> (x Data..:? "snsTopic")
+      )
+
+instance Prelude.Hashable Settings where
+  hashWithSalt _salt Settings' {..} =
+    _salt
+      `Prelude.hashWithSalt` defaultAssessmentReportsDestination
+      `Prelude.hashWithSalt` defaultProcessOwners
+      `Prelude.hashWithSalt` deregistrationPolicy
+      `Prelude.hashWithSalt` evidenceFinderEnablement
+      `Prelude.hashWithSalt` isAwsOrgEnabled
+      `Prelude.hashWithSalt` kmsKey
+      `Prelude.hashWithSalt` snsTopic
+
+instance Prelude.NFData Settings where
+  rnf Settings' {..} =
+    Prelude.rnf defaultAssessmentReportsDestination
+      `Prelude.seq` Prelude.rnf defaultProcessOwners
+      `Prelude.seq` Prelude.rnf deregistrationPolicy
+      `Prelude.seq` Prelude.rnf evidenceFinderEnablement
+      `Prelude.seq` Prelude.rnf isAwsOrgEnabled
+      `Prelude.seq` Prelude.rnf kmsKey
+      `Prelude.seq` Prelude.rnf snsTopic
diff --git a/gen/Amazonka/AuditManager/Types/ShareRequestAction.hs b/gen/Amazonka/AuditManager/Types/ShareRequestAction.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ShareRequestAction.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.AuditManager.Types.ShareRequestAction
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ShareRequestAction
+  ( ShareRequestAction
+      ( ..,
+        ShareRequestAction_ACCEPT,
+        ShareRequestAction_DECLINE,
+        ShareRequestAction_REVOKE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ShareRequestAction = ShareRequestAction'
+  { fromShareRequestAction ::
+      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 ShareRequestAction_ACCEPT :: ShareRequestAction
+pattern ShareRequestAction_ACCEPT = ShareRequestAction' "ACCEPT"
+
+pattern ShareRequestAction_DECLINE :: ShareRequestAction
+pattern ShareRequestAction_DECLINE = ShareRequestAction' "DECLINE"
+
+pattern ShareRequestAction_REVOKE :: ShareRequestAction
+pattern ShareRequestAction_REVOKE = ShareRequestAction' "REVOKE"
+
+{-# COMPLETE
+  ShareRequestAction_ACCEPT,
+  ShareRequestAction_DECLINE,
+  ShareRequestAction_REVOKE,
+  ShareRequestAction'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/ShareRequestStatus.hs b/gen/Amazonka/AuditManager/Types/ShareRequestStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ShareRequestStatus.hs
@@ -0,0 +1,101 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.ShareRequestStatus
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ShareRequestStatus
+  ( ShareRequestStatus
+      ( ..,
+        ShareRequestStatus_ACTIVE,
+        ShareRequestStatus_DECLINED,
+        ShareRequestStatus_EXPIRED,
+        ShareRequestStatus_EXPIRING,
+        ShareRequestStatus_FAILED,
+        ShareRequestStatus_REPLICATING,
+        ShareRequestStatus_REVOKED,
+        ShareRequestStatus_SHARED
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ShareRequestStatus = ShareRequestStatus'
+  { fromShareRequestStatus ::
+      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 ShareRequestStatus_ACTIVE :: ShareRequestStatus
+pattern ShareRequestStatus_ACTIVE = ShareRequestStatus' "ACTIVE"
+
+pattern ShareRequestStatus_DECLINED :: ShareRequestStatus
+pattern ShareRequestStatus_DECLINED = ShareRequestStatus' "DECLINED"
+
+pattern ShareRequestStatus_EXPIRED :: ShareRequestStatus
+pattern ShareRequestStatus_EXPIRED = ShareRequestStatus' "EXPIRED"
+
+pattern ShareRequestStatus_EXPIRING :: ShareRequestStatus
+pattern ShareRequestStatus_EXPIRING = ShareRequestStatus' "EXPIRING"
+
+pattern ShareRequestStatus_FAILED :: ShareRequestStatus
+pattern ShareRequestStatus_FAILED = ShareRequestStatus' "FAILED"
+
+pattern ShareRequestStatus_REPLICATING :: ShareRequestStatus
+pattern ShareRequestStatus_REPLICATING = ShareRequestStatus' "REPLICATING"
+
+pattern ShareRequestStatus_REVOKED :: ShareRequestStatus
+pattern ShareRequestStatus_REVOKED = ShareRequestStatus' "REVOKED"
+
+pattern ShareRequestStatus_SHARED :: ShareRequestStatus
+pattern ShareRequestStatus_SHARED = ShareRequestStatus' "SHARED"
+
+{-# COMPLETE
+  ShareRequestStatus_ACTIVE,
+  ShareRequestStatus_DECLINED,
+  ShareRequestStatus_EXPIRED,
+  ShareRequestStatus_EXPIRING,
+  ShareRequestStatus_FAILED,
+  ShareRequestStatus_REPLICATING,
+  ShareRequestStatus_REVOKED,
+  ShareRequestStatus_SHARED,
+  ShareRequestStatus'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/ShareRequestType.hs b/gen/Amazonka/AuditManager/Types/ShareRequestType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/ShareRequestType.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.AuditManager.Types.ShareRequestType
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.ShareRequestType
+  ( ShareRequestType
+      ( ..,
+        ShareRequestType_RECEIVED,
+        ShareRequestType_SENT
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype ShareRequestType = ShareRequestType'
+  { fromShareRequestType ::
+      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 ShareRequestType_RECEIVED :: ShareRequestType
+pattern ShareRequestType_RECEIVED = ShareRequestType' "RECEIVED"
+
+pattern ShareRequestType_SENT :: ShareRequestType
+pattern ShareRequestType_SENT = ShareRequestType' "SENT"
+
+{-# COMPLETE
+  ShareRequestType_RECEIVED,
+  ShareRequestType_SENT,
+  ShareRequestType'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/SourceFrequency.hs b/gen/Amazonka/AuditManager/Types/SourceFrequency.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/SourceFrequency.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.AuditManager.Types.SourceFrequency
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.SourceFrequency
+  ( SourceFrequency
+      ( ..,
+        SourceFrequency_DAILY,
+        SourceFrequency_MONTHLY,
+        SourceFrequency_WEEKLY
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype SourceFrequency = SourceFrequency'
+  { fromSourceFrequency ::
+      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 SourceFrequency_DAILY :: SourceFrequency
+pattern SourceFrequency_DAILY = SourceFrequency' "DAILY"
+
+pattern SourceFrequency_MONTHLY :: SourceFrequency
+pattern SourceFrequency_MONTHLY = SourceFrequency' "MONTHLY"
+
+pattern SourceFrequency_WEEKLY :: SourceFrequency
+pattern SourceFrequency_WEEKLY = SourceFrequency' "WEEKLY"
+
+{-# COMPLETE
+  SourceFrequency_DAILY,
+  SourceFrequency_MONTHLY,
+  SourceFrequency_WEEKLY,
+  SourceFrequency'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/SourceKeyword.hs b/gen/Amazonka/AuditManager/Types/SourceKeyword.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/SourceKeyword.hs
@@ -0,0 +1,237 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.SourceKeyword
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.SourceKeyword where
+
+import Amazonka.AuditManager.Types.KeywordInputType
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The keyword to search for in CloudTrail logs, Config rules, Security Hub
+-- checks, and Amazon Web Services API names.
+--
+-- To learn more about the supported keywords that you can use when mapping
+-- a control data source, see the following pages in the /Audit Manager
+-- User Guide/:
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-ash.html Config rules supported by Audit Manager>
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-config.html Security Hub controls supported by Audit Manager>
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-api.html API calls supported by Audit Manager>
+--
+-- -   <https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-cloudtrail.html CloudTrail event names supported by Audit Manager>
+--
+-- /See:/ 'newSourceKeyword' smart constructor.
+data SourceKeyword = SourceKeyword'
+  { -- | The input method for the keyword.
+    keywordInputType :: Prelude.Maybe KeywordInputType,
+    -- | The value of the keyword that\'s used when mapping a control data
+    -- source. For example, this can be a CloudTrail event name, a rule name
+    -- for Config, a Security Hub control, or the name of an Amazon Web
+    -- Services API call.
+    --
+    -- If you’re mapping a data source to a rule in Config, the @keywordValue@
+    -- that you specify depends on the type of rule:
+    --
+    -- -   For
+    --     <https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html managed rules>,
+    --     you can use the rule identifier as the @keywordValue@. You can find
+    --     the rule identifier from the
+    --     <https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html list of Config managed rules>.
+    --
+    --     -   Managed rule name:
+    --         <https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-acl-prohibited.html s3-bucket-acl-prohibited>
+    --
+    --         @keywordValue@: @S3_BUCKET_ACL_PROHIBITED@
+    --
+    -- -   For
+    --     <https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html custom rules>,
+    --     you form the @keywordValue@ by adding the @Custom_@ prefix to the
+    --     rule name. This prefix distinguishes the rule from a managed rule.
+    --
+    --     -   Custom rule name: my-custom-config-rule
+    --
+    --         @keywordValue@: @Custom_my-custom-config-rule@
+    --
+    -- -   For
+    --     <https://docs.aws.amazon.com/config/latest/developerguide/service-linked-awsconfig-rules.html service-linked rules>,
+    --     you form the @keywordValue@ by adding the @Custom_@ prefix to the
+    --     rule name. In addition, you remove the suffix ID that appears at the
+    --     end of the rule name.
+    --
+    --     -   Service-linked rule name:
+    --         CustomRuleForAccount-conformance-pack-szsm1uv0w
+    --
+    --         @keywordValue@: @Custom_CustomRuleForAccount-conformance-pack@
+    --
+    --     -   Service-linked rule name:
+    --         OrgConfigRule-s3-bucket-versioning-enabled-dbgzf8ba
+    --
+    --         @keywordValue@:
+    --         @Custom_OrgConfigRule-s3-bucket-versioning-enabled@
+    keywordValue :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'SourceKeyword' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'keywordInputType', 'sourceKeyword_keywordInputType' - The input method for the keyword.
+--
+-- 'keywordValue', 'sourceKeyword_keywordValue' - The value of the keyword that\'s used when mapping a control data
+-- source. For example, this can be a CloudTrail event name, a rule name
+-- for Config, a Security Hub control, or the name of an Amazon Web
+-- Services API call.
+--
+-- If you’re mapping a data source to a rule in Config, the @keywordValue@
+-- that you specify depends on the type of rule:
+--
+-- -   For
+--     <https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html managed rules>,
+--     you can use the rule identifier as the @keywordValue@. You can find
+--     the rule identifier from the
+--     <https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html list of Config managed rules>.
+--
+--     -   Managed rule name:
+--         <https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-acl-prohibited.html s3-bucket-acl-prohibited>
+--
+--         @keywordValue@: @S3_BUCKET_ACL_PROHIBITED@
+--
+-- -   For
+--     <https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html custom rules>,
+--     you form the @keywordValue@ by adding the @Custom_@ prefix to the
+--     rule name. This prefix distinguishes the rule from a managed rule.
+--
+--     -   Custom rule name: my-custom-config-rule
+--
+--         @keywordValue@: @Custom_my-custom-config-rule@
+--
+-- -   For
+--     <https://docs.aws.amazon.com/config/latest/developerguide/service-linked-awsconfig-rules.html service-linked rules>,
+--     you form the @keywordValue@ by adding the @Custom_@ prefix to the
+--     rule name. In addition, you remove the suffix ID that appears at the
+--     end of the rule name.
+--
+--     -   Service-linked rule name:
+--         CustomRuleForAccount-conformance-pack-szsm1uv0w
+--
+--         @keywordValue@: @Custom_CustomRuleForAccount-conformance-pack@
+--
+--     -   Service-linked rule name:
+--         OrgConfigRule-s3-bucket-versioning-enabled-dbgzf8ba
+--
+--         @keywordValue@:
+--         @Custom_OrgConfigRule-s3-bucket-versioning-enabled@
+newSourceKeyword ::
+  SourceKeyword
+newSourceKeyword =
+  SourceKeyword'
+    { keywordInputType = Prelude.Nothing,
+      keywordValue = Prelude.Nothing
+    }
+
+-- | The input method for the keyword.
+sourceKeyword_keywordInputType :: Lens.Lens' SourceKeyword (Prelude.Maybe KeywordInputType)
+sourceKeyword_keywordInputType = Lens.lens (\SourceKeyword' {keywordInputType} -> keywordInputType) (\s@SourceKeyword' {} a -> s {keywordInputType = a} :: SourceKeyword)
+
+-- | The value of the keyword that\'s used when mapping a control data
+-- source. For example, this can be a CloudTrail event name, a rule name
+-- for Config, a Security Hub control, or the name of an Amazon Web
+-- Services API call.
+--
+-- If you’re mapping a data source to a rule in Config, the @keywordValue@
+-- that you specify depends on the type of rule:
+--
+-- -   For
+--     <https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html managed rules>,
+--     you can use the rule identifier as the @keywordValue@. You can find
+--     the rule identifier from the
+--     <https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html list of Config managed rules>.
+--
+--     -   Managed rule name:
+--         <https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-acl-prohibited.html s3-bucket-acl-prohibited>
+--
+--         @keywordValue@: @S3_BUCKET_ACL_PROHIBITED@
+--
+-- -   For
+--     <https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html custom rules>,
+--     you form the @keywordValue@ by adding the @Custom_@ prefix to the
+--     rule name. This prefix distinguishes the rule from a managed rule.
+--
+--     -   Custom rule name: my-custom-config-rule
+--
+--         @keywordValue@: @Custom_my-custom-config-rule@
+--
+-- -   For
+--     <https://docs.aws.amazon.com/config/latest/developerguide/service-linked-awsconfig-rules.html service-linked rules>,
+--     you form the @keywordValue@ by adding the @Custom_@ prefix to the
+--     rule name. In addition, you remove the suffix ID that appears at the
+--     end of the rule name.
+--
+--     -   Service-linked rule name:
+--         CustomRuleForAccount-conformance-pack-szsm1uv0w
+--
+--         @keywordValue@: @Custom_CustomRuleForAccount-conformance-pack@
+--
+--     -   Service-linked rule name:
+--         OrgConfigRule-s3-bucket-versioning-enabled-dbgzf8ba
+--
+--         @keywordValue@:
+--         @Custom_OrgConfigRule-s3-bucket-versioning-enabled@
+sourceKeyword_keywordValue :: Lens.Lens' SourceKeyword (Prelude.Maybe Prelude.Text)
+sourceKeyword_keywordValue = Lens.lens (\SourceKeyword' {keywordValue} -> keywordValue) (\s@SourceKeyword' {} a -> s {keywordValue = a} :: SourceKeyword)
+
+instance Data.FromJSON SourceKeyword where
+  parseJSON =
+    Data.withObject
+      "SourceKeyword"
+      ( \x ->
+          SourceKeyword'
+            Prelude.<$> (x Data..:? "keywordInputType")
+            Prelude.<*> (x Data..:? "keywordValue")
+      )
+
+instance Prelude.Hashable SourceKeyword where
+  hashWithSalt _salt SourceKeyword' {..} =
+    _salt
+      `Prelude.hashWithSalt` keywordInputType
+      `Prelude.hashWithSalt` keywordValue
+
+instance Prelude.NFData SourceKeyword where
+  rnf SourceKeyword' {..} =
+    Prelude.rnf keywordInputType
+      `Prelude.seq` Prelude.rnf keywordValue
+
+instance Data.ToJSON SourceKeyword where
+  toJSON SourceKeyword' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("keywordInputType" Data..=)
+              Prelude.<$> keywordInputType,
+            ("keywordValue" Data..=) Prelude.<$> keywordValue
+          ]
+      )
diff --git a/gen/Amazonka/AuditManager/Types/SourceSetUpOption.hs b/gen/Amazonka/AuditManager/Types/SourceSetUpOption.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/SourceSetUpOption.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.AuditManager.Types.SourceSetUpOption
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.SourceSetUpOption
+  ( SourceSetUpOption
+      ( ..,
+        SourceSetUpOption_Procedural_Controls_Mapping,
+        SourceSetUpOption_System_Controls_Mapping
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype SourceSetUpOption = SourceSetUpOption'
+  { fromSourceSetUpOption ::
+      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 SourceSetUpOption_Procedural_Controls_Mapping :: SourceSetUpOption
+pattern SourceSetUpOption_Procedural_Controls_Mapping = SourceSetUpOption' "Procedural_Controls_Mapping"
+
+pattern SourceSetUpOption_System_Controls_Mapping :: SourceSetUpOption
+pattern SourceSetUpOption_System_Controls_Mapping = SourceSetUpOption' "System_Controls_Mapping"
+
+{-# COMPLETE
+  SourceSetUpOption_Procedural_Controls_Mapping,
+  SourceSetUpOption_System_Controls_Mapping,
+  SourceSetUpOption'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/SourceType.hs b/gen/Amazonka/AuditManager/Types/SourceType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/SourceType.hs
@@ -0,0 +1,86 @@
+{-# 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.AuditManager.Types.SourceType
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.SourceType
+  ( SourceType
+      ( ..,
+        SourceType_AWS_API_Call,
+        SourceType_AWS_Cloudtrail,
+        SourceType_AWS_Config,
+        SourceType_AWS_Security_Hub,
+        SourceType_MANUAL
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype SourceType = SourceType'
+  { fromSourceType ::
+      Data.Text
+  }
+  deriving stock
+    ( Prelude.Show,
+      Prelude.Read,
+      Prelude.Eq,
+      Prelude.Ord,
+      Prelude.Generic
+    )
+  deriving newtype
+    ( Prelude.Hashable,
+      Prelude.NFData,
+      Data.FromText,
+      Data.ToText,
+      Data.ToByteString,
+      Data.ToLog,
+      Data.ToHeader,
+      Data.ToQuery,
+      Data.FromJSON,
+      Data.FromJSONKey,
+      Data.ToJSON,
+      Data.ToJSONKey,
+      Data.FromXML,
+      Data.ToXML
+    )
+
+pattern SourceType_AWS_API_Call :: SourceType
+pattern SourceType_AWS_API_Call = SourceType' "AWS_API_Call"
+
+pattern SourceType_AWS_Cloudtrail :: SourceType
+pattern SourceType_AWS_Cloudtrail = SourceType' "AWS_Cloudtrail"
+
+pattern SourceType_AWS_Config :: SourceType
+pattern SourceType_AWS_Config = SourceType' "AWS_Config"
+
+pattern SourceType_AWS_Security_Hub :: SourceType
+pattern SourceType_AWS_Security_Hub = SourceType' "AWS_Security_Hub"
+
+pattern SourceType_MANUAL :: SourceType
+pattern SourceType_MANUAL = SourceType' "MANUAL"
+
+{-# COMPLETE
+  SourceType_AWS_API_Call,
+  SourceType_AWS_Cloudtrail,
+  SourceType_AWS_Config,
+  SourceType_AWS_Security_Hub,
+  SourceType_MANUAL,
+  SourceType'
+  #-}
diff --git a/gen/Amazonka/AuditManager/Types/URL.hs b/gen/Amazonka/AuditManager/Types/URL.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/URL.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.AuditManager.Types.URL
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.URL 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
+
+-- | Short for uniform resource locator. A URL is used as a unique identifier
+-- to locate a resource on the internet.
+--
+-- /See:/ 'newURL' smart constructor.
+data URL = URL'
+  { -- | The name or word that\'s used as a hyperlink to the URL.
+    hyperlinkName :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the internet resource.
+    link :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'URL' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'hyperlinkName', 'url_hyperlinkName' - The name or word that\'s used as a hyperlink to the URL.
+--
+-- 'link', 'url_link' - The unique identifier for the internet resource.
+newURL ::
+  URL
+newURL =
+  URL'
+    { hyperlinkName = Prelude.Nothing,
+      link = Prelude.Nothing
+    }
+
+-- | The name or word that\'s used as a hyperlink to the URL.
+url_hyperlinkName :: Lens.Lens' URL (Prelude.Maybe Prelude.Text)
+url_hyperlinkName = Lens.lens (\URL' {hyperlinkName} -> hyperlinkName) (\s@URL' {} a -> s {hyperlinkName = a} :: URL)
+
+-- | The unique identifier for the internet resource.
+url_link :: Lens.Lens' URL (Prelude.Maybe Prelude.Text)
+url_link = Lens.lens (\URL' {link} -> link) (\s@URL' {} a -> s {link = a} :: URL)
+
+instance Data.FromJSON URL where
+  parseJSON =
+    Data.withObject
+      "URL"
+      ( \x ->
+          URL'
+            Prelude.<$> (x Data..:? "hyperlinkName")
+            Prelude.<*> (x Data..:? "link")
+      )
+
+instance Prelude.Hashable URL where
+  hashWithSalt _salt URL' {..} =
+    _salt
+      `Prelude.hashWithSalt` hyperlinkName
+      `Prelude.hashWithSalt` link
+
+instance Prelude.NFData URL where
+  rnf URL' {..} =
+    Prelude.rnf hyperlinkName
+      `Prelude.seq` Prelude.rnf link
diff --git a/gen/Amazonka/AuditManager/Types/UpdateAssessmentFrameworkControlSet.hs b/gen/Amazonka/AuditManager/Types/UpdateAssessmentFrameworkControlSet.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/Types/UpdateAssessmentFrameworkControlSet.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.Types.UpdateAssessmentFrameworkControlSet
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.AuditManager.Types.UpdateAssessmentFrameworkControlSet where
+
+import Amazonka.AuditManager.Types.CreateAssessmentFrameworkControl
+import qualified 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 @controlSet@ entity that represents a collection of controls in Audit
+-- Manager. This doesn\'t contain the control set ID.
+--
+-- /See:/ 'newUpdateAssessmentFrameworkControlSet' smart constructor.
+data UpdateAssessmentFrameworkControlSet = UpdateAssessmentFrameworkControlSet'
+  { -- | The unique identifier for the control set.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The name of the control set.
+    name :: Prelude.Text,
+    -- | The list of controls that are contained within the control set.
+    controls :: Prelude.NonEmpty CreateAssessmentFrameworkControl
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessmentFrameworkControlSet' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'id', 'updateAssessmentFrameworkControlSet_id' - The unique identifier for the control set.
+--
+-- 'name', 'updateAssessmentFrameworkControlSet_name' - The name of the control set.
+--
+-- 'controls', 'updateAssessmentFrameworkControlSet_controls' - The list of controls that are contained within the control set.
+newUpdateAssessmentFrameworkControlSet ::
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'controls'
+  Prelude.NonEmpty CreateAssessmentFrameworkControl ->
+  UpdateAssessmentFrameworkControlSet
+newUpdateAssessmentFrameworkControlSet
+  pName_
+  pControls_ =
+    UpdateAssessmentFrameworkControlSet'
+      { id =
+          Prelude.Nothing,
+        name = pName_,
+        controls =
+          Lens.coerced Lens.# pControls_
+      }
+
+-- | The unique identifier for the control set.
+updateAssessmentFrameworkControlSet_id :: Lens.Lens' UpdateAssessmentFrameworkControlSet (Prelude.Maybe Prelude.Text)
+updateAssessmentFrameworkControlSet_id = Lens.lens (\UpdateAssessmentFrameworkControlSet' {id} -> id) (\s@UpdateAssessmentFrameworkControlSet' {} a -> s {id = a} :: UpdateAssessmentFrameworkControlSet)
+
+-- | The name of the control set.
+updateAssessmentFrameworkControlSet_name :: Lens.Lens' UpdateAssessmentFrameworkControlSet Prelude.Text
+updateAssessmentFrameworkControlSet_name = Lens.lens (\UpdateAssessmentFrameworkControlSet' {name} -> name) (\s@UpdateAssessmentFrameworkControlSet' {} a -> s {name = a} :: UpdateAssessmentFrameworkControlSet)
+
+-- | The list of controls that are contained within the control set.
+updateAssessmentFrameworkControlSet_controls :: Lens.Lens' UpdateAssessmentFrameworkControlSet (Prelude.NonEmpty CreateAssessmentFrameworkControl)
+updateAssessmentFrameworkControlSet_controls = Lens.lens (\UpdateAssessmentFrameworkControlSet' {controls} -> controls) (\s@UpdateAssessmentFrameworkControlSet' {} a -> s {controls = a} :: UpdateAssessmentFrameworkControlSet) Prelude.. Lens.coerced
+
+instance
+  Prelude.Hashable
+    UpdateAssessmentFrameworkControlSet
+  where
+  hashWithSalt
+    _salt
+    UpdateAssessmentFrameworkControlSet' {..} =
+      _salt
+        `Prelude.hashWithSalt` id
+        `Prelude.hashWithSalt` name
+        `Prelude.hashWithSalt` controls
+
+instance
+  Prelude.NFData
+    UpdateAssessmentFrameworkControlSet
+  where
+  rnf UpdateAssessmentFrameworkControlSet' {..} =
+    Prelude.rnf id
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf controls
+
+instance
+  Data.ToJSON
+    UpdateAssessmentFrameworkControlSet
+  where
+  toJSON UpdateAssessmentFrameworkControlSet' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("id" Data..=) Prelude.<$> id,
+            Prelude.Just ("name" Data..= name),
+            Prelude.Just ("controls" Data..= controls)
+          ]
+      )
diff --git a/gen/Amazonka/AuditManager/UntagResource.hs b/gen/Amazonka/AuditManager/UntagResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/UntagResource.hs
@@ -0,0 +1,163 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.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 a tag from a resource in Audit Manager.
+module Amazonka.AuditManager.UntagResource
+  ( -- * Creating a Request
+    UntagResource (..),
+    newUntagResource,
+
+    -- * Request Lenses
+    untagResource_resourceArn,
+    untagResource_tagKeys,
+
+    -- * Destructuring the Response
+    UntagResourceResponse (..),
+    newUntagResourceResponse,
+
+    -- * Response Lenses
+    untagResourceResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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 specified resource.
+    resourceArn :: Prelude.Text,
+    -- | The name or key of the tag.
+    tagKeys :: Prelude.NonEmpty Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UntagResource' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the specified resource.
+--
+-- 'tagKeys', 'untagResource_tagKeys' - The name or key of the tag.
+newUntagResource ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  -- | 'tagKeys'
+  Prelude.NonEmpty Prelude.Text ->
+  UntagResource
+newUntagResource pResourceArn_ pTagKeys_ =
+  UntagResource'
+    { resourceArn = pResourceArn_,
+      tagKeys = Lens.coerced Lens.# pTagKeys_
+    }
+
+-- | The Amazon Resource Name (ARN) of the specified resource.
+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text
+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)
+
+-- | The name or key of the tag.
+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.NonEmpty Prelude.Text)
+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced
+
+instance Core.AWSRequest UntagResource where
+  type
+    AWSResponse UntagResource =
+      UntagResourceResponse
+  request overrides =
+    Request.delete (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          UntagResourceResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UntagResource where
+  hashWithSalt _salt UntagResource' {..} =
+    _salt
+      `Prelude.hashWithSalt` resourceArn
+      `Prelude.hashWithSalt` tagKeys
+
+instance Prelude.NFData UntagResource where
+  rnf UntagResource' {..} =
+    Prelude.rnf resourceArn
+      `Prelude.seq` Prelude.rnf tagKeys
+
+instance Data.ToHeaders UntagResource where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath UntagResource where
+  toPath UntagResource' {..} =
+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]
+
+instance Data.ToQuery UntagResource where
+  toQuery UntagResource' {..} =
+    Prelude.mconcat
+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]
+
+-- | /See:/ 'newUntagResourceResponse' smart constructor.
+data UntagResourceResponse = UntagResourceResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.
+newUntagResourceResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UntagResourceResponse
+newUntagResourceResponse pHttpStatus_ =
+  UntagResourceResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int
+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)
+
+instance Prelude.NFData UntagResourceResponse where
+  rnf UntagResourceResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/UpdateAssessment.hs b/gen/Amazonka/AuditManager/UpdateAssessment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/UpdateAssessment.hs
@@ -0,0 +1,247 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.UpdateAssessment
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Edits an Audit Manager assessment.
+module Amazonka.AuditManager.UpdateAssessment
+  ( -- * Creating a Request
+    UpdateAssessment (..),
+    newUpdateAssessment,
+
+    -- * Request Lenses
+    updateAssessment_assessmentDescription,
+    updateAssessment_assessmentName,
+    updateAssessment_assessmentReportsDestination,
+    updateAssessment_roles,
+    updateAssessment_assessmentId,
+    updateAssessment_scope,
+
+    -- * Destructuring the Response
+    UpdateAssessmentResponse (..),
+    newUpdateAssessmentResponse,
+
+    -- * Response Lenses
+    updateAssessmentResponse_assessment,
+    updateAssessmentResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newUpdateAssessment' smart constructor.
+data UpdateAssessment = UpdateAssessment'
+  { -- | The description of the assessment.
+    assessmentDescription :: Prelude.Maybe Prelude.Text,
+    -- | The name of the assessment to be updated.
+    assessmentName :: Prelude.Maybe Prelude.Text,
+    -- | The assessment report storage destination for the assessment that\'s
+    -- being updated.
+    assessmentReportsDestination :: Prelude.Maybe AssessmentReportsDestination,
+    -- | The list of roles for the assessment.
+    roles :: Prelude.Maybe [Role],
+    -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The scope of the assessment.
+    scope :: Scope
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessment' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentDescription', 'updateAssessment_assessmentDescription' - The description of the assessment.
+--
+-- 'assessmentName', 'updateAssessment_assessmentName' - The name of the assessment to be updated.
+--
+-- 'assessmentReportsDestination', 'updateAssessment_assessmentReportsDestination' - The assessment report storage destination for the assessment that\'s
+-- being updated.
+--
+-- 'roles', 'updateAssessment_roles' - The list of roles for the assessment.
+--
+-- 'assessmentId', 'updateAssessment_assessmentId' - The unique identifier for the assessment.
+--
+-- 'scope', 'updateAssessment_scope' - The scope of the assessment.
+newUpdateAssessment ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'scope'
+  Scope ->
+  UpdateAssessment
+newUpdateAssessment pAssessmentId_ pScope_ =
+  UpdateAssessment'
+    { assessmentDescription =
+        Prelude.Nothing,
+      assessmentName = Prelude.Nothing,
+      assessmentReportsDestination = Prelude.Nothing,
+      roles = Prelude.Nothing,
+      assessmentId = pAssessmentId_,
+      scope = pScope_
+    }
+
+-- | The description of the assessment.
+updateAssessment_assessmentDescription :: Lens.Lens' UpdateAssessment (Prelude.Maybe Prelude.Text)
+updateAssessment_assessmentDescription = Lens.lens (\UpdateAssessment' {assessmentDescription} -> assessmentDescription) (\s@UpdateAssessment' {} a -> s {assessmentDescription = a} :: UpdateAssessment)
+
+-- | The name of the assessment to be updated.
+updateAssessment_assessmentName :: Lens.Lens' UpdateAssessment (Prelude.Maybe Prelude.Text)
+updateAssessment_assessmentName = Lens.lens (\UpdateAssessment' {assessmentName} -> assessmentName) (\s@UpdateAssessment' {} a -> s {assessmentName = a} :: UpdateAssessment)
+
+-- | The assessment report storage destination for the assessment that\'s
+-- being updated.
+updateAssessment_assessmentReportsDestination :: Lens.Lens' UpdateAssessment (Prelude.Maybe AssessmentReportsDestination)
+updateAssessment_assessmentReportsDestination = Lens.lens (\UpdateAssessment' {assessmentReportsDestination} -> assessmentReportsDestination) (\s@UpdateAssessment' {} a -> s {assessmentReportsDestination = a} :: UpdateAssessment)
+
+-- | The list of roles for the assessment.
+updateAssessment_roles :: Lens.Lens' UpdateAssessment (Prelude.Maybe [Role])
+updateAssessment_roles = Lens.lens (\UpdateAssessment' {roles} -> roles) (\s@UpdateAssessment' {} a -> s {roles = a} :: UpdateAssessment) Prelude.. Lens.mapping Lens.coerced
+
+-- | The unique identifier for the assessment.
+updateAssessment_assessmentId :: Lens.Lens' UpdateAssessment Prelude.Text
+updateAssessment_assessmentId = Lens.lens (\UpdateAssessment' {assessmentId} -> assessmentId) (\s@UpdateAssessment' {} a -> s {assessmentId = a} :: UpdateAssessment)
+
+-- | The scope of the assessment.
+updateAssessment_scope :: Lens.Lens' UpdateAssessment Scope
+updateAssessment_scope = Lens.lens (\UpdateAssessment' {scope} -> scope) (\s@UpdateAssessment' {} a -> s {scope = a} :: UpdateAssessment)
+
+instance Core.AWSRequest UpdateAssessment where
+  type
+    AWSResponse UpdateAssessment =
+      UpdateAssessmentResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateAssessmentResponse'
+            Prelude.<$> (x Data..?> "assessment")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateAssessment where
+  hashWithSalt _salt UpdateAssessment' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentDescription
+      `Prelude.hashWithSalt` assessmentName
+      `Prelude.hashWithSalt` assessmentReportsDestination
+      `Prelude.hashWithSalt` roles
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` scope
+
+instance Prelude.NFData UpdateAssessment where
+  rnf UpdateAssessment' {..} =
+    Prelude.rnf assessmentDescription
+      `Prelude.seq` Prelude.rnf assessmentName
+      `Prelude.seq` Prelude.rnf assessmentReportsDestination
+      `Prelude.seq` Prelude.rnf roles
+      `Prelude.seq` Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf scope
+
+instance Data.ToHeaders UpdateAssessment where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateAssessment where
+  toJSON UpdateAssessment' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("assessmentDescription" Data..=)
+              Prelude.<$> assessmentDescription,
+            ("assessmentName" Data..=)
+              Prelude.<$> assessmentName,
+            ("assessmentReportsDestination" Data..=)
+              Prelude.<$> assessmentReportsDestination,
+            ("roles" Data..=) Prelude.<$> roles,
+            Prelude.Just ("scope" Data..= scope)
+          ]
+      )
+
+instance Data.ToPath UpdateAssessment where
+  toPath UpdateAssessment' {..} =
+    Prelude.mconcat
+      ["/assessments/", Data.toBS assessmentId]
+
+instance Data.ToQuery UpdateAssessment where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateAssessmentResponse' smart constructor.
+data UpdateAssessmentResponse = UpdateAssessmentResponse'
+  { -- | The response object for the @UpdateAssessment@ API. This is the name of
+    -- the updated assessment.
+    assessment :: Prelude.Maybe Assessment,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessmentResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessment', 'updateAssessmentResponse_assessment' - The response object for the @UpdateAssessment@ API. This is the name of
+-- the updated assessment.
+--
+-- 'httpStatus', 'updateAssessmentResponse_httpStatus' - The response's http status code.
+newUpdateAssessmentResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateAssessmentResponse
+newUpdateAssessmentResponse pHttpStatus_ =
+  UpdateAssessmentResponse'
+    { assessment =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The response object for the @UpdateAssessment@ API. This is the name of
+-- the updated assessment.
+updateAssessmentResponse_assessment :: Lens.Lens' UpdateAssessmentResponse (Prelude.Maybe Assessment)
+updateAssessmentResponse_assessment = Lens.lens (\UpdateAssessmentResponse' {assessment} -> assessment) (\s@UpdateAssessmentResponse' {} a -> s {assessment = a} :: UpdateAssessmentResponse)
+
+-- | The response's http status code.
+updateAssessmentResponse_httpStatus :: Lens.Lens' UpdateAssessmentResponse Prelude.Int
+updateAssessmentResponse_httpStatus = Lens.lens (\UpdateAssessmentResponse' {httpStatus} -> httpStatus) (\s@UpdateAssessmentResponse' {} a -> s {httpStatus = a} :: UpdateAssessmentResponse)
+
+instance Prelude.NFData UpdateAssessmentResponse where
+  rnf UpdateAssessmentResponse' {..} =
+    Prelude.rnf assessment
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/UpdateAssessmentControl.hs b/gen/Amazonka/AuditManager/UpdateAssessmentControl.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/UpdateAssessmentControl.hs
@@ -0,0 +1,240 @@
+{-# 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.AuditManager.UpdateAssessmentControl
+-- 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 a control within an assessment in Audit Manager.
+module Amazonka.AuditManager.UpdateAssessmentControl
+  ( -- * Creating a Request
+    UpdateAssessmentControl (..),
+    newUpdateAssessmentControl,
+
+    -- * Request Lenses
+    updateAssessmentControl_commentBody,
+    updateAssessmentControl_controlStatus,
+    updateAssessmentControl_assessmentId,
+    updateAssessmentControl_controlSetId,
+    updateAssessmentControl_controlId,
+
+    -- * Destructuring the Response
+    UpdateAssessmentControlResponse (..),
+    newUpdateAssessmentControlResponse,
+
+    -- * Response Lenses
+    updateAssessmentControlResponse_control,
+    updateAssessmentControlResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newUpdateAssessmentControl' smart constructor.
+data UpdateAssessmentControl = UpdateAssessmentControl'
+  { -- | The comment body text for the control.
+    commentBody :: Prelude.Maybe Prelude.Text,
+    -- | The status of the control.
+    controlStatus :: Prelude.Maybe ControlStatus,
+    -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The unique identifier for the control set.
+    controlSetId :: Prelude.Text,
+    -- | The unique identifier for the control.
+    controlId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessmentControl' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'commentBody', 'updateAssessmentControl_commentBody' - The comment body text for the control.
+--
+-- 'controlStatus', 'updateAssessmentControl_controlStatus' - The status of the control.
+--
+-- 'assessmentId', 'updateAssessmentControl_assessmentId' - The unique identifier for the assessment.
+--
+-- 'controlSetId', 'updateAssessmentControl_controlSetId' - The unique identifier for the control set.
+--
+-- 'controlId', 'updateAssessmentControl_controlId' - The unique identifier for the control.
+newUpdateAssessmentControl ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'controlSetId'
+  Prelude.Text ->
+  -- | 'controlId'
+  Prelude.Text ->
+  UpdateAssessmentControl
+newUpdateAssessmentControl
+  pAssessmentId_
+  pControlSetId_
+  pControlId_ =
+    UpdateAssessmentControl'
+      { commentBody =
+          Prelude.Nothing,
+        controlStatus = Prelude.Nothing,
+        assessmentId = pAssessmentId_,
+        controlSetId = pControlSetId_,
+        controlId = pControlId_
+      }
+
+-- | The comment body text for the control.
+updateAssessmentControl_commentBody :: Lens.Lens' UpdateAssessmentControl (Prelude.Maybe Prelude.Text)
+updateAssessmentControl_commentBody = Lens.lens (\UpdateAssessmentControl' {commentBody} -> commentBody) (\s@UpdateAssessmentControl' {} a -> s {commentBody = a} :: UpdateAssessmentControl)
+
+-- | The status of the control.
+updateAssessmentControl_controlStatus :: Lens.Lens' UpdateAssessmentControl (Prelude.Maybe ControlStatus)
+updateAssessmentControl_controlStatus = Lens.lens (\UpdateAssessmentControl' {controlStatus} -> controlStatus) (\s@UpdateAssessmentControl' {} a -> s {controlStatus = a} :: UpdateAssessmentControl)
+
+-- | The unique identifier for the assessment.
+updateAssessmentControl_assessmentId :: Lens.Lens' UpdateAssessmentControl Prelude.Text
+updateAssessmentControl_assessmentId = Lens.lens (\UpdateAssessmentControl' {assessmentId} -> assessmentId) (\s@UpdateAssessmentControl' {} a -> s {assessmentId = a} :: UpdateAssessmentControl)
+
+-- | The unique identifier for the control set.
+updateAssessmentControl_controlSetId :: Lens.Lens' UpdateAssessmentControl Prelude.Text
+updateAssessmentControl_controlSetId = Lens.lens (\UpdateAssessmentControl' {controlSetId} -> controlSetId) (\s@UpdateAssessmentControl' {} a -> s {controlSetId = a} :: UpdateAssessmentControl)
+
+-- | The unique identifier for the control.
+updateAssessmentControl_controlId :: Lens.Lens' UpdateAssessmentControl Prelude.Text
+updateAssessmentControl_controlId = Lens.lens (\UpdateAssessmentControl' {controlId} -> controlId) (\s@UpdateAssessmentControl' {} a -> s {controlId = a} :: UpdateAssessmentControl)
+
+instance Core.AWSRequest UpdateAssessmentControl where
+  type
+    AWSResponse UpdateAssessmentControl =
+      UpdateAssessmentControlResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateAssessmentControlResponse'
+            Prelude.<$> (x Data..?> "control")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateAssessmentControl where
+  hashWithSalt _salt UpdateAssessmentControl' {..} =
+    _salt
+      `Prelude.hashWithSalt` commentBody
+      `Prelude.hashWithSalt` controlStatus
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` controlSetId
+      `Prelude.hashWithSalt` controlId
+
+instance Prelude.NFData UpdateAssessmentControl where
+  rnf UpdateAssessmentControl' {..} =
+    Prelude.rnf commentBody
+      `Prelude.seq` Prelude.rnf controlStatus
+      `Prelude.seq` Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf controlSetId
+      `Prelude.seq` Prelude.rnf controlId
+
+instance Data.ToHeaders UpdateAssessmentControl where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateAssessmentControl where
+  toJSON UpdateAssessmentControl' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("commentBody" Data..=) Prelude.<$> commentBody,
+            ("controlStatus" Data..=) Prelude.<$> controlStatus
+          ]
+      )
+
+instance Data.ToPath UpdateAssessmentControl where
+  toPath UpdateAssessmentControl' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/controlSets/",
+        Data.toBS controlSetId,
+        "/controls/",
+        Data.toBS controlId
+      ]
+
+instance Data.ToQuery UpdateAssessmentControl where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateAssessmentControlResponse' smart constructor.
+data UpdateAssessmentControlResponse = UpdateAssessmentControlResponse'
+  { -- | The name of the updated control set that the @UpdateAssessmentControl@
+    -- API returned.
+    control :: Prelude.Maybe AssessmentControl,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessmentControlResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'control', 'updateAssessmentControlResponse_control' - The name of the updated control set that the @UpdateAssessmentControl@
+-- API returned.
+--
+-- 'httpStatus', 'updateAssessmentControlResponse_httpStatus' - The response's http status code.
+newUpdateAssessmentControlResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateAssessmentControlResponse
+newUpdateAssessmentControlResponse pHttpStatus_ =
+  UpdateAssessmentControlResponse'
+    { control =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The name of the updated control set that the @UpdateAssessmentControl@
+-- API returned.
+updateAssessmentControlResponse_control :: Lens.Lens' UpdateAssessmentControlResponse (Prelude.Maybe AssessmentControl)
+updateAssessmentControlResponse_control = Lens.lens (\UpdateAssessmentControlResponse' {control} -> control) (\s@UpdateAssessmentControlResponse' {} a -> s {control = a} :: UpdateAssessmentControlResponse)
+
+-- | The response's http status code.
+updateAssessmentControlResponse_httpStatus :: Lens.Lens' UpdateAssessmentControlResponse Prelude.Int
+updateAssessmentControlResponse_httpStatus = Lens.lens (\UpdateAssessmentControlResponse' {httpStatus} -> httpStatus) (\s@UpdateAssessmentControlResponse' {} a -> s {httpStatus = a} :: UpdateAssessmentControlResponse)
+
+instance
+  Prelude.NFData
+    UpdateAssessmentControlResponse
+  where
+  rnf UpdateAssessmentControlResponse' {..} =
+    Prelude.rnf control
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/UpdateAssessmentControlSetStatus.hs b/gen/Amazonka/AuditManager/UpdateAssessmentControlSetStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/UpdateAssessmentControlSetStatus.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.AuditManager.UpdateAssessmentControlSetStatus
+-- 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 control set in an Audit Manager assessment.
+module Amazonka.AuditManager.UpdateAssessmentControlSetStatus
+  ( -- * Creating a Request
+    UpdateAssessmentControlSetStatus (..),
+    newUpdateAssessmentControlSetStatus,
+
+    -- * Request Lenses
+    updateAssessmentControlSetStatus_assessmentId,
+    updateAssessmentControlSetStatus_controlSetId,
+    updateAssessmentControlSetStatus_status,
+    updateAssessmentControlSetStatus_comment,
+
+    -- * Destructuring the Response
+    UpdateAssessmentControlSetStatusResponse (..),
+    newUpdateAssessmentControlSetStatusResponse,
+
+    -- * Response Lenses
+    updateAssessmentControlSetStatusResponse_controlSet,
+    updateAssessmentControlSetStatusResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newUpdateAssessmentControlSetStatus' smart constructor.
+data UpdateAssessmentControlSetStatus = UpdateAssessmentControlSetStatus'
+  { -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The unique identifier for the control set.
+    controlSetId :: Prelude.Text,
+    -- | The status of the control set that\'s being updated.
+    status :: ControlSetStatus,
+    -- | The comment that\'s related to the status update.
+    comment :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessmentControlSetStatus' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'updateAssessmentControlSetStatus_assessmentId' - The unique identifier for the assessment.
+--
+-- 'controlSetId', 'updateAssessmentControlSetStatus_controlSetId' - The unique identifier for the control set.
+--
+-- 'status', 'updateAssessmentControlSetStatus_status' - The status of the control set that\'s being updated.
+--
+-- 'comment', 'updateAssessmentControlSetStatus_comment' - The comment that\'s related to the status update.
+newUpdateAssessmentControlSetStatus ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'controlSetId'
+  Prelude.Text ->
+  -- | 'status'
+  ControlSetStatus ->
+  -- | 'comment'
+  Prelude.Text ->
+  UpdateAssessmentControlSetStatus
+newUpdateAssessmentControlSetStatus
+  pAssessmentId_
+  pControlSetId_
+  pStatus_
+  pComment_ =
+    UpdateAssessmentControlSetStatus'
+      { assessmentId =
+          pAssessmentId_,
+        controlSetId = pControlSetId_,
+        status = pStatus_,
+        comment = pComment_
+      }
+
+-- | The unique identifier for the assessment.
+updateAssessmentControlSetStatus_assessmentId :: Lens.Lens' UpdateAssessmentControlSetStatus Prelude.Text
+updateAssessmentControlSetStatus_assessmentId = Lens.lens (\UpdateAssessmentControlSetStatus' {assessmentId} -> assessmentId) (\s@UpdateAssessmentControlSetStatus' {} a -> s {assessmentId = a} :: UpdateAssessmentControlSetStatus)
+
+-- | The unique identifier for the control set.
+updateAssessmentControlSetStatus_controlSetId :: Lens.Lens' UpdateAssessmentControlSetStatus Prelude.Text
+updateAssessmentControlSetStatus_controlSetId = Lens.lens (\UpdateAssessmentControlSetStatus' {controlSetId} -> controlSetId) (\s@UpdateAssessmentControlSetStatus' {} a -> s {controlSetId = a} :: UpdateAssessmentControlSetStatus)
+
+-- | The status of the control set that\'s being updated.
+updateAssessmentControlSetStatus_status :: Lens.Lens' UpdateAssessmentControlSetStatus ControlSetStatus
+updateAssessmentControlSetStatus_status = Lens.lens (\UpdateAssessmentControlSetStatus' {status} -> status) (\s@UpdateAssessmentControlSetStatus' {} a -> s {status = a} :: UpdateAssessmentControlSetStatus)
+
+-- | The comment that\'s related to the status update.
+updateAssessmentControlSetStatus_comment :: Lens.Lens' UpdateAssessmentControlSetStatus Prelude.Text
+updateAssessmentControlSetStatus_comment = Lens.lens (\UpdateAssessmentControlSetStatus' {comment} -> comment) (\s@UpdateAssessmentControlSetStatus' {} a -> s {comment = a} :: UpdateAssessmentControlSetStatus)
+
+instance
+  Core.AWSRequest
+    UpdateAssessmentControlSetStatus
+  where
+  type
+    AWSResponse UpdateAssessmentControlSetStatus =
+      UpdateAssessmentControlSetStatusResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateAssessmentControlSetStatusResponse'
+            Prelude.<$> (x Data..?> "controlSet")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    UpdateAssessmentControlSetStatus
+  where
+  hashWithSalt
+    _salt
+    UpdateAssessmentControlSetStatus' {..} =
+      _salt
+        `Prelude.hashWithSalt` assessmentId
+        `Prelude.hashWithSalt` controlSetId
+        `Prelude.hashWithSalt` status
+        `Prelude.hashWithSalt` comment
+
+instance
+  Prelude.NFData
+    UpdateAssessmentControlSetStatus
+  where
+  rnf UpdateAssessmentControlSetStatus' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf controlSetId
+      `Prelude.seq` Prelude.rnf status
+      `Prelude.seq` Prelude.rnf comment
+
+instance
+  Data.ToHeaders
+    UpdateAssessmentControlSetStatus
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateAssessmentControlSetStatus where
+  toJSON UpdateAssessmentControlSetStatus' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("status" Data..= status),
+            Prelude.Just ("comment" Data..= comment)
+          ]
+      )
+
+instance Data.ToPath UpdateAssessmentControlSetStatus where
+  toPath UpdateAssessmentControlSetStatus' {..} =
+    Prelude.mconcat
+      [ "/assessments/",
+        Data.toBS assessmentId,
+        "/controlSets/",
+        Data.toBS controlSetId,
+        "/status"
+      ]
+
+instance
+  Data.ToQuery
+    UpdateAssessmentControlSetStatus
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateAssessmentControlSetStatusResponse' smart constructor.
+data UpdateAssessmentControlSetStatusResponse = UpdateAssessmentControlSetStatusResponse'
+  { -- | The name of the updated control set that the
+    -- @UpdateAssessmentControlSetStatus@ API returned.
+    controlSet :: Prelude.Maybe AssessmentControlSet,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessmentControlSetStatusResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'controlSet', 'updateAssessmentControlSetStatusResponse_controlSet' - The name of the updated control set that the
+-- @UpdateAssessmentControlSetStatus@ API returned.
+--
+-- 'httpStatus', 'updateAssessmentControlSetStatusResponse_httpStatus' - The response's http status code.
+newUpdateAssessmentControlSetStatusResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateAssessmentControlSetStatusResponse
+newUpdateAssessmentControlSetStatusResponse
+  pHttpStatus_ =
+    UpdateAssessmentControlSetStatusResponse'
+      { controlSet =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The name of the updated control set that the
+-- @UpdateAssessmentControlSetStatus@ API returned.
+updateAssessmentControlSetStatusResponse_controlSet :: Lens.Lens' UpdateAssessmentControlSetStatusResponse (Prelude.Maybe AssessmentControlSet)
+updateAssessmentControlSetStatusResponse_controlSet = Lens.lens (\UpdateAssessmentControlSetStatusResponse' {controlSet} -> controlSet) (\s@UpdateAssessmentControlSetStatusResponse' {} a -> s {controlSet = a} :: UpdateAssessmentControlSetStatusResponse)
+
+-- | The response's http status code.
+updateAssessmentControlSetStatusResponse_httpStatus :: Lens.Lens' UpdateAssessmentControlSetStatusResponse Prelude.Int
+updateAssessmentControlSetStatusResponse_httpStatus = Lens.lens (\UpdateAssessmentControlSetStatusResponse' {httpStatus} -> httpStatus) (\s@UpdateAssessmentControlSetStatusResponse' {} a -> s {httpStatus = a} :: UpdateAssessmentControlSetStatusResponse)
+
+instance
+  Prelude.NFData
+    UpdateAssessmentControlSetStatusResponse
+  where
+  rnf UpdateAssessmentControlSetStatusResponse' {..} =
+    Prelude.rnf controlSet
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/UpdateAssessmentFramework.hs b/gen/Amazonka/AuditManager/UpdateAssessmentFramework.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/UpdateAssessmentFramework.hs
@@ -0,0 +1,237 @@
+{-# 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.AuditManager.UpdateAssessmentFramework
+-- 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 a custom framework in Audit Manager.
+module Amazonka.AuditManager.UpdateAssessmentFramework
+  ( -- * Creating a Request
+    UpdateAssessmentFramework (..),
+    newUpdateAssessmentFramework,
+
+    -- * Request Lenses
+    updateAssessmentFramework_complianceType,
+    updateAssessmentFramework_description,
+    updateAssessmentFramework_frameworkId,
+    updateAssessmentFramework_name,
+    updateAssessmentFramework_controlSets,
+
+    -- * Destructuring the Response
+    UpdateAssessmentFrameworkResponse (..),
+    newUpdateAssessmentFrameworkResponse,
+
+    -- * Response Lenses
+    updateAssessmentFrameworkResponse_framework,
+    updateAssessmentFrameworkResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newUpdateAssessmentFramework' smart constructor.
+data UpdateAssessmentFramework = UpdateAssessmentFramework'
+  { -- | The compliance type that the new custom framework supports, such as CIS
+    -- or HIPAA.
+    complianceType :: Prelude.Maybe Prelude.Text,
+    -- | The description of the updated framework.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the framework.
+    frameworkId :: Prelude.Text,
+    -- | The name of the framework to be updated.
+    name :: Prelude.Text,
+    -- | The control sets that are associated with the framework.
+    controlSets :: Prelude.NonEmpty UpdateAssessmentFrameworkControlSet
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessmentFramework' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'complianceType', 'updateAssessmentFramework_complianceType' - The compliance type that the new custom framework supports, such as CIS
+-- or HIPAA.
+--
+-- 'description', 'updateAssessmentFramework_description' - The description of the updated framework.
+--
+-- 'frameworkId', 'updateAssessmentFramework_frameworkId' - The unique identifier for the framework.
+--
+-- 'name', 'updateAssessmentFramework_name' - The name of the framework to be updated.
+--
+-- 'controlSets', 'updateAssessmentFramework_controlSets' - The control sets that are associated with the framework.
+newUpdateAssessmentFramework ::
+  -- | 'frameworkId'
+  Prelude.Text ->
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'controlSets'
+  Prelude.NonEmpty UpdateAssessmentFrameworkControlSet ->
+  UpdateAssessmentFramework
+newUpdateAssessmentFramework
+  pFrameworkId_
+  pName_
+  pControlSets_ =
+    UpdateAssessmentFramework'
+      { complianceType =
+          Prelude.Nothing,
+        description = Prelude.Nothing,
+        frameworkId = pFrameworkId_,
+        name = pName_,
+        controlSets = Lens.coerced Lens.# pControlSets_
+      }
+
+-- | The compliance type that the new custom framework supports, such as CIS
+-- or HIPAA.
+updateAssessmentFramework_complianceType :: Lens.Lens' UpdateAssessmentFramework (Prelude.Maybe Prelude.Text)
+updateAssessmentFramework_complianceType = Lens.lens (\UpdateAssessmentFramework' {complianceType} -> complianceType) (\s@UpdateAssessmentFramework' {} a -> s {complianceType = a} :: UpdateAssessmentFramework)
+
+-- | The description of the updated framework.
+updateAssessmentFramework_description :: Lens.Lens' UpdateAssessmentFramework (Prelude.Maybe Prelude.Text)
+updateAssessmentFramework_description = Lens.lens (\UpdateAssessmentFramework' {description} -> description) (\s@UpdateAssessmentFramework' {} a -> s {description = a} :: UpdateAssessmentFramework)
+
+-- | The unique identifier for the framework.
+updateAssessmentFramework_frameworkId :: Lens.Lens' UpdateAssessmentFramework Prelude.Text
+updateAssessmentFramework_frameworkId = Lens.lens (\UpdateAssessmentFramework' {frameworkId} -> frameworkId) (\s@UpdateAssessmentFramework' {} a -> s {frameworkId = a} :: UpdateAssessmentFramework)
+
+-- | The name of the framework to be updated.
+updateAssessmentFramework_name :: Lens.Lens' UpdateAssessmentFramework Prelude.Text
+updateAssessmentFramework_name = Lens.lens (\UpdateAssessmentFramework' {name} -> name) (\s@UpdateAssessmentFramework' {} a -> s {name = a} :: UpdateAssessmentFramework)
+
+-- | The control sets that are associated with the framework.
+updateAssessmentFramework_controlSets :: Lens.Lens' UpdateAssessmentFramework (Prelude.NonEmpty UpdateAssessmentFrameworkControlSet)
+updateAssessmentFramework_controlSets = Lens.lens (\UpdateAssessmentFramework' {controlSets} -> controlSets) (\s@UpdateAssessmentFramework' {} a -> s {controlSets = a} :: UpdateAssessmentFramework) Prelude.. Lens.coerced
+
+instance Core.AWSRequest UpdateAssessmentFramework where
+  type
+    AWSResponse UpdateAssessmentFramework =
+      UpdateAssessmentFrameworkResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateAssessmentFrameworkResponse'
+            Prelude.<$> (x Data..?> "framework")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateAssessmentFramework where
+  hashWithSalt _salt UpdateAssessmentFramework' {..} =
+    _salt
+      `Prelude.hashWithSalt` complianceType
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` frameworkId
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` controlSets
+
+instance Prelude.NFData UpdateAssessmentFramework where
+  rnf UpdateAssessmentFramework' {..} =
+    Prelude.rnf complianceType
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf frameworkId
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf controlSets
+
+instance Data.ToHeaders UpdateAssessmentFramework where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateAssessmentFramework where
+  toJSON UpdateAssessmentFramework' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("complianceType" Data..=)
+              Prelude.<$> complianceType,
+            ("description" Data..=) Prelude.<$> description,
+            Prelude.Just ("name" Data..= name),
+            Prelude.Just ("controlSets" Data..= controlSets)
+          ]
+      )
+
+instance Data.ToPath UpdateAssessmentFramework where
+  toPath UpdateAssessmentFramework' {..} =
+    Prelude.mconcat
+      ["/assessmentFrameworks/", Data.toBS frameworkId]
+
+instance Data.ToQuery UpdateAssessmentFramework where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateAssessmentFrameworkResponse' smart constructor.
+data UpdateAssessmentFrameworkResponse = UpdateAssessmentFrameworkResponse'
+  { -- | The name of the framework.
+    framework :: Prelude.Maybe Framework,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessmentFrameworkResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'framework', 'updateAssessmentFrameworkResponse_framework' - The name of the framework.
+--
+-- 'httpStatus', 'updateAssessmentFrameworkResponse_httpStatus' - The response's http status code.
+newUpdateAssessmentFrameworkResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateAssessmentFrameworkResponse
+newUpdateAssessmentFrameworkResponse pHttpStatus_ =
+  UpdateAssessmentFrameworkResponse'
+    { framework =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The name of the framework.
+updateAssessmentFrameworkResponse_framework :: Lens.Lens' UpdateAssessmentFrameworkResponse (Prelude.Maybe Framework)
+updateAssessmentFrameworkResponse_framework = Lens.lens (\UpdateAssessmentFrameworkResponse' {framework} -> framework) (\s@UpdateAssessmentFrameworkResponse' {} a -> s {framework = a} :: UpdateAssessmentFrameworkResponse)
+
+-- | The response's http status code.
+updateAssessmentFrameworkResponse_httpStatus :: Lens.Lens' UpdateAssessmentFrameworkResponse Prelude.Int
+updateAssessmentFrameworkResponse_httpStatus = Lens.lens (\UpdateAssessmentFrameworkResponse' {httpStatus} -> httpStatus) (\s@UpdateAssessmentFrameworkResponse' {} a -> s {httpStatus = a} :: UpdateAssessmentFrameworkResponse)
+
+instance
+  Prelude.NFData
+    UpdateAssessmentFrameworkResponse
+  where
+  rnf UpdateAssessmentFrameworkResponse' {..} =
+    Prelude.rnf framework
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/UpdateAssessmentFrameworkShare.hs b/gen/Amazonka/AuditManager/UpdateAssessmentFrameworkShare.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/UpdateAssessmentFrameworkShare.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.AuditManager.UpdateAssessmentFrameworkShare
+-- 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 a share request for a custom framework in Audit Manager.
+module Amazonka.AuditManager.UpdateAssessmentFrameworkShare
+  ( -- * Creating a Request
+    UpdateAssessmentFrameworkShare (..),
+    newUpdateAssessmentFrameworkShare,
+
+    -- * Request Lenses
+    updateAssessmentFrameworkShare_requestId,
+    updateAssessmentFrameworkShare_requestType,
+    updateAssessmentFrameworkShare_action,
+
+    -- * Destructuring the Response
+    UpdateAssessmentFrameworkShareResponse (..),
+    newUpdateAssessmentFrameworkShareResponse,
+
+    -- * Response Lenses
+    updateAssessmentFrameworkShareResponse_assessmentFrameworkShareRequest,
+    updateAssessmentFrameworkShareResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newUpdateAssessmentFrameworkShare' smart constructor.
+data UpdateAssessmentFrameworkShare = UpdateAssessmentFrameworkShare'
+  { -- | The unique identifier for the share request.
+    requestId :: Prelude.Text,
+    -- | Specifies whether the share request is a sent request or a received
+    -- request.
+    requestType :: ShareRequestType,
+    -- | Specifies the update action for the share request.
+    action :: ShareRequestAction
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessmentFrameworkShare' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'requestId', 'updateAssessmentFrameworkShare_requestId' - The unique identifier for the share request.
+--
+-- 'requestType', 'updateAssessmentFrameworkShare_requestType' - Specifies whether the share request is a sent request or a received
+-- request.
+--
+-- 'action', 'updateAssessmentFrameworkShare_action' - Specifies the update action for the share request.
+newUpdateAssessmentFrameworkShare ::
+  -- | 'requestId'
+  Prelude.Text ->
+  -- | 'requestType'
+  ShareRequestType ->
+  -- | 'action'
+  ShareRequestAction ->
+  UpdateAssessmentFrameworkShare
+newUpdateAssessmentFrameworkShare
+  pRequestId_
+  pRequestType_
+  pAction_ =
+    UpdateAssessmentFrameworkShare'
+      { requestId =
+          pRequestId_,
+        requestType = pRequestType_,
+        action = pAction_
+      }
+
+-- | The unique identifier for the share request.
+updateAssessmentFrameworkShare_requestId :: Lens.Lens' UpdateAssessmentFrameworkShare Prelude.Text
+updateAssessmentFrameworkShare_requestId = Lens.lens (\UpdateAssessmentFrameworkShare' {requestId} -> requestId) (\s@UpdateAssessmentFrameworkShare' {} a -> s {requestId = a} :: UpdateAssessmentFrameworkShare)
+
+-- | Specifies whether the share request is a sent request or a received
+-- request.
+updateAssessmentFrameworkShare_requestType :: Lens.Lens' UpdateAssessmentFrameworkShare ShareRequestType
+updateAssessmentFrameworkShare_requestType = Lens.lens (\UpdateAssessmentFrameworkShare' {requestType} -> requestType) (\s@UpdateAssessmentFrameworkShare' {} a -> s {requestType = a} :: UpdateAssessmentFrameworkShare)
+
+-- | Specifies the update action for the share request.
+updateAssessmentFrameworkShare_action :: Lens.Lens' UpdateAssessmentFrameworkShare ShareRequestAction
+updateAssessmentFrameworkShare_action = Lens.lens (\UpdateAssessmentFrameworkShare' {action} -> action) (\s@UpdateAssessmentFrameworkShare' {} a -> s {action = a} :: UpdateAssessmentFrameworkShare)
+
+instance
+  Core.AWSRequest
+    UpdateAssessmentFrameworkShare
+  where
+  type
+    AWSResponse UpdateAssessmentFrameworkShare =
+      UpdateAssessmentFrameworkShareResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateAssessmentFrameworkShareResponse'
+            Prelude.<$> (x Data..?> "assessmentFrameworkShareRequest")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    UpdateAssessmentFrameworkShare
+  where
+  hashWithSalt
+    _salt
+    UpdateAssessmentFrameworkShare' {..} =
+      _salt
+        `Prelude.hashWithSalt` requestId
+        `Prelude.hashWithSalt` requestType
+        `Prelude.hashWithSalt` action
+
+instance
+  Prelude.NFData
+    UpdateAssessmentFrameworkShare
+  where
+  rnf UpdateAssessmentFrameworkShare' {..} =
+    Prelude.rnf requestId
+      `Prelude.seq` Prelude.rnf requestType
+      `Prelude.seq` Prelude.rnf action
+
+instance
+  Data.ToHeaders
+    UpdateAssessmentFrameworkShare
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateAssessmentFrameworkShare where
+  toJSON UpdateAssessmentFrameworkShare' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just ("requestType" Data..= requestType),
+            Prelude.Just ("action" Data..= action)
+          ]
+      )
+
+instance Data.ToPath UpdateAssessmentFrameworkShare where
+  toPath UpdateAssessmentFrameworkShare' {..} =
+    Prelude.mconcat
+      [ "/assessmentFrameworkShareRequests/",
+        Data.toBS requestId
+      ]
+
+instance Data.ToQuery UpdateAssessmentFrameworkShare where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateAssessmentFrameworkShareResponse' smart constructor.
+data UpdateAssessmentFrameworkShareResponse = UpdateAssessmentFrameworkShareResponse'
+  { -- | The updated share request that\'s returned by the
+    -- @UpdateAssessmentFrameworkShare@ operation.
+    assessmentFrameworkShareRequest :: Prelude.Maybe AssessmentFrameworkShareRequest,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessmentFrameworkShareResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentFrameworkShareRequest', 'updateAssessmentFrameworkShareResponse_assessmentFrameworkShareRequest' - The updated share request that\'s returned by the
+-- @UpdateAssessmentFrameworkShare@ operation.
+--
+-- 'httpStatus', 'updateAssessmentFrameworkShareResponse_httpStatus' - The response's http status code.
+newUpdateAssessmentFrameworkShareResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateAssessmentFrameworkShareResponse
+newUpdateAssessmentFrameworkShareResponse
+  pHttpStatus_ =
+    UpdateAssessmentFrameworkShareResponse'
+      { assessmentFrameworkShareRequest =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The updated share request that\'s returned by the
+-- @UpdateAssessmentFrameworkShare@ operation.
+updateAssessmentFrameworkShareResponse_assessmentFrameworkShareRequest :: Lens.Lens' UpdateAssessmentFrameworkShareResponse (Prelude.Maybe AssessmentFrameworkShareRequest)
+updateAssessmentFrameworkShareResponse_assessmentFrameworkShareRequest = Lens.lens (\UpdateAssessmentFrameworkShareResponse' {assessmentFrameworkShareRequest} -> assessmentFrameworkShareRequest) (\s@UpdateAssessmentFrameworkShareResponse' {} a -> s {assessmentFrameworkShareRequest = a} :: UpdateAssessmentFrameworkShareResponse)
+
+-- | The response's http status code.
+updateAssessmentFrameworkShareResponse_httpStatus :: Lens.Lens' UpdateAssessmentFrameworkShareResponse Prelude.Int
+updateAssessmentFrameworkShareResponse_httpStatus = Lens.lens (\UpdateAssessmentFrameworkShareResponse' {httpStatus} -> httpStatus) (\s@UpdateAssessmentFrameworkShareResponse' {} a -> s {httpStatus = a} :: UpdateAssessmentFrameworkShareResponse)
+
+instance
+  Prelude.NFData
+    UpdateAssessmentFrameworkShareResponse
+  where
+  rnf UpdateAssessmentFrameworkShareResponse' {..} =
+    Prelude.rnf assessmentFrameworkShareRequest
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/UpdateAssessmentStatus.hs b/gen/Amazonka/AuditManager/UpdateAssessmentStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/UpdateAssessmentStatus.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.AuditManager.UpdateAssessmentStatus
+-- 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 an assessment in Audit Manager.
+module Amazonka.AuditManager.UpdateAssessmentStatus
+  ( -- * Creating a Request
+    UpdateAssessmentStatus (..),
+    newUpdateAssessmentStatus,
+
+    -- * Request Lenses
+    updateAssessmentStatus_assessmentId,
+    updateAssessmentStatus_status,
+
+    -- * Destructuring the Response
+    UpdateAssessmentStatusResponse (..),
+    newUpdateAssessmentStatusResponse,
+
+    -- * Response Lenses
+    updateAssessmentStatusResponse_assessment,
+    updateAssessmentStatusResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newUpdateAssessmentStatus' smart constructor.
+data UpdateAssessmentStatus = UpdateAssessmentStatus'
+  { -- | The unique identifier for the assessment.
+    assessmentId :: Prelude.Text,
+    -- | The current status of the assessment.
+    status :: AssessmentStatus
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessmentStatus' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessmentId', 'updateAssessmentStatus_assessmentId' - The unique identifier for the assessment.
+--
+-- 'status', 'updateAssessmentStatus_status' - The current status of the assessment.
+newUpdateAssessmentStatus ::
+  -- | 'assessmentId'
+  Prelude.Text ->
+  -- | 'status'
+  AssessmentStatus ->
+  UpdateAssessmentStatus
+newUpdateAssessmentStatus pAssessmentId_ pStatus_ =
+  UpdateAssessmentStatus'
+    { assessmentId =
+        pAssessmentId_,
+      status = pStatus_
+    }
+
+-- | The unique identifier for the assessment.
+updateAssessmentStatus_assessmentId :: Lens.Lens' UpdateAssessmentStatus Prelude.Text
+updateAssessmentStatus_assessmentId = Lens.lens (\UpdateAssessmentStatus' {assessmentId} -> assessmentId) (\s@UpdateAssessmentStatus' {} a -> s {assessmentId = a} :: UpdateAssessmentStatus)
+
+-- | The current status of the assessment.
+updateAssessmentStatus_status :: Lens.Lens' UpdateAssessmentStatus AssessmentStatus
+updateAssessmentStatus_status = Lens.lens (\UpdateAssessmentStatus' {status} -> status) (\s@UpdateAssessmentStatus' {} a -> s {status = a} :: UpdateAssessmentStatus)
+
+instance Core.AWSRequest UpdateAssessmentStatus where
+  type
+    AWSResponse UpdateAssessmentStatus =
+      UpdateAssessmentStatusResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateAssessmentStatusResponse'
+            Prelude.<$> (x Data..?> "assessment")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateAssessmentStatus where
+  hashWithSalt _salt UpdateAssessmentStatus' {..} =
+    _salt
+      `Prelude.hashWithSalt` assessmentId
+      `Prelude.hashWithSalt` status
+
+instance Prelude.NFData UpdateAssessmentStatus where
+  rnf UpdateAssessmentStatus' {..} =
+    Prelude.rnf assessmentId
+      `Prelude.seq` Prelude.rnf status
+
+instance Data.ToHeaders UpdateAssessmentStatus where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateAssessmentStatus where
+  toJSON UpdateAssessmentStatus' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [Prelude.Just ("status" Data..= status)]
+      )
+
+instance Data.ToPath UpdateAssessmentStatus where
+  toPath UpdateAssessmentStatus' {..} =
+    Prelude.mconcat
+      ["/assessments/", Data.toBS assessmentId, "/status"]
+
+instance Data.ToQuery UpdateAssessmentStatus where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateAssessmentStatusResponse' smart constructor.
+data UpdateAssessmentStatusResponse = UpdateAssessmentStatusResponse'
+  { -- | The name of the updated assessment that the @UpdateAssessmentStatus@ API
+    -- returned.
+    assessment :: Prelude.Maybe Assessment,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateAssessmentStatusResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'assessment', 'updateAssessmentStatusResponse_assessment' - The name of the updated assessment that the @UpdateAssessmentStatus@ API
+-- returned.
+--
+-- 'httpStatus', 'updateAssessmentStatusResponse_httpStatus' - The response's http status code.
+newUpdateAssessmentStatusResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateAssessmentStatusResponse
+newUpdateAssessmentStatusResponse pHttpStatus_ =
+  UpdateAssessmentStatusResponse'
+    { assessment =
+        Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The name of the updated assessment that the @UpdateAssessmentStatus@ API
+-- returned.
+updateAssessmentStatusResponse_assessment :: Lens.Lens' UpdateAssessmentStatusResponse (Prelude.Maybe Assessment)
+updateAssessmentStatusResponse_assessment = Lens.lens (\UpdateAssessmentStatusResponse' {assessment} -> assessment) (\s@UpdateAssessmentStatusResponse' {} a -> s {assessment = a} :: UpdateAssessmentStatusResponse)
+
+-- | The response's http status code.
+updateAssessmentStatusResponse_httpStatus :: Lens.Lens' UpdateAssessmentStatusResponse Prelude.Int
+updateAssessmentStatusResponse_httpStatus = Lens.lens (\UpdateAssessmentStatusResponse' {httpStatus} -> httpStatus) (\s@UpdateAssessmentStatusResponse' {} a -> s {httpStatus = a} :: UpdateAssessmentStatusResponse)
+
+instance
+  Prelude.NFData
+    UpdateAssessmentStatusResponse
+  where
+  rnf UpdateAssessmentStatusResponse' {..} =
+    Prelude.rnf assessment
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/UpdateControl.hs b/gen/Amazonka/AuditManager/UpdateControl.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/UpdateControl.hs
@@ -0,0 +1,264 @@
+{-# 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.AuditManager.UpdateControl
+-- 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 a custom control in Audit Manager.
+module Amazonka.AuditManager.UpdateControl
+  ( -- * Creating a Request
+    UpdateControl (..),
+    newUpdateControl,
+
+    -- * Request Lenses
+    updateControl_actionPlanInstructions,
+    updateControl_actionPlanTitle,
+    updateControl_description,
+    updateControl_testingInformation,
+    updateControl_controlId,
+    updateControl_name,
+    updateControl_controlMappingSources,
+
+    -- * Destructuring the Response
+    UpdateControlResponse (..),
+    newUpdateControlResponse,
+
+    -- * Response Lenses
+    updateControlResponse_control,
+    updateControlResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newUpdateControl' smart constructor.
+data UpdateControl = UpdateControl'
+  { -- | The recommended actions to carry out if the control isn\'t fulfilled.
+    actionPlanInstructions :: Prelude.Maybe Prelude.Text,
+    -- | The title of the action plan for remediating the control.
+    actionPlanTitle :: Prelude.Maybe Prelude.Text,
+    -- | The optional description of the control.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The steps that you should follow to determine if the control is met.
+    testingInformation :: Prelude.Maybe Prelude.Text,
+    -- | The identifier for the control.
+    controlId :: Prelude.Text,
+    -- | The name of the updated control.
+    name :: Prelude.Text,
+    -- | The data mapping sources for the control.
+    controlMappingSources :: Prelude.NonEmpty ControlMappingSource
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateControl' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'actionPlanInstructions', 'updateControl_actionPlanInstructions' - The recommended actions to carry out if the control isn\'t fulfilled.
+--
+-- 'actionPlanTitle', 'updateControl_actionPlanTitle' - The title of the action plan for remediating the control.
+--
+-- 'description', 'updateControl_description' - The optional description of the control.
+--
+-- 'testingInformation', 'updateControl_testingInformation' - The steps that you should follow to determine if the control is met.
+--
+-- 'controlId', 'updateControl_controlId' - The identifier for the control.
+--
+-- 'name', 'updateControl_name' - The name of the updated control.
+--
+-- 'controlMappingSources', 'updateControl_controlMappingSources' - The data mapping sources for the control.
+newUpdateControl ::
+  -- | 'controlId'
+  Prelude.Text ->
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'controlMappingSources'
+  Prelude.NonEmpty ControlMappingSource ->
+  UpdateControl
+newUpdateControl
+  pControlId_
+  pName_
+  pControlMappingSources_ =
+    UpdateControl'
+      { actionPlanInstructions =
+          Prelude.Nothing,
+        actionPlanTitle = Prelude.Nothing,
+        description = Prelude.Nothing,
+        testingInformation = Prelude.Nothing,
+        controlId = pControlId_,
+        name = pName_,
+        controlMappingSources =
+          Lens.coerced Lens.# pControlMappingSources_
+      }
+
+-- | The recommended actions to carry out if the control isn\'t fulfilled.
+updateControl_actionPlanInstructions :: Lens.Lens' UpdateControl (Prelude.Maybe Prelude.Text)
+updateControl_actionPlanInstructions = Lens.lens (\UpdateControl' {actionPlanInstructions} -> actionPlanInstructions) (\s@UpdateControl' {} a -> s {actionPlanInstructions = a} :: UpdateControl)
+
+-- | The title of the action plan for remediating the control.
+updateControl_actionPlanTitle :: Lens.Lens' UpdateControl (Prelude.Maybe Prelude.Text)
+updateControl_actionPlanTitle = Lens.lens (\UpdateControl' {actionPlanTitle} -> actionPlanTitle) (\s@UpdateControl' {} a -> s {actionPlanTitle = a} :: UpdateControl)
+
+-- | The optional description of the control.
+updateControl_description :: Lens.Lens' UpdateControl (Prelude.Maybe Prelude.Text)
+updateControl_description = Lens.lens (\UpdateControl' {description} -> description) (\s@UpdateControl' {} a -> s {description = a} :: UpdateControl)
+
+-- | The steps that you should follow to determine if the control is met.
+updateControl_testingInformation :: Lens.Lens' UpdateControl (Prelude.Maybe Prelude.Text)
+updateControl_testingInformation = Lens.lens (\UpdateControl' {testingInformation} -> testingInformation) (\s@UpdateControl' {} a -> s {testingInformation = a} :: UpdateControl)
+
+-- | The identifier for the control.
+updateControl_controlId :: Lens.Lens' UpdateControl Prelude.Text
+updateControl_controlId = Lens.lens (\UpdateControl' {controlId} -> controlId) (\s@UpdateControl' {} a -> s {controlId = a} :: UpdateControl)
+
+-- | The name of the updated control.
+updateControl_name :: Lens.Lens' UpdateControl Prelude.Text
+updateControl_name = Lens.lens (\UpdateControl' {name} -> name) (\s@UpdateControl' {} a -> s {name = a} :: UpdateControl)
+
+-- | The data mapping sources for the control.
+updateControl_controlMappingSources :: Lens.Lens' UpdateControl (Prelude.NonEmpty ControlMappingSource)
+updateControl_controlMappingSources = Lens.lens (\UpdateControl' {controlMappingSources} -> controlMappingSources) (\s@UpdateControl' {} a -> s {controlMappingSources = a} :: UpdateControl) Prelude.. Lens.coerced
+
+instance Core.AWSRequest UpdateControl where
+  type
+    AWSResponse UpdateControl =
+      UpdateControlResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateControlResponse'
+            Prelude.<$> (x Data..?> "control")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateControl where
+  hashWithSalt _salt UpdateControl' {..} =
+    _salt
+      `Prelude.hashWithSalt` actionPlanInstructions
+      `Prelude.hashWithSalt` actionPlanTitle
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` testingInformation
+      `Prelude.hashWithSalt` controlId
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` controlMappingSources
+
+instance Prelude.NFData UpdateControl where
+  rnf UpdateControl' {..} =
+    Prelude.rnf actionPlanInstructions
+      `Prelude.seq` Prelude.rnf actionPlanTitle
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf testingInformation
+      `Prelude.seq` Prelude.rnf controlId
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf controlMappingSources
+
+instance Data.ToHeaders UpdateControl where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateControl where
+  toJSON UpdateControl' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("actionPlanInstructions" Data..=)
+              Prelude.<$> actionPlanInstructions,
+            ("actionPlanTitle" Data..=)
+              Prelude.<$> actionPlanTitle,
+            ("description" Data..=) Prelude.<$> description,
+            ("testingInformation" Data..=)
+              Prelude.<$> testingInformation,
+            Prelude.Just ("name" Data..= name),
+            Prelude.Just
+              ( "controlMappingSources"
+                  Data..= controlMappingSources
+              )
+          ]
+      )
+
+instance Data.ToPath UpdateControl where
+  toPath UpdateControl' {..} =
+    Prelude.mconcat ["/controls/", Data.toBS controlId]
+
+instance Data.ToQuery UpdateControl where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateControlResponse' smart constructor.
+data UpdateControlResponse = UpdateControlResponse'
+  { -- | The name of the updated control set that the @UpdateControl@ API
+    -- returned.
+    control :: Prelude.Maybe Control,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateControlResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'control', 'updateControlResponse_control' - The name of the updated control set that the @UpdateControl@ API
+-- returned.
+--
+-- 'httpStatus', 'updateControlResponse_httpStatus' - The response's http status code.
+newUpdateControlResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateControlResponse
+newUpdateControlResponse pHttpStatus_ =
+  UpdateControlResponse'
+    { control = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The name of the updated control set that the @UpdateControl@ API
+-- returned.
+updateControlResponse_control :: Lens.Lens' UpdateControlResponse (Prelude.Maybe Control)
+updateControlResponse_control = Lens.lens (\UpdateControlResponse' {control} -> control) (\s@UpdateControlResponse' {} a -> s {control = a} :: UpdateControlResponse)
+
+-- | The response's http status code.
+updateControlResponse_httpStatus :: Lens.Lens' UpdateControlResponse Prelude.Int
+updateControlResponse_httpStatus = Lens.lens (\UpdateControlResponse' {httpStatus} -> httpStatus) (\s@UpdateControlResponse' {} a -> s {httpStatus = a} :: UpdateControlResponse)
+
+instance Prelude.NFData UpdateControlResponse where
+  rnf UpdateControlResponse' {..} =
+    Prelude.rnf control
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/UpdateSettings.hs b/gen/Amazonka/AuditManager/UpdateSettings.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/UpdateSettings.hs
@@ -0,0 +1,275 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.UpdateSettings
+-- 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 Audit Manager settings for the current user account.
+module Amazonka.AuditManager.UpdateSettings
+  ( -- * Creating a Request
+    UpdateSettings (..),
+    newUpdateSettings,
+
+    -- * Request Lenses
+    updateSettings_defaultAssessmentReportsDestination,
+    updateSettings_defaultProcessOwners,
+    updateSettings_deregistrationPolicy,
+    updateSettings_evidenceFinderEnabled,
+    updateSettings_kmsKey,
+    updateSettings_snsTopic,
+
+    -- * Destructuring the Response
+    UpdateSettingsResponse (..),
+    newUpdateSettingsResponse,
+
+    -- * Response Lenses
+    updateSettingsResponse_settings,
+    updateSettingsResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newUpdateSettings' smart constructor.
+data UpdateSettings = UpdateSettings'
+  { -- | The default storage destination for assessment reports.
+    defaultAssessmentReportsDestination :: Prelude.Maybe AssessmentReportsDestination,
+    -- | A list of the default audit owners.
+    defaultProcessOwners :: Prelude.Maybe [Role],
+    -- | The deregistration policy for your Audit Manager data. You can use this
+    -- attribute to determine how your data is handled when you deregister
+    -- Audit Manager.
+    deregistrationPolicy :: Prelude.Maybe DeregistrationPolicy,
+    -- | Specifies whether the evidence finder feature is enabled. Change this
+    -- attribute to enable or disable evidence finder.
+    --
+    -- When you use this attribute to disable evidence finder, Audit Manager
+    -- deletes the event data store that’s used to query your evidence data. As
+    -- a result, you can’t re-enable evidence finder and use the feature again.
+    -- Your only alternative is to
+    -- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeregisterAccount.html deregister>
+    -- and then
+    -- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_RegisterAccount.html re-register>
+    -- Audit Manager.
+    evidenceFinderEnabled :: Prelude.Maybe Prelude.Bool,
+    -- | The KMS key details.
+    kmsKey :: Prelude.Maybe Prelude.Text,
+    -- | The Amazon Simple Notification Service (Amazon SNS) topic that Audit
+    -- Manager sends notifications to.
+    snsTopic :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateSettings' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'defaultAssessmentReportsDestination', 'updateSettings_defaultAssessmentReportsDestination' - The default storage destination for assessment reports.
+--
+-- 'defaultProcessOwners', 'updateSettings_defaultProcessOwners' - A list of the default audit owners.
+--
+-- 'deregistrationPolicy', 'updateSettings_deregistrationPolicy' - The deregistration policy for your Audit Manager data. You can use this
+-- attribute to determine how your data is handled when you deregister
+-- Audit Manager.
+--
+-- 'evidenceFinderEnabled', 'updateSettings_evidenceFinderEnabled' - Specifies whether the evidence finder feature is enabled. Change this
+-- attribute to enable or disable evidence finder.
+--
+-- When you use this attribute to disable evidence finder, Audit Manager
+-- deletes the event data store that’s used to query your evidence data. As
+-- a result, you can’t re-enable evidence finder and use the feature again.
+-- Your only alternative is to
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeregisterAccount.html deregister>
+-- and then
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_RegisterAccount.html re-register>
+-- Audit Manager.
+--
+-- 'kmsKey', 'updateSettings_kmsKey' - The KMS key details.
+--
+-- 'snsTopic', 'updateSettings_snsTopic' - The Amazon Simple Notification Service (Amazon SNS) topic that Audit
+-- Manager sends notifications to.
+newUpdateSettings ::
+  UpdateSettings
+newUpdateSettings =
+  UpdateSettings'
+    { defaultAssessmentReportsDestination =
+        Prelude.Nothing,
+      defaultProcessOwners = Prelude.Nothing,
+      deregistrationPolicy = Prelude.Nothing,
+      evidenceFinderEnabled = Prelude.Nothing,
+      kmsKey = Prelude.Nothing,
+      snsTopic = Prelude.Nothing
+    }
+
+-- | The default storage destination for assessment reports.
+updateSettings_defaultAssessmentReportsDestination :: Lens.Lens' UpdateSettings (Prelude.Maybe AssessmentReportsDestination)
+updateSettings_defaultAssessmentReportsDestination = Lens.lens (\UpdateSettings' {defaultAssessmentReportsDestination} -> defaultAssessmentReportsDestination) (\s@UpdateSettings' {} a -> s {defaultAssessmentReportsDestination = a} :: UpdateSettings)
+
+-- | A list of the default audit owners.
+updateSettings_defaultProcessOwners :: Lens.Lens' UpdateSettings (Prelude.Maybe [Role])
+updateSettings_defaultProcessOwners = Lens.lens (\UpdateSettings' {defaultProcessOwners} -> defaultProcessOwners) (\s@UpdateSettings' {} a -> s {defaultProcessOwners = a} :: UpdateSettings) Prelude.. Lens.mapping Lens.coerced
+
+-- | The deregistration policy for your Audit Manager data. You can use this
+-- attribute to determine how your data is handled when you deregister
+-- Audit Manager.
+updateSettings_deregistrationPolicy :: Lens.Lens' UpdateSettings (Prelude.Maybe DeregistrationPolicy)
+updateSettings_deregistrationPolicy = Lens.lens (\UpdateSettings' {deregistrationPolicy} -> deregistrationPolicy) (\s@UpdateSettings' {} a -> s {deregistrationPolicy = a} :: UpdateSettings)
+
+-- | Specifies whether the evidence finder feature is enabled. Change this
+-- attribute to enable or disable evidence finder.
+--
+-- When you use this attribute to disable evidence finder, Audit Manager
+-- deletes the event data store that’s used to query your evidence data. As
+-- a result, you can’t re-enable evidence finder and use the feature again.
+-- Your only alternative is to
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeregisterAccount.html deregister>
+-- and then
+-- <https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_RegisterAccount.html re-register>
+-- Audit Manager.
+updateSettings_evidenceFinderEnabled :: Lens.Lens' UpdateSettings (Prelude.Maybe Prelude.Bool)
+updateSettings_evidenceFinderEnabled = Lens.lens (\UpdateSettings' {evidenceFinderEnabled} -> evidenceFinderEnabled) (\s@UpdateSettings' {} a -> s {evidenceFinderEnabled = a} :: UpdateSettings)
+
+-- | The KMS key details.
+updateSettings_kmsKey :: Lens.Lens' UpdateSettings (Prelude.Maybe Prelude.Text)
+updateSettings_kmsKey = Lens.lens (\UpdateSettings' {kmsKey} -> kmsKey) (\s@UpdateSettings' {} a -> s {kmsKey = a} :: UpdateSettings)
+
+-- | The Amazon Simple Notification Service (Amazon SNS) topic that Audit
+-- Manager sends notifications to.
+updateSettings_snsTopic :: Lens.Lens' UpdateSettings (Prelude.Maybe Prelude.Text)
+updateSettings_snsTopic = Lens.lens (\UpdateSettings' {snsTopic} -> snsTopic) (\s@UpdateSettings' {} a -> s {snsTopic = a} :: UpdateSettings)
+
+instance Core.AWSRequest UpdateSettings where
+  type
+    AWSResponse UpdateSettings =
+      UpdateSettingsResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateSettingsResponse'
+            Prelude.<$> (x Data..?> "settings")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateSettings where
+  hashWithSalt _salt UpdateSettings' {..} =
+    _salt
+      `Prelude.hashWithSalt` defaultAssessmentReportsDestination
+      `Prelude.hashWithSalt` defaultProcessOwners
+      `Prelude.hashWithSalt` deregistrationPolicy
+      `Prelude.hashWithSalt` evidenceFinderEnabled
+      `Prelude.hashWithSalt` kmsKey
+      `Prelude.hashWithSalt` snsTopic
+
+instance Prelude.NFData UpdateSettings where
+  rnf UpdateSettings' {..} =
+    Prelude.rnf defaultAssessmentReportsDestination
+      `Prelude.seq` Prelude.rnf defaultProcessOwners
+      `Prelude.seq` Prelude.rnf deregistrationPolicy
+      `Prelude.seq` Prelude.rnf evidenceFinderEnabled
+      `Prelude.seq` Prelude.rnf kmsKey
+      `Prelude.seq` Prelude.rnf snsTopic
+
+instance Data.ToHeaders UpdateSettings where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateSettings where
+  toJSON UpdateSettings' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("defaultAssessmentReportsDestination" Data..=)
+              Prelude.<$> defaultAssessmentReportsDestination,
+            ("defaultProcessOwners" Data..=)
+              Prelude.<$> defaultProcessOwners,
+            ("deregistrationPolicy" Data..=)
+              Prelude.<$> deregistrationPolicy,
+            ("evidenceFinderEnabled" Data..=)
+              Prelude.<$> evidenceFinderEnabled,
+            ("kmsKey" Data..=) Prelude.<$> kmsKey,
+            ("snsTopic" Data..=) Prelude.<$> snsTopic
+          ]
+      )
+
+instance Data.ToPath UpdateSettings where
+  toPath = Prelude.const "/settings"
+
+instance Data.ToQuery UpdateSettings where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateSettingsResponse' smart constructor.
+data UpdateSettingsResponse = UpdateSettingsResponse'
+  { -- | The current list of settings.
+    settings :: Prelude.Maybe Settings,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateSettingsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'settings', 'updateSettingsResponse_settings' - The current list of settings.
+--
+-- 'httpStatus', 'updateSettingsResponse_httpStatus' - The response's http status code.
+newUpdateSettingsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateSettingsResponse
+newUpdateSettingsResponse pHttpStatus_ =
+  UpdateSettingsResponse'
+    { settings = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The current list of settings.
+updateSettingsResponse_settings :: Lens.Lens' UpdateSettingsResponse (Prelude.Maybe Settings)
+updateSettingsResponse_settings = Lens.lens (\UpdateSettingsResponse' {settings} -> settings) (\s@UpdateSettingsResponse' {} a -> s {settings = a} :: UpdateSettingsResponse)
+
+-- | The response's http status code.
+updateSettingsResponse_httpStatus :: Lens.Lens' UpdateSettingsResponse Prelude.Int
+updateSettingsResponse_httpStatus = Lens.lens (\UpdateSettingsResponse' {httpStatus} -> httpStatus) (\s@UpdateSettingsResponse' {} a -> s {httpStatus = a} :: UpdateSettingsResponse)
+
+instance Prelude.NFData UpdateSettingsResponse where
+  rnf UpdateSettingsResponse' {..} =
+    Prelude.rnf settings
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/ValidateAssessmentReportIntegrity.hs b/gen/Amazonka/AuditManager/ValidateAssessmentReportIntegrity.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/ValidateAssessmentReportIntegrity.hs
@@ -0,0 +1,262 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.AuditManager.ValidateAssessmentReportIntegrity
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Validates the integrity of an assessment report in Audit Manager.
+module Amazonka.AuditManager.ValidateAssessmentReportIntegrity
+  ( -- * Creating a Request
+    ValidateAssessmentReportIntegrity (..),
+    newValidateAssessmentReportIntegrity,
+
+    -- * Request Lenses
+    validateAssessmentReportIntegrity_s3RelativePath,
+
+    -- * Destructuring the Response
+    ValidateAssessmentReportIntegrityResponse (..),
+    newValidateAssessmentReportIntegrityResponse,
+
+    -- * Response Lenses
+    validateAssessmentReportIntegrityResponse_signatureAlgorithm,
+    validateAssessmentReportIntegrityResponse_signatureDateTime,
+    validateAssessmentReportIntegrityResponse_signatureKeyId,
+    validateAssessmentReportIntegrityResponse_signatureValid,
+    validateAssessmentReportIntegrityResponse_validationErrors,
+    validateAssessmentReportIntegrityResponse_httpStatus,
+  )
+where
+
+import Amazonka.AuditManager.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:/ 'newValidateAssessmentReportIntegrity' smart constructor.
+data ValidateAssessmentReportIntegrity = ValidateAssessmentReportIntegrity'
+  { -- | The relative path of the Amazon S3 bucket that the assessment report is
+    -- stored in.
+    s3RelativePath :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ValidateAssessmentReportIntegrity' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 's3RelativePath', 'validateAssessmentReportIntegrity_s3RelativePath' - The relative path of the Amazon S3 bucket that the assessment report is
+-- stored in.
+newValidateAssessmentReportIntegrity ::
+  -- | 's3RelativePath'
+  Prelude.Text ->
+  ValidateAssessmentReportIntegrity
+newValidateAssessmentReportIntegrity pS3RelativePath_ =
+  ValidateAssessmentReportIntegrity'
+    { s3RelativePath =
+        pS3RelativePath_
+    }
+
+-- | The relative path of the Amazon S3 bucket that the assessment report is
+-- stored in.
+validateAssessmentReportIntegrity_s3RelativePath :: Lens.Lens' ValidateAssessmentReportIntegrity Prelude.Text
+validateAssessmentReportIntegrity_s3RelativePath = Lens.lens (\ValidateAssessmentReportIntegrity' {s3RelativePath} -> s3RelativePath) (\s@ValidateAssessmentReportIntegrity' {} a -> s {s3RelativePath = a} :: ValidateAssessmentReportIntegrity)
+
+instance
+  Core.AWSRequest
+    ValidateAssessmentReportIntegrity
+  where
+  type
+    AWSResponse ValidateAssessmentReportIntegrity =
+      ValidateAssessmentReportIntegrityResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ValidateAssessmentReportIntegrityResponse'
+            Prelude.<$> (x Data..?> "signatureAlgorithm")
+            Prelude.<*> (x Data..?> "signatureDateTime")
+            Prelude.<*> (x Data..?> "signatureKeyId")
+            Prelude.<*> (x Data..?> "signatureValid")
+            Prelude.<*> ( x
+                            Data..?> "validationErrors"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    ValidateAssessmentReportIntegrity
+  where
+  hashWithSalt
+    _salt
+    ValidateAssessmentReportIntegrity' {..} =
+      _salt `Prelude.hashWithSalt` s3RelativePath
+
+instance
+  Prelude.NFData
+    ValidateAssessmentReportIntegrity
+  where
+  rnf ValidateAssessmentReportIntegrity' {..} =
+    Prelude.rnf s3RelativePath
+
+instance
+  Data.ToHeaders
+    ValidateAssessmentReportIntegrity
+  where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance
+  Data.ToJSON
+    ValidateAssessmentReportIntegrity
+  where
+  toJSON ValidateAssessmentReportIntegrity' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ Prelude.Just
+              ("s3RelativePath" Data..= s3RelativePath)
+          ]
+      )
+
+instance
+  Data.ToPath
+    ValidateAssessmentReportIntegrity
+  where
+  toPath = Prelude.const "/assessmentReports/integrity"
+
+instance
+  Data.ToQuery
+    ValidateAssessmentReportIntegrity
+  where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newValidateAssessmentReportIntegrityResponse' smart constructor.
+data ValidateAssessmentReportIntegrityResponse = ValidateAssessmentReportIntegrityResponse'
+  { -- | The signature algorithm that\'s used to code sign the assessment report
+    -- file.
+    signatureAlgorithm :: Prelude.Maybe Prelude.Text,
+    -- | The date and time signature that specifies when the assessment report
+    -- was created.
+    signatureDateTime :: Prelude.Maybe Prelude.Text,
+    -- | The unique identifier for the validation signature key.
+    signatureKeyId :: Prelude.Maybe Prelude.Text,
+    -- | Specifies whether the signature key is valid.
+    signatureValid :: Prelude.Maybe Prelude.Bool,
+    -- | Represents any errors that occurred when validating the assessment
+    -- report.
+    validationErrors :: 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 'ValidateAssessmentReportIntegrityResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'signatureAlgorithm', 'validateAssessmentReportIntegrityResponse_signatureAlgorithm' - The signature algorithm that\'s used to code sign the assessment report
+-- file.
+--
+-- 'signatureDateTime', 'validateAssessmentReportIntegrityResponse_signatureDateTime' - The date and time signature that specifies when the assessment report
+-- was created.
+--
+-- 'signatureKeyId', 'validateAssessmentReportIntegrityResponse_signatureKeyId' - The unique identifier for the validation signature key.
+--
+-- 'signatureValid', 'validateAssessmentReportIntegrityResponse_signatureValid' - Specifies whether the signature key is valid.
+--
+-- 'validationErrors', 'validateAssessmentReportIntegrityResponse_validationErrors' - Represents any errors that occurred when validating the assessment
+-- report.
+--
+-- 'httpStatus', 'validateAssessmentReportIntegrityResponse_httpStatus' - The response's http status code.
+newValidateAssessmentReportIntegrityResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ValidateAssessmentReportIntegrityResponse
+newValidateAssessmentReportIntegrityResponse
+  pHttpStatus_ =
+    ValidateAssessmentReportIntegrityResponse'
+      { signatureAlgorithm =
+          Prelude.Nothing,
+        signatureDateTime =
+          Prelude.Nothing,
+        signatureKeyId = Prelude.Nothing,
+        signatureValid = Prelude.Nothing,
+        validationErrors =
+          Prelude.Nothing,
+        httpStatus = pHttpStatus_
+      }
+
+-- | The signature algorithm that\'s used to code sign the assessment report
+-- file.
+validateAssessmentReportIntegrityResponse_signatureAlgorithm :: Lens.Lens' ValidateAssessmentReportIntegrityResponse (Prelude.Maybe Prelude.Text)
+validateAssessmentReportIntegrityResponse_signatureAlgorithm = Lens.lens (\ValidateAssessmentReportIntegrityResponse' {signatureAlgorithm} -> signatureAlgorithm) (\s@ValidateAssessmentReportIntegrityResponse' {} a -> s {signatureAlgorithm = a} :: ValidateAssessmentReportIntegrityResponse)
+
+-- | The date and time signature that specifies when the assessment report
+-- was created.
+validateAssessmentReportIntegrityResponse_signatureDateTime :: Lens.Lens' ValidateAssessmentReportIntegrityResponse (Prelude.Maybe Prelude.Text)
+validateAssessmentReportIntegrityResponse_signatureDateTime = Lens.lens (\ValidateAssessmentReportIntegrityResponse' {signatureDateTime} -> signatureDateTime) (\s@ValidateAssessmentReportIntegrityResponse' {} a -> s {signatureDateTime = a} :: ValidateAssessmentReportIntegrityResponse)
+
+-- | The unique identifier for the validation signature key.
+validateAssessmentReportIntegrityResponse_signatureKeyId :: Lens.Lens' ValidateAssessmentReportIntegrityResponse (Prelude.Maybe Prelude.Text)
+validateAssessmentReportIntegrityResponse_signatureKeyId = Lens.lens (\ValidateAssessmentReportIntegrityResponse' {signatureKeyId} -> signatureKeyId) (\s@ValidateAssessmentReportIntegrityResponse' {} a -> s {signatureKeyId = a} :: ValidateAssessmentReportIntegrityResponse)
+
+-- | Specifies whether the signature key is valid.
+validateAssessmentReportIntegrityResponse_signatureValid :: Lens.Lens' ValidateAssessmentReportIntegrityResponse (Prelude.Maybe Prelude.Bool)
+validateAssessmentReportIntegrityResponse_signatureValid = Lens.lens (\ValidateAssessmentReportIntegrityResponse' {signatureValid} -> signatureValid) (\s@ValidateAssessmentReportIntegrityResponse' {} a -> s {signatureValid = a} :: ValidateAssessmentReportIntegrityResponse)
+
+-- | Represents any errors that occurred when validating the assessment
+-- report.
+validateAssessmentReportIntegrityResponse_validationErrors :: Lens.Lens' ValidateAssessmentReportIntegrityResponse (Prelude.Maybe [Prelude.Text])
+validateAssessmentReportIntegrityResponse_validationErrors = Lens.lens (\ValidateAssessmentReportIntegrityResponse' {validationErrors} -> validationErrors) (\s@ValidateAssessmentReportIntegrityResponse' {} a -> s {validationErrors = a} :: ValidateAssessmentReportIntegrityResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+validateAssessmentReportIntegrityResponse_httpStatus :: Lens.Lens' ValidateAssessmentReportIntegrityResponse Prelude.Int
+validateAssessmentReportIntegrityResponse_httpStatus = Lens.lens (\ValidateAssessmentReportIntegrityResponse' {httpStatus} -> httpStatus) (\s@ValidateAssessmentReportIntegrityResponse' {} a -> s {httpStatus = a} :: ValidateAssessmentReportIntegrityResponse)
+
+instance
+  Prelude.NFData
+    ValidateAssessmentReportIntegrityResponse
+  where
+  rnf ValidateAssessmentReportIntegrityResponse' {..} =
+    Prelude.rnf signatureAlgorithm
+      `Prelude.seq` Prelude.rnf signatureDateTime
+      `Prelude.seq` Prelude.rnf signatureKeyId
+      `Prelude.seq` Prelude.rnf signatureValid
+      `Prelude.seq` Prelude.rnf validationErrors
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/AuditManager/Waiters.hs b/gen/Amazonka/AuditManager/Waiters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/AuditManager/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.AuditManager.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.AuditManager.Waiters where
+
+import Amazonka.AuditManager.Lens
+import Amazonka.AuditManager.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/src/.gitkeep b/src/.gitkeep
new file mode 100644
--- /dev/null
+++ b/src/.gitkeep
diff --git a/test/Main.hs b/test/Main.hs
new file mode 100644
--- /dev/null
+++ b/test/Main.hs
@@ -0,0 +1,23 @@
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Main
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Main (main) where
+
+import Test.Amazonka.AuditManager
+import Test.Amazonka.AuditManager.Internal
+import Test.Tasty
+
+main :: IO ()
+main =
+  defaultMain $
+    testGroup
+      "AuditManager"
+      [ testGroup "tests" tests,
+        testGroup "fixtures" fixtures
+      ]
diff --git a/test/Test/Amazonka/AuditManager.hs b/test/Test/Amazonka/AuditManager.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/AuditManager.hs
@@ -0,0 +1,20 @@
+-- |
+-- Module      : Test.Amazonka.AuditManager
+-- Copyright   : (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.AuditManager
+  ( tests,
+    fixtures,
+  )
+where
+
+import Test.Tasty (TestTree)
+
+tests :: [TestTree]
+tests = []
+
+fixtures :: [TestTree]
+fixtures = []
diff --git a/test/Test/Amazonka/AuditManager/Internal.hs b/test/Test/Amazonka/AuditManager/Internal.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/AuditManager/Internal.hs
@@ -0,0 +1,8 @@
+-- |
+-- Module      : Test.Amazonka.AuditManager.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.AuditManager.Internal where
diff --git a/test/Test/Amazonka/Gen/AuditManager.hs b/test/Test/Amazonka/Gen/AuditManager.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/Gen/AuditManager.hs
@@ -0,0 +1,1258 @@
+{-# 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.AuditManager
+-- Copyright   : (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.AuditManager where
+
+import Amazonka.AuditManager
+import qualified Data.Proxy as Proxy
+import Test.Amazonka.AuditManager.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"
+--         [ requestAssociateAssessmentReportEvidenceFolder $
+--             newAssociateAssessmentReportEvidenceFolder
+--
+--         , requestBatchAssociateAssessmentReportEvidence $
+--             newBatchAssociateAssessmentReportEvidence
+--
+--         , requestBatchCreateDelegationByAssessment $
+--             newBatchCreateDelegationByAssessment
+--
+--         , requestBatchDeleteDelegationByAssessment $
+--             newBatchDeleteDelegationByAssessment
+--
+--         , requestBatchDisassociateAssessmentReportEvidence $
+--             newBatchDisassociateAssessmentReportEvidence
+--
+--         , requestBatchImportEvidenceToAssessmentControl $
+--             newBatchImportEvidenceToAssessmentControl
+--
+--         , requestCreateAssessment $
+--             newCreateAssessment
+--
+--         , requestCreateAssessmentFramework $
+--             newCreateAssessmentFramework
+--
+--         , requestCreateAssessmentReport $
+--             newCreateAssessmentReport
+--
+--         , requestCreateControl $
+--             newCreateControl
+--
+--         , requestDeleteAssessment $
+--             newDeleteAssessment
+--
+--         , requestDeleteAssessmentFramework $
+--             newDeleteAssessmentFramework
+--
+--         , requestDeleteAssessmentFrameworkShare $
+--             newDeleteAssessmentFrameworkShare
+--
+--         , requestDeleteAssessmentReport $
+--             newDeleteAssessmentReport
+--
+--         , requestDeleteControl $
+--             newDeleteControl
+--
+--         , requestDeregisterAccount $
+--             newDeregisterAccount
+--
+--         , requestDeregisterOrganizationAdminAccount $
+--             newDeregisterOrganizationAdminAccount
+--
+--         , requestDisassociateAssessmentReportEvidenceFolder $
+--             newDisassociateAssessmentReportEvidenceFolder
+--
+--         , requestGetAccountStatus $
+--             newGetAccountStatus
+--
+--         , requestGetAssessment $
+--             newGetAssessment
+--
+--         , requestGetAssessmentFramework $
+--             newGetAssessmentFramework
+--
+--         , requestGetAssessmentReportUrl $
+--             newGetAssessmentReportUrl
+--
+--         , requestGetChangeLogs $
+--             newGetChangeLogs
+--
+--         , requestGetControl $
+--             newGetControl
+--
+--         , requestGetDelegations $
+--             newGetDelegations
+--
+--         , requestGetEvidence $
+--             newGetEvidence
+--
+--         , requestGetEvidenceByEvidenceFolder $
+--             newGetEvidenceByEvidenceFolder
+--
+--         , requestGetEvidenceFolder $
+--             newGetEvidenceFolder
+--
+--         , requestGetEvidenceFoldersByAssessment $
+--             newGetEvidenceFoldersByAssessment
+--
+--         , requestGetEvidenceFoldersByAssessmentControl $
+--             newGetEvidenceFoldersByAssessmentControl
+--
+--         , requestGetInsights $
+--             newGetInsights
+--
+--         , requestGetInsightsByAssessment $
+--             newGetInsightsByAssessment
+--
+--         , requestGetOrganizationAdminAccount $
+--             newGetOrganizationAdminAccount
+--
+--         , requestGetServicesInScope $
+--             newGetServicesInScope
+--
+--         , requestGetSettings $
+--             newGetSettings
+--
+--         , requestListAssessmentControlInsightsByControlDomain $
+--             newListAssessmentControlInsightsByControlDomain
+--
+--         , requestListAssessmentFrameworkShareRequests $
+--             newListAssessmentFrameworkShareRequests
+--
+--         , requestListAssessmentFrameworks $
+--             newListAssessmentFrameworks
+--
+--         , requestListAssessmentReports $
+--             newListAssessmentReports
+--
+--         , requestListAssessments $
+--             newListAssessments
+--
+--         , requestListControlDomainInsights $
+--             newListControlDomainInsights
+--
+--         , requestListControlDomainInsightsByAssessment $
+--             newListControlDomainInsightsByAssessment
+--
+--         , requestListControlInsightsByControlDomain $
+--             newListControlInsightsByControlDomain
+--
+--         , requestListControls $
+--             newListControls
+--
+--         , requestListKeywordsForDataSource $
+--             newListKeywordsForDataSource
+--
+--         , requestListNotifications $
+--             newListNotifications
+--
+--         , requestListTagsForResource $
+--             newListTagsForResource
+--
+--         , requestRegisterAccount $
+--             newRegisterAccount
+--
+--         , requestRegisterOrganizationAdminAccount $
+--             newRegisterOrganizationAdminAccount
+--
+--         , requestStartAssessmentFrameworkShare $
+--             newStartAssessmentFrameworkShare
+--
+--         , requestTagResource $
+--             newTagResource
+--
+--         , requestUntagResource $
+--             newUntagResource
+--
+--         , requestUpdateAssessment $
+--             newUpdateAssessment
+--
+--         , requestUpdateAssessmentControl $
+--             newUpdateAssessmentControl
+--
+--         , requestUpdateAssessmentControlSetStatus $
+--             newUpdateAssessmentControlSetStatus
+--
+--         , requestUpdateAssessmentFramework $
+--             newUpdateAssessmentFramework
+--
+--         , requestUpdateAssessmentFrameworkShare $
+--             newUpdateAssessmentFrameworkShare
+--
+--         , requestUpdateAssessmentStatus $
+--             newUpdateAssessmentStatus
+--
+--         , requestUpdateControl $
+--             newUpdateControl
+--
+--         , requestUpdateSettings $
+--             newUpdateSettings
+--
+--         , requestValidateAssessmentReportIntegrity $
+--             newValidateAssessmentReportIntegrity
+--
+--           ]
+
+--     , testGroup "response"
+--         [ responseAssociateAssessmentReportEvidenceFolder $
+--             newAssociateAssessmentReportEvidenceFolderResponse
+--
+--         , responseBatchAssociateAssessmentReportEvidence $
+--             newBatchAssociateAssessmentReportEvidenceResponse
+--
+--         , responseBatchCreateDelegationByAssessment $
+--             newBatchCreateDelegationByAssessmentResponse
+--
+--         , responseBatchDeleteDelegationByAssessment $
+--             newBatchDeleteDelegationByAssessmentResponse
+--
+--         , responseBatchDisassociateAssessmentReportEvidence $
+--             newBatchDisassociateAssessmentReportEvidenceResponse
+--
+--         , responseBatchImportEvidenceToAssessmentControl $
+--             newBatchImportEvidenceToAssessmentControlResponse
+--
+--         , responseCreateAssessment $
+--             newCreateAssessmentResponse
+--
+--         , responseCreateAssessmentFramework $
+--             newCreateAssessmentFrameworkResponse
+--
+--         , responseCreateAssessmentReport $
+--             newCreateAssessmentReportResponse
+--
+--         , responseCreateControl $
+--             newCreateControlResponse
+--
+--         , responseDeleteAssessment $
+--             newDeleteAssessmentResponse
+--
+--         , responseDeleteAssessmentFramework $
+--             newDeleteAssessmentFrameworkResponse
+--
+--         , responseDeleteAssessmentFrameworkShare $
+--             newDeleteAssessmentFrameworkShareResponse
+--
+--         , responseDeleteAssessmentReport $
+--             newDeleteAssessmentReportResponse
+--
+--         , responseDeleteControl $
+--             newDeleteControlResponse
+--
+--         , responseDeregisterAccount $
+--             newDeregisterAccountResponse
+--
+--         , responseDeregisterOrganizationAdminAccount $
+--             newDeregisterOrganizationAdminAccountResponse
+--
+--         , responseDisassociateAssessmentReportEvidenceFolder $
+--             newDisassociateAssessmentReportEvidenceFolderResponse
+--
+--         , responseGetAccountStatus $
+--             newGetAccountStatusResponse
+--
+--         , responseGetAssessment $
+--             newGetAssessmentResponse
+--
+--         , responseGetAssessmentFramework $
+--             newGetAssessmentFrameworkResponse
+--
+--         , responseGetAssessmentReportUrl $
+--             newGetAssessmentReportUrlResponse
+--
+--         , responseGetChangeLogs $
+--             newGetChangeLogsResponse
+--
+--         , responseGetControl $
+--             newGetControlResponse
+--
+--         , responseGetDelegations $
+--             newGetDelegationsResponse
+--
+--         , responseGetEvidence $
+--             newGetEvidenceResponse
+--
+--         , responseGetEvidenceByEvidenceFolder $
+--             newGetEvidenceByEvidenceFolderResponse
+--
+--         , responseGetEvidenceFolder $
+--             newGetEvidenceFolderResponse
+--
+--         , responseGetEvidenceFoldersByAssessment $
+--             newGetEvidenceFoldersByAssessmentResponse
+--
+--         , responseGetEvidenceFoldersByAssessmentControl $
+--             newGetEvidenceFoldersByAssessmentControlResponse
+--
+--         , responseGetInsights $
+--             newGetInsightsResponse
+--
+--         , responseGetInsightsByAssessment $
+--             newGetInsightsByAssessmentResponse
+--
+--         , responseGetOrganizationAdminAccount $
+--             newGetOrganizationAdminAccountResponse
+--
+--         , responseGetServicesInScope $
+--             newGetServicesInScopeResponse
+--
+--         , responseGetSettings $
+--             newGetSettingsResponse
+--
+--         , responseListAssessmentControlInsightsByControlDomain $
+--             newListAssessmentControlInsightsByControlDomainResponse
+--
+--         , responseListAssessmentFrameworkShareRequests $
+--             newListAssessmentFrameworkShareRequestsResponse
+--
+--         , responseListAssessmentFrameworks $
+--             newListAssessmentFrameworksResponse
+--
+--         , responseListAssessmentReports $
+--             newListAssessmentReportsResponse
+--
+--         , responseListAssessments $
+--             newListAssessmentsResponse
+--
+--         , responseListControlDomainInsights $
+--             newListControlDomainInsightsResponse
+--
+--         , responseListControlDomainInsightsByAssessment $
+--             newListControlDomainInsightsByAssessmentResponse
+--
+--         , responseListControlInsightsByControlDomain $
+--             newListControlInsightsByControlDomainResponse
+--
+--         , responseListControls $
+--             newListControlsResponse
+--
+--         , responseListKeywordsForDataSource $
+--             newListKeywordsForDataSourceResponse
+--
+--         , responseListNotifications $
+--             newListNotificationsResponse
+--
+--         , responseListTagsForResource $
+--             newListTagsForResourceResponse
+--
+--         , responseRegisterAccount $
+--             newRegisterAccountResponse
+--
+--         , responseRegisterOrganizationAdminAccount $
+--             newRegisterOrganizationAdminAccountResponse
+--
+--         , responseStartAssessmentFrameworkShare $
+--             newStartAssessmentFrameworkShareResponse
+--
+--         , responseTagResource $
+--             newTagResourceResponse
+--
+--         , responseUntagResource $
+--             newUntagResourceResponse
+--
+--         , responseUpdateAssessment $
+--             newUpdateAssessmentResponse
+--
+--         , responseUpdateAssessmentControl $
+--             newUpdateAssessmentControlResponse
+--
+--         , responseUpdateAssessmentControlSetStatus $
+--             newUpdateAssessmentControlSetStatusResponse
+--
+--         , responseUpdateAssessmentFramework $
+--             newUpdateAssessmentFrameworkResponse
+--
+--         , responseUpdateAssessmentFrameworkShare $
+--             newUpdateAssessmentFrameworkShareResponse
+--
+--         , responseUpdateAssessmentStatus $
+--             newUpdateAssessmentStatusResponse
+--
+--         , responseUpdateControl $
+--             newUpdateControlResponse
+--
+--         , responseUpdateSettings $
+--             newUpdateSettingsResponse
+--
+--         , responseValidateAssessmentReportIntegrity $
+--             newValidateAssessmentReportIntegrityResponse
+--
+--           ]
+--     ]
+
+-- Requests
+
+requestAssociateAssessmentReportEvidenceFolder :: AssociateAssessmentReportEvidenceFolder -> TestTree
+requestAssociateAssessmentReportEvidenceFolder =
+  req
+    "AssociateAssessmentReportEvidenceFolder"
+    "fixture/AssociateAssessmentReportEvidenceFolder.yaml"
+
+requestBatchAssociateAssessmentReportEvidence :: BatchAssociateAssessmentReportEvidence -> TestTree
+requestBatchAssociateAssessmentReportEvidence =
+  req
+    "BatchAssociateAssessmentReportEvidence"
+    "fixture/BatchAssociateAssessmentReportEvidence.yaml"
+
+requestBatchCreateDelegationByAssessment :: BatchCreateDelegationByAssessment -> TestTree
+requestBatchCreateDelegationByAssessment =
+  req
+    "BatchCreateDelegationByAssessment"
+    "fixture/BatchCreateDelegationByAssessment.yaml"
+
+requestBatchDeleteDelegationByAssessment :: BatchDeleteDelegationByAssessment -> TestTree
+requestBatchDeleteDelegationByAssessment =
+  req
+    "BatchDeleteDelegationByAssessment"
+    "fixture/BatchDeleteDelegationByAssessment.yaml"
+
+requestBatchDisassociateAssessmentReportEvidence :: BatchDisassociateAssessmentReportEvidence -> TestTree
+requestBatchDisassociateAssessmentReportEvidence =
+  req
+    "BatchDisassociateAssessmentReportEvidence"
+    "fixture/BatchDisassociateAssessmentReportEvidence.yaml"
+
+requestBatchImportEvidenceToAssessmentControl :: BatchImportEvidenceToAssessmentControl -> TestTree
+requestBatchImportEvidenceToAssessmentControl =
+  req
+    "BatchImportEvidenceToAssessmentControl"
+    "fixture/BatchImportEvidenceToAssessmentControl.yaml"
+
+requestCreateAssessment :: CreateAssessment -> TestTree
+requestCreateAssessment =
+  req
+    "CreateAssessment"
+    "fixture/CreateAssessment.yaml"
+
+requestCreateAssessmentFramework :: CreateAssessmentFramework -> TestTree
+requestCreateAssessmentFramework =
+  req
+    "CreateAssessmentFramework"
+    "fixture/CreateAssessmentFramework.yaml"
+
+requestCreateAssessmentReport :: CreateAssessmentReport -> TestTree
+requestCreateAssessmentReport =
+  req
+    "CreateAssessmentReport"
+    "fixture/CreateAssessmentReport.yaml"
+
+requestCreateControl :: CreateControl -> TestTree
+requestCreateControl =
+  req
+    "CreateControl"
+    "fixture/CreateControl.yaml"
+
+requestDeleteAssessment :: DeleteAssessment -> TestTree
+requestDeleteAssessment =
+  req
+    "DeleteAssessment"
+    "fixture/DeleteAssessment.yaml"
+
+requestDeleteAssessmentFramework :: DeleteAssessmentFramework -> TestTree
+requestDeleteAssessmentFramework =
+  req
+    "DeleteAssessmentFramework"
+    "fixture/DeleteAssessmentFramework.yaml"
+
+requestDeleteAssessmentFrameworkShare :: DeleteAssessmentFrameworkShare -> TestTree
+requestDeleteAssessmentFrameworkShare =
+  req
+    "DeleteAssessmentFrameworkShare"
+    "fixture/DeleteAssessmentFrameworkShare.yaml"
+
+requestDeleteAssessmentReport :: DeleteAssessmentReport -> TestTree
+requestDeleteAssessmentReport =
+  req
+    "DeleteAssessmentReport"
+    "fixture/DeleteAssessmentReport.yaml"
+
+requestDeleteControl :: DeleteControl -> TestTree
+requestDeleteControl =
+  req
+    "DeleteControl"
+    "fixture/DeleteControl.yaml"
+
+requestDeregisterAccount :: DeregisterAccount -> TestTree
+requestDeregisterAccount =
+  req
+    "DeregisterAccount"
+    "fixture/DeregisterAccount.yaml"
+
+requestDeregisterOrganizationAdminAccount :: DeregisterOrganizationAdminAccount -> TestTree
+requestDeregisterOrganizationAdminAccount =
+  req
+    "DeregisterOrganizationAdminAccount"
+    "fixture/DeregisterOrganizationAdminAccount.yaml"
+
+requestDisassociateAssessmentReportEvidenceFolder :: DisassociateAssessmentReportEvidenceFolder -> TestTree
+requestDisassociateAssessmentReportEvidenceFolder =
+  req
+    "DisassociateAssessmentReportEvidenceFolder"
+    "fixture/DisassociateAssessmentReportEvidenceFolder.yaml"
+
+requestGetAccountStatus :: GetAccountStatus -> TestTree
+requestGetAccountStatus =
+  req
+    "GetAccountStatus"
+    "fixture/GetAccountStatus.yaml"
+
+requestGetAssessment :: GetAssessment -> TestTree
+requestGetAssessment =
+  req
+    "GetAssessment"
+    "fixture/GetAssessment.yaml"
+
+requestGetAssessmentFramework :: GetAssessmentFramework -> TestTree
+requestGetAssessmentFramework =
+  req
+    "GetAssessmentFramework"
+    "fixture/GetAssessmentFramework.yaml"
+
+requestGetAssessmentReportUrl :: GetAssessmentReportUrl -> TestTree
+requestGetAssessmentReportUrl =
+  req
+    "GetAssessmentReportUrl"
+    "fixture/GetAssessmentReportUrl.yaml"
+
+requestGetChangeLogs :: GetChangeLogs -> TestTree
+requestGetChangeLogs =
+  req
+    "GetChangeLogs"
+    "fixture/GetChangeLogs.yaml"
+
+requestGetControl :: GetControl -> TestTree
+requestGetControl =
+  req
+    "GetControl"
+    "fixture/GetControl.yaml"
+
+requestGetDelegations :: GetDelegations -> TestTree
+requestGetDelegations =
+  req
+    "GetDelegations"
+    "fixture/GetDelegations.yaml"
+
+requestGetEvidence :: GetEvidence -> TestTree
+requestGetEvidence =
+  req
+    "GetEvidence"
+    "fixture/GetEvidence.yaml"
+
+requestGetEvidenceByEvidenceFolder :: GetEvidenceByEvidenceFolder -> TestTree
+requestGetEvidenceByEvidenceFolder =
+  req
+    "GetEvidenceByEvidenceFolder"
+    "fixture/GetEvidenceByEvidenceFolder.yaml"
+
+requestGetEvidenceFolder :: GetEvidenceFolder -> TestTree
+requestGetEvidenceFolder =
+  req
+    "GetEvidenceFolder"
+    "fixture/GetEvidenceFolder.yaml"
+
+requestGetEvidenceFoldersByAssessment :: GetEvidenceFoldersByAssessment -> TestTree
+requestGetEvidenceFoldersByAssessment =
+  req
+    "GetEvidenceFoldersByAssessment"
+    "fixture/GetEvidenceFoldersByAssessment.yaml"
+
+requestGetEvidenceFoldersByAssessmentControl :: GetEvidenceFoldersByAssessmentControl -> TestTree
+requestGetEvidenceFoldersByAssessmentControl =
+  req
+    "GetEvidenceFoldersByAssessmentControl"
+    "fixture/GetEvidenceFoldersByAssessmentControl.yaml"
+
+requestGetInsights :: GetInsights -> TestTree
+requestGetInsights =
+  req
+    "GetInsights"
+    "fixture/GetInsights.yaml"
+
+requestGetInsightsByAssessment :: GetInsightsByAssessment -> TestTree
+requestGetInsightsByAssessment =
+  req
+    "GetInsightsByAssessment"
+    "fixture/GetInsightsByAssessment.yaml"
+
+requestGetOrganizationAdminAccount :: GetOrganizationAdminAccount -> TestTree
+requestGetOrganizationAdminAccount =
+  req
+    "GetOrganizationAdminAccount"
+    "fixture/GetOrganizationAdminAccount.yaml"
+
+requestGetServicesInScope :: GetServicesInScope -> TestTree
+requestGetServicesInScope =
+  req
+    "GetServicesInScope"
+    "fixture/GetServicesInScope.yaml"
+
+requestGetSettings :: GetSettings -> TestTree
+requestGetSettings =
+  req
+    "GetSettings"
+    "fixture/GetSettings.yaml"
+
+requestListAssessmentControlInsightsByControlDomain :: ListAssessmentControlInsightsByControlDomain -> TestTree
+requestListAssessmentControlInsightsByControlDomain =
+  req
+    "ListAssessmentControlInsightsByControlDomain"
+    "fixture/ListAssessmentControlInsightsByControlDomain.yaml"
+
+requestListAssessmentFrameworkShareRequests :: ListAssessmentFrameworkShareRequests -> TestTree
+requestListAssessmentFrameworkShareRequests =
+  req
+    "ListAssessmentFrameworkShareRequests"
+    "fixture/ListAssessmentFrameworkShareRequests.yaml"
+
+requestListAssessmentFrameworks :: ListAssessmentFrameworks -> TestTree
+requestListAssessmentFrameworks =
+  req
+    "ListAssessmentFrameworks"
+    "fixture/ListAssessmentFrameworks.yaml"
+
+requestListAssessmentReports :: ListAssessmentReports -> TestTree
+requestListAssessmentReports =
+  req
+    "ListAssessmentReports"
+    "fixture/ListAssessmentReports.yaml"
+
+requestListAssessments :: ListAssessments -> TestTree
+requestListAssessments =
+  req
+    "ListAssessments"
+    "fixture/ListAssessments.yaml"
+
+requestListControlDomainInsights :: ListControlDomainInsights -> TestTree
+requestListControlDomainInsights =
+  req
+    "ListControlDomainInsights"
+    "fixture/ListControlDomainInsights.yaml"
+
+requestListControlDomainInsightsByAssessment :: ListControlDomainInsightsByAssessment -> TestTree
+requestListControlDomainInsightsByAssessment =
+  req
+    "ListControlDomainInsightsByAssessment"
+    "fixture/ListControlDomainInsightsByAssessment.yaml"
+
+requestListControlInsightsByControlDomain :: ListControlInsightsByControlDomain -> TestTree
+requestListControlInsightsByControlDomain =
+  req
+    "ListControlInsightsByControlDomain"
+    "fixture/ListControlInsightsByControlDomain.yaml"
+
+requestListControls :: ListControls -> TestTree
+requestListControls =
+  req
+    "ListControls"
+    "fixture/ListControls.yaml"
+
+requestListKeywordsForDataSource :: ListKeywordsForDataSource -> TestTree
+requestListKeywordsForDataSource =
+  req
+    "ListKeywordsForDataSource"
+    "fixture/ListKeywordsForDataSource.yaml"
+
+requestListNotifications :: ListNotifications -> TestTree
+requestListNotifications =
+  req
+    "ListNotifications"
+    "fixture/ListNotifications.yaml"
+
+requestListTagsForResource :: ListTagsForResource -> TestTree
+requestListTagsForResource =
+  req
+    "ListTagsForResource"
+    "fixture/ListTagsForResource.yaml"
+
+requestRegisterAccount :: RegisterAccount -> TestTree
+requestRegisterAccount =
+  req
+    "RegisterAccount"
+    "fixture/RegisterAccount.yaml"
+
+requestRegisterOrganizationAdminAccount :: RegisterOrganizationAdminAccount -> TestTree
+requestRegisterOrganizationAdminAccount =
+  req
+    "RegisterOrganizationAdminAccount"
+    "fixture/RegisterOrganizationAdminAccount.yaml"
+
+requestStartAssessmentFrameworkShare :: StartAssessmentFrameworkShare -> TestTree
+requestStartAssessmentFrameworkShare =
+  req
+    "StartAssessmentFrameworkShare"
+    "fixture/StartAssessmentFrameworkShare.yaml"
+
+requestTagResource :: TagResource -> TestTree
+requestTagResource =
+  req
+    "TagResource"
+    "fixture/TagResource.yaml"
+
+requestUntagResource :: UntagResource -> TestTree
+requestUntagResource =
+  req
+    "UntagResource"
+    "fixture/UntagResource.yaml"
+
+requestUpdateAssessment :: UpdateAssessment -> TestTree
+requestUpdateAssessment =
+  req
+    "UpdateAssessment"
+    "fixture/UpdateAssessment.yaml"
+
+requestUpdateAssessmentControl :: UpdateAssessmentControl -> TestTree
+requestUpdateAssessmentControl =
+  req
+    "UpdateAssessmentControl"
+    "fixture/UpdateAssessmentControl.yaml"
+
+requestUpdateAssessmentControlSetStatus :: UpdateAssessmentControlSetStatus -> TestTree
+requestUpdateAssessmentControlSetStatus =
+  req
+    "UpdateAssessmentControlSetStatus"
+    "fixture/UpdateAssessmentControlSetStatus.yaml"
+
+requestUpdateAssessmentFramework :: UpdateAssessmentFramework -> TestTree
+requestUpdateAssessmentFramework =
+  req
+    "UpdateAssessmentFramework"
+    "fixture/UpdateAssessmentFramework.yaml"
+
+requestUpdateAssessmentFrameworkShare :: UpdateAssessmentFrameworkShare -> TestTree
+requestUpdateAssessmentFrameworkShare =
+  req
+    "UpdateAssessmentFrameworkShare"
+    "fixture/UpdateAssessmentFrameworkShare.yaml"
+
+requestUpdateAssessmentStatus :: UpdateAssessmentStatus -> TestTree
+requestUpdateAssessmentStatus =
+  req
+    "UpdateAssessmentStatus"
+    "fixture/UpdateAssessmentStatus.yaml"
+
+requestUpdateControl :: UpdateControl -> TestTree
+requestUpdateControl =
+  req
+    "UpdateControl"
+    "fixture/UpdateControl.yaml"
+
+requestUpdateSettings :: UpdateSettings -> TestTree
+requestUpdateSettings =
+  req
+    "UpdateSettings"
+    "fixture/UpdateSettings.yaml"
+
+requestValidateAssessmentReportIntegrity :: ValidateAssessmentReportIntegrity -> TestTree
+requestValidateAssessmentReportIntegrity =
+  req
+    "ValidateAssessmentReportIntegrity"
+    "fixture/ValidateAssessmentReportIntegrity.yaml"
+
+-- Responses
+
+responseAssociateAssessmentReportEvidenceFolder :: AssociateAssessmentReportEvidenceFolderResponse -> TestTree
+responseAssociateAssessmentReportEvidenceFolder =
+  res
+    "AssociateAssessmentReportEvidenceFolderResponse"
+    "fixture/AssociateAssessmentReportEvidenceFolderResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy AssociateAssessmentReportEvidenceFolder)
+
+responseBatchAssociateAssessmentReportEvidence :: BatchAssociateAssessmentReportEvidenceResponse -> TestTree
+responseBatchAssociateAssessmentReportEvidence =
+  res
+    "BatchAssociateAssessmentReportEvidenceResponse"
+    "fixture/BatchAssociateAssessmentReportEvidenceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy BatchAssociateAssessmentReportEvidence)
+
+responseBatchCreateDelegationByAssessment :: BatchCreateDelegationByAssessmentResponse -> TestTree
+responseBatchCreateDelegationByAssessment =
+  res
+    "BatchCreateDelegationByAssessmentResponse"
+    "fixture/BatchCreateDelegationByAssessmentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy BatchCreateDelegationByAssessment)
+
+responseBatchDeleteDelegationByAssessment :: BatchDeleteDelegationByAssessmentResponse -> TestTree
+responseBatchDeleteDelegationByAssessment =
+  res
+    "BatchDeleteDelegationByAssessmentResponse"
+    "fixture/BatchDeleteDelegationByAssessmentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy BatchDeleteDelegationByAssessment)
+
+responseBatchDisassociateAssessmentReportEvidence :: BatchDisassociateAssessmentReportEvidenceResponse -> TestTree
+responseBatchDisassociateAssessmentReportEvidence =
+  res
+    "BatchDisassociateAssessmentReportEvidenceResponse"
+    "fixture/BatchDisassociateAssessmentReportEvidenceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy BatchDisassociateAssessmentReportEvidence)
+
+responseBatchImportEvidenceToAssessmentControl :: BatchImportEvidenceToAssessmentControlResponse -> TestTree
+responseBatchImportEvidenceToAssessmentControl =
+  res
+    "BatchImportEvidenceToAssessmentControlResponse"
+    "fixture/BatchImportEvidenceToAssessmentControlResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy BatchImportEvidenceToAssessmentControl)
+
+responseCreateAssessment :: CreateAssessmentResponse -> TestTree
+responseCreateAssessment =
+  res
+    "CreateAssessmentResponse"
+    "fixture/CreateAssessmentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateAssessment)
+
+responseCreateAssessmentFramework :: CreateAssessmentFrameworkResponse -> TestTree
+responseCreateAssessmentFramework =
+  res
+    "CreateAssessmentFrameworkResponse"
+    "fixture/CreateAssessmentFrameworkResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateAssessmentFramework)
+
+responseCreateAssessmentReport :: CreateAssessmentReportResponse -> TestTree
+responseCreateAssessmentReport =
+  res
+    "CreateAssessmentReportResponse"
+    "fixture/CreateAssessmentReportResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateAssessmentReport)
+
+responseCreateControl :: CreateControlResponse -> TestTree
+responseCreateControl =
+  res
+    "CreateControlResponse"
+    "fixture/CreateControlResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateControl)
+
+responseDeleteAssessment :: DeleteAssessmentResponse -> TestTree
+responseDeleteAssessment =
+  res
+    "DeleteAssessmentResponse"
+    "fixture/DeleteAssessmentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteAssessment)
+
+responseDeleteAssessmentFramework :: DeleteAssessmentFrameworkResponse -> TestTree
+responseDeleteAssessmentFramework =
+  res
+    "DeleteAssessmentFrameworkResponse"
+    "fixture/DeleteAssessmentFrameworkResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteAssessmentFramework)
+
+responseDeleteAssessmentFrameworkShare :: DeleteAssessmentFrameworkShareResponse -> TestTree
+responseDeleteAssessmentFrameworkShare =
+  res
+    "DeleteAssessmentFrameworkShareResponse"
+    "fixture/DeleteAssessmentFrameworkShareResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteAssessmentFrameworkShare)
+
+responseDeleteAssessmentReport :: DeleteAssessmentReportResponse -> TestTree
+responseDeleteAssessmentReport =
+  res
+    "DeleteAssessmentReportResponse"
+    "fixture/DeleteAssessmentReportResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteAssessmentReport)
+
+responseDeleteControl :: DeleteControlResponse -> TestTree
+responseDeleteControl =
+  res
+    "DeleteControlResponse"
+    "fixture/DeleteControlResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteControl)
+
+responseDeregisterAccount :: DeregisterAccountResponse -> TestTree
+responseDeregisterAccount =
+  res
+    "DeregisterAccountResponse"
+    "fixture/DeregisterAccountResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeregisterAccount)
+
+responseDeregisterOrganizationAdminAccount :: DeregisterOrganizationAdminAccountResponse -> TestTree
+responseDeregisterOrganizationAdminAccount =
+  res
+    "DeregisterOrganizationAdminAccountResponse"
+    "fixture/DeregisterOrganizationAdminAccountResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeregisterOrganizationAdminAccount)
+
+responseDisassociateAssessmentReportEvidenceFolder :: DisassociateAssessmentReportEvidenceFolderResponse -> TestTree
+responseDisassociateAssessmentReportEvidenceFolder =
+  res
+    "DisassociateAssessmentReportEvidenceFolderResponse"
+    "fixture/DisassociateAssessmentReportEvidenceFolderResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DisassociateAssessmentReportEvidenceFolder)
+
+responseGetAccountStatus :: GetAccountStatusResponse -> TestTree
+responseGetAccountStatus =
+  res
+    "GetAccountStatusResponse"
+    "fixture/GetAccountStatusResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetAccountStatus)
+
+responseGetAssessment :: GetAssessmentResponse -> TestTree
+responseGetAssessment =
+  res
+    "GetAssessmentResponse"
+    "fixture/GetAssessmentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetAssessment)
+
+responseGetAssessmentFramework :: GetAssessmentFrameworkResponse -> TestTree
+responseGetAssessmentFramework =
+  res
+    "GetAssessmentFrameworkResponse"
+    "fixture/GetAssessmentFrameworkResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetAssessmentFramework)
+
+responseGetAssessmentReportUrl :: GetAssessmentReportUrlResponse -> TestTree
+responseGetAssessmentReportUrl =
+  res
+    "GetAssessmentReportUrlResponse"
+    "fixture/GetAssessmentReportUrlResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetAssessmentReportUrl)
+
+responseGetChangeLogs :: GetChangeLogsResponse -> TestTree
+responseGetChangeLogs =
+  res
+    "GetChangeLogsResponse"
+    "fixture/GetChangeLogsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetChangeLogs)
+
+responseGetControl :: GetControlResponse -> TestTree
+responseGetControl =
+  res
+    "GetControlResponse"
+    "fixture/GetControlResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetControl)
+
+responseGetDelegations :: GetDelegationsResponse -> TestTree
+responseGetDelegations =
+  res
+    "GetDelegationsResponse"
+    "fixture/GetDelegationsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetDelegations)
+
+responseGetEvidence :: GetEvidenceResponse -> TestTree
+responseGetEvidence =
+  res
+    "GetEvidenceResponse"
+    "fixture/GetEvidenceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetEvidence)
+
+responseGetEvidenceByEvidenceFolder :: GetEvidenceByEvidenceFolderResponse -> TestTree
+responseGetEvidenceByEvidenceFolder =
+  res
+    "GetEvidenceByEvidenceFolderResponse"
+    "fixture/GetEvidenceByEvidenceFolderResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetEvidenceByEvidenceFolder)
+
+responseGetEvidenceFolder :: GetEvidenceFolderResponse -> TestTree
+responseGetEvidenceFolder =
+  res
+    "GetEvidenceFolderResponse"
+    "fixture/GetEvidenceFolderResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetEvidenceFolder)
+
+responseGetEvidenceFoldersByAssessment :: GetEvidenceFoldersByAssessmentResponse -> TestTree
+responseGetEvidenceFoldersByAssessment =
+  res
+    "GetEvidenceFoldersByAssessmentResponse"
+    "fixture/GetEvidenceFoldersByAssessmentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetEvidenceFoldersByAssessment)
+
+responseGetEvidenceFoldersByAssessmentControl :: GetEvidenceFoldersByAssessmentControlResponse -> TestTree
+responseGetEvidenceFoldersByAssessmentControl =
+  res
+    "GetEvidenceFoldersByAssessmentControlResponse"
+    "fixture/GetEvidenceFoldersByAssessmentControlResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetEvidenceFoldersByAssessmentControl)
+
+responseGetInsights :: GetInsightsResponse -> TestTree
+responseGetInsights =
+  res
+    "GetInsightsResponse"
+    "fixture/GetInsightsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetInsights)
+
+responseGetInsightsByAssessment :: GetInsightsByAssessmentResponse -> TestTree
+responseGetInsightsByAssessment =
+  res
+    "GetInsightsByAssessmentResponse"
+    "fixture/GetInsightsByAssessmentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetInsightsByAssessment)
+
+responseGetOrganizationAdminAccount :: GetOrganizationAdminAccountResponse -> TestTree
+responseGetOrganizationAdminAccount =
+  res
+    "GetOrganizationAdminAccountResponse"
+    "fixture/GetOrganizationAdminAccountResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetOrganizationAdminAccount)
+
+responseGetServicesInScope :: GetServicesInScopeResponse -> TestTree
+responseGetServicesInScope =
+  res
+    "GetServicesInScopeResponse"
+    "fixture/GetServicesInScopeResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetServicesInScope)
+
+responseGetSettings :: GetSettingsResponse -> TestTree
+responseGetSettings =
+  res
+    "GetSettingsResponse"
+    "fixture/GetSettingsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy GetSettings)
+
+responseListAssessmentControlInsightsByControlDomain :: ListAssessmentControlInsightsByControlDomainResponse -> TestTree
+responseListAssessmentControlInsightsByControlDomain =
+  res
+    "ListAssessmentControlInsightsByControlDomainResponse"
+    "fixture/ListAssessmentControlInsightsByControlDomainResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListAssessmentControlInsightsByControlDomain)
+
+responseListAssessmentFrameworkShareRequests :: ListAssessmentFrameworkShareRequestsResponse -> TestTree
+responseListAssessmentFrameworkShareRequests =
+  res
+    "ListAssessmentFrameworkShareRequestsResponse"
+    "fixture/ListAssessmentFrameworkShareRequestsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListAssessmentFrameworkShareRequests)
+
+responseListAssessmentFrameworks :: ListAssessmentFrameworksResponse -> TestTree
+responseListAssessmentFrameworks =
+  res
+    "ListAssessmentFrameworksResponse"
+    "fixture/ListAssessmentFrameworksResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListAssessmentFrameworks)
+
+responseListAssessmentReports :: ListAssessmentReportsResponse -> TestTree
+responseListAssessmentReports =
+  res
+    "ListAssessmentReportsResponse"
+    "fixture/ListAssessmentReportsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListAssessmentReports)
+
+responseListAssessments :: ListAssessmentsResponse -> TestTree
+responseListAssessments =
+  res
+    "ListAssessmentsResponse"
+    "fixture/ListAssessmentsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListAssessments)
+
+responseListControlDomainInsights :: ListControlDomainInsightsResponse -> TestTree
+responseListControlDomainInsights =
+  res
+    "ListControlDomainInsightsResponse"
+    "fixture/ListControlDomainInsightsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListControlDomainInsights)
+
+responseListControlDomainInsightsByAssessment :: ListControlDomainInsightsByAssessmentResponse -> TestTree
+responseListControlDomainInsightsByAssessment =
+  res
+    "ListControlDomainInsightsByAssessmentResponse"
+    "fixture/ListControlDomainInsightsByAssessmentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListControlDomainInsightsByAssessment)
+
+responseListControlInsightsByControlDomain :: ListControlInsightsByControlDomainResponse -> TestTree
+responseListControlInsightsByControlDomain =
+  res
+    "ListControlInsightsByControlDomainResponse"
+    "fixture/ListControlInsightsByControlDomainResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListControlInsightsByControlDomain)
+
+responseListControls :: ListControlsResponse -> TestTree
+responseListControls =
+  res
+    "ListControlsResponse"
+    "fixture/ListControlsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListControls)
+
+responseListKeywordsForDataSource :: ListKeywordsForDataSourceResponse -> TestTree
+responseListKeywordsForDataSource =
+  res
+    "ListKeywordsForDataSourceResponse"
+    "fixture/ListKeywordsForDataSourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListKeywordsForDataSource)
+
+responseListNotifications :: ListNotificationsResponse -> TestTree
+responseListNotifications =
+  res
+    "ListNotificationsResponse"
+    "fixture/ListNotificationsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListNotifications)
+
+responseListTagsForResource :: ListTagsForResourceResponse -> TestTree
+responseListTagsForResource =
+  res
+    "ListTagsForResourceResponse"
+    "fixture/ListTagsForResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)
+
+responseRegisterAccount :: RegisterAccountResponse -> TestTree
+responseRegisterAccount =
+  res
+    "RegisterAccountResponse"
+    "fixture/RegisterAccountResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy RegisterAccount)
+
+responseRegisterOrganizationAdminAccount :: RegisterOrganizationAdminAccountResponse -> TestTree
+responseRegisterOrganizationAdminAccount =
+  res
+    "RegisterOrganizationAdminAccountResponse"
+    "fixture/RegisterOrganizationAdminAccountResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy RegisterOrganizationAdminAccount)
+
+responseStartAssessmentFrameworkShare :: StartAssessmentFrameworkShareResponse -> TestTree
+responseStartAssessmentFrameworkShare =
+  res
+    "StartAssessmentFrameworkShareResponse"
+    "fixture/StartAssessmentFrameworkShareResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy StartAssessmentFrameworkShare)
+
+responseTagResource :: TagResourceResponse -> TestTree
+responseTagResource =
+  res
+    "TagResourceResponse"
+    "fixture/TagResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy TagResource)
+
+responseUntagResource :: UntagResourceResponse -> TestTree
+responseUntagResource =
+  res
+    "UntagResourceResponse"
+    "fixture/UntagResourceResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UntagResource)
+
+responseUpdateAssessment :: UpdateAssessmentResponse -> TestTree
+responseUpdateAssessment =
+  res
+    "UpdateAssessmentResponse"
+    "fixture/UpdateAssessmentResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateAssessment)
+
+responseUpdateAssessmentControl :: UpdateAssessmentControlResponse -> TestTree
+responseUpdateAssessmentControl =
+  res
+    "UpdateAssessmentControlResponse"
+    "fixture/UpdateAssessmentControlResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateAssessmentControl)
+
+responseUpdateAssessmentControlSetStatus :: UpdateAssessmentControlSetStatusResponse -> TestTree
+responseUpdateAssessmentControlSetStatus =
+  res
+    "UpdateAssessmentControlSetStatusResponse"
+    "fixture/UpdateAssessmentControlSetStatusResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateAssessmentControlSetStatus)
+
+responseUpdateAssessmentFramework :: UpdateAssessmentFrameworkResponse -> TestTree
+responseUpdateAssessmentFramework =
+  res
+    "UpdateAssessmentFrameworkResponse"
+    "fixture/UpdateAssessmentFrameworkResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateAssessmentFramework)
+
+responseUpdateAssessmentFrameworkShare :: UpdateAssessmentFrameworkShareResponse -> TestTree
+responseUpdateAssessmentFrameworkShare =
+  res
+    "UpdateAssessmentFrameworkShareResponse"
+    "fixture/UpdateAssessmentFrameworkShareResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateAssessmentFrameworkShare)
+
+responseUpdateAssessmentStatus :: UpdateAssessmentStatusResponse -> TestTree
+responseUpdateAssessmentStatus =
+  res
+    "UpdateAssessmentStatusResponse"
+    "fixture/UpdateAssessmentStatusResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateAssessmentStatus)
+
+responseUpdateControl :: UpdateControlResponse -> TestTree
+responseUpdateControl =
+  res
+    "UpdateControlResponse"
+    "fixture/UpdateControlResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateControl)
+
+responseUpdateSettings :: UpdateSettingsResponse -> TestTree
+responseUpdateSettings =
+  res
+    "UpdateSettingsResponse"
+    "fixture/UpdateSettingsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateSettings)
+
+responseValidateAssessmentReportIntegrity :: ValidateAssessmentReportIntegrityResponse -> TestTree
+responseValidateAssessmentReportIntegrity =
+  res
+    "ValidateAssessmentReportIntegrityResponse"
+    "fixture/ValidateAssessmentReportIntegrityResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ValidateAssessmentReportIntegrity)
