packages feed

amazonka-auditmanager (empty) → 2.0

raw patch · 270 files changed

+27707/−0 lines, 270 filesdep +amazonka-auditmanagerdep +amazonka-coredep +amazonka-test

Dependencies added: amazonka-auditmanager, amazonka-core, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers

Files

+ LICENSE view
@@ -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.
+ README.md view
@@ -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.
+ amazonka-auditmanager.cabal view
@@ -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
+ fixture/AssociateAssessmentReportEvidenceFolder.yaml view
@@ -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:+  ''
+ fixture/AssociateAssessmentReportEvidenceFolderResponse.proto view
+ fixture/BatchAssociateAssessmentReportEvidence.yaml view
@@ -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:+  ''
+ fixture/BatchAssociateAssessmentReportEvidenceResponse.proto view
+ fixture/BatchCreateDelegationByAssessment.yaml view
@@ -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:+  ''
+ fixture/BatchCreateDelegationByAssessmentResponse.proto view
+ fixture/BatchDeleteDelegationByAssessment.yaml view
@@ -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:+  ''
+ fixture/BatchDeleteDelegationByAssessmentResponse.proto view
+ fixture/BatchDisassociateAssessmentReportEvidence.yaml view
@@ -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:+  ''
+ fixture/BatchDisassociateAssessmentReportEvidenceResponse.proto view
+ fixture/BatchImportEvidenceToAssessmentControl.yaml view
@@ -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:+  ''
+ fixture/BatchImportEvidenceToAssessmentControlResponse.proto view
+ fixture/CreateAssessment.yaml view
@@ -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:+  ''
+ fixture/CreateAssessmentFramework.yaml view
@@ -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:+  ''
+ fixture/CreateAssessmentFrameworkResponse.proto view
+ fixture/CreateAssessmentReport.yaml view
@@ -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:+  ''
+ fixture/CreateAssessmentReportResponse.proto view
+ fixture/CreateAssessmentResponse.proto view
+ fixture/CreateControl.yaml view
@@ -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:+  ''
+ fixture/CreateControlResponse.proto view
+ fixture/DeleteAssessment.yaml view
@@ -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:+  ''
+ fixture/DeleteAssessmentFramework.yaml view
@@ -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:+  ''
+ fixture/DeleteAssessmentFrameworkResponse.proto view
+ fixture/DeleteAssessmentFrameworkShare.yaml view
@@ -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:+  ''
+ fixture/DeleteAssessmentFrameworkShareResponse.proto view
+ fixture/DeleteAssessmentReport.yaml view
@@ -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:+  ''
+ fixture/DeleteAssessmentReportResponse.proto view
+ fixture/DeleteAssessmentResponse.proto view
+ fixture/DeleteControl.yaml view
@@ -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:+  ''
+ fixture/DeleteControlResponse.proto view
+ fixture/DeregisterAccount.yaml view
@@ -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:+  ''
+ fixture/DeregisterAccountResponse.proto view
+ fixture/DeregisterOrganizationAdminAccount.yaml view
@@ -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:+  ''
+ fixture/DeregisterOrganizationAdminAccountResponse.proto view
+ fixture/DisassociateAssessmentReportEvidenceFolder.yaml view
@@ -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:+  ''
+ fixture/DisassociateAssessmentReportEvidenceFolderResponse.proto view
+ fixture/GetAccountStatus.yaml view
@@ -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:+  ''
+ fixture/GetAccountStatusResponse.proto view
+ fixture/GetAssessment.yaml view
@@ -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:+  ''
+ fixture/GetAssessmentFramework.yaml view
@@ -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:+  ''
+ fixture/GetAssessmentFrameworkResponse.proto view
+ fixture/GetAssessmentReportUrl.yaml view
@@ -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:+  ''
+ fixture/GetAssessmentReportUrlResponse.proto view
+ fixture/GetAssessmentResponse.proto view
+ fixture/GetChangeLogs.yaml view
@@ -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:+  ''
+ fixture/GetChangeLogsResponse.proto view
+ fixture/GetControl.yaml view
@@ -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:+  ''
+ fixture/GetControlResponse.proto view
+ fixture/GetDelegations.yaml view
@@ -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:+  ''
+ fixture/GetDelegationsResponse.proto view
+ fixture/GetEvidence.yaml view
@@ -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:+  ''
+ fixture/GetEvidenceByEvidenceFolder.yaml view
@@ -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:+  ''
+ fixture/GetEvidenceByEvidenceFolderResponse.proto view
+ fixture/GetEvidenceFolder.yaml view
@@ -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:+  ''
+ fixture/GetEvidenceFolderResponse.proto view
+ fixture/GetEvidenceFoldersByAssessment.yaml view
@@ -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:+  ''
+ fixture/GetEvidenceFoldersByAssessmentControl.yaml view
@@ -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:+  ''
+ fixture/GetEvidenceFoldersByAssessmentControlResponse.proto view
+ fixture/GetEvidenceFoldersByAssessmentResponse.proto view
+ fixture/GetEvidenceResponse.proto view
+ fixture/GetInsights.yaml view
@@ -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:+  ''
+ fixture/GetInsightsByAssessment.yaml view
@@ -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:+  ''
+ fixture/GetInsightsByAssessmentResponse.proto view
+ fixture/GetInsightsResponse.proto view
+ fixture/GetOrganizationAdminAccount.yaml view
@@ -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:+  ''
+ fixture/GetOrganizationAdminAccountResponse.proto view
+ fixture/GetServicesInScope.yaml view
@@ -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:+  ''
+ fixture/GetServicesInScopeResponse.proto view
+ fixture/GetSettings.yaml view
@@ -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:+  ''
+ fixture/GetSettingsResponse.proto view
+ fixture/ListAssessmentControlInsightsByControlDomain.yaml view
@@ -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:+  ''
+ fixture/ListAssessmentControlInsightsByControlDomainResponse.proto view
+ fixture/ListAssessmentFrameworkShareRequests.yaml view
@@ -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:+  ''
+ fixture/ListAssessmentFrameworkShareRequestsResponse.proto view
+ fixture/ListAssessmentFrameworks.yaml view
@@ -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:+  ''
+ fixture/ListAssessmentFrameworksResponse.proto view
+ fixture/ListAssessmentReports.yaml view
@@ -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:+  ''
+ fixture/ListAssessmentReportsResponse.proto view
+ fixture/ListAssessments.yaml view
@@ -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:+  ''
+ fixture/ListAssessmentsResponse.proto view
+ fixture/ListControlDomainInsights.yaml view
@@ -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:+  ''
+ fixture/ListControlDomainInsightsByAssessment.yaml view
@@ -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:+  ''
+ fixture/ListControlDomainInsightsByAssessmentResponse.proto view
+ fixture/ListControlDomainInsightsResponse.proto view
+ fixture/ListControlInsightsByControlDomain.yaml view
@@ -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:+  ''
+ fixture/ListControlInsightsByControlDomainResponse.proto view
+ fixture/ListControls.yaml view
@@ -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:+  ''
+ fixture/ListControlsResponse.proto view
+ fixture/ListKeywordsForDataSource.yaml view
@@ -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:+  ''
+ fixture/ListKeywordsForDataSourceResponse.proto view
+ fixture/ListNotifications.yaml view
@@ -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:+  ''
+ fixture/ListNotificationsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -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:+  ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/RegisterAccount.yaml view
@@ -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:+  ''
+ fixture/RegisterAccountResponse.proto view
+ fixture/RegisterOrganizationAdminAccount.yaml view
@@ -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:+  ''
+ fixture/RegisterOrganizationAdminAccountResponse.proto view
+ fixture/StartAssessmentFrameworkShare.yaml view
@@ -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:+  ''
+ fixture/StartAssessmentFrameworkShareResponse.proto view
+ fixture/TagResource.yaml view
@@ -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:+  ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -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:+  ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UpdateAssessment.yaml view
@@ -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:+  ''
+ fixture/UpdateAssessmentControl.yaml view
@@ -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:+  ''
+ fixture/UpdateAssessmentControlResponse.proto view
+ fixture/UpdateAssessmentControlSetStatus.yaml view
@@ -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:+  ''
+ fixture/UpdateAssessmentControlSetStatusResponse.proto view
+ fixture/UpdateAssessmentFramework.yaml view
@@ -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:+  ''
+ fixture/UpdateAssessmentFrameworkResponse.proto view
+ fixture/UpdateAssessmentFrameworkShare.yaml view
@@ -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:+  ''
+ fixture/UpdateAssessmentFrameworkShareResponse.proto view
+ fixture/UpdateAssessmentResponse.proto view
+ fixture/UpdateAssessmentStatus.yaml view
@@ -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:+  ''
+ fixture/UpdateAssessmentStatusResponse.proto view
+ fixture/UpdateControl.yaml view
@@ -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:+  ''
+ fixture/UpdateControlResponse.proto view
+ fixture/UpdateSettings.yaml view
@@ -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:+  ''
+ fixture/UpdateSettingsResponse.proto view
+ fixture/ValidateAssessmentReportIntegrity.yaml view
@@ -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:+  ''
+ fixture/ValidateAssessmentReportIntegrityResponse.proto view
+ gen/Amazonka/AuditManager.hs view
@@ -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.
+ gen/Amazonka/AuditManager/AssociateAssessmentReportEvidenceFolder.hs view
@@ -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
+ gen/Amazonka/AuditManager/BatchAssociateAssessmentReportEvidence.hs view
@@ -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
+ gen/Amazonka/AuditManager/BatchCreateDelegationByAssessment.hs view
@@ -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
+ gen/Amazonka/AuditManager/BatchDeleteDelegationByAssessment.hs view
@@ -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
+ gen/Amazonka/AuditManager/BatchDisassociateAssessmentReportEvidence.hs view
@@ -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
+ gen/Amazonka/AuditManager/BatchImportEvidenceToAssessmentControl.hs view
@@ -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
+ gen/Amazonka/AuditManager/CreateAssessment.hs view
@@ -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
+ gen/Amazonka/AuditManager/CreateAssessmentFramework.hs view
@@ -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
+ gen/Amazonka/AuditManager/CreateAssessmentReport.hs view
@@ -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
+ gen/Amazonka/AuditManager/CreateControl.hs view
@@ -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
+ gen/Amazonka/AuditManager/DeleteAssessment.hs view
@@ -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
+ gen/Amazonka/AuditManager/DeleteAssessmentFramework.hs view
@@ -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
+ gen/Amazonka/AuditManager/DeleteAssessmentFrameworkShare.hs view
@@ -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
+ gen/Amazonka/AuditManager/DeleteAssessmentReport.hs view
@@ -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
+ gen/Amazonka/AuditManager/DeleteControl.hs view
@@ -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
+ gen/Amazonka/AuditManager/DeregisterAccount.hs view
@@ -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
+ gen/Amazonka/AuditManager/DeregisterOrganizationAdminAccount.hs view
@@ -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
+ gen/Amazonka/AuditManager/DisassociateAssessmentReportEvidenceFolder.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetAccountStatus.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetAssessment.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetAssessmentFramework.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetAssessmentReportUrl.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetChangeLogs.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetControl.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetDelegations.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetEvidence.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetEvidenceByEvidenceFolder.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetEvidenceFolder.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetEvidenceFoldersByAssessment.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetEvidenceFoldersByAssessmentControl.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetInsights.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetInsightsByAssessment.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetOrganizationAdminAccount.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetServicesInScope.hs view
@@ -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
+ gen/Amazonka/AuditManager/GetSettings.hs view
@@ -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
+ gen/Amazonka/AuditManager/Lens.hs view
@@ -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
+ gen/Amazonka/AuditManager/ListAssessmentControlInsightsByControlDomain.hs view
@@ -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
+ gen/Amazonka/AuditManager/ListAssessmentFrameworkShareRequests.hs view
@@ -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
+ gen/Amazonka/AuditManager/ListAssessmentFrameworks.hs view
@@ -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
+ gen/Amazonka/AuditManager/ListAssessmentReports.hs view
@@ -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
+ gen/Amazonka/AuditManager/ListAssessments.hs view
@@ -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
+ gen/Amazonka/AuditManager/ListControlDomainInsights.hs view
@@ -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
+ gen/Amazonka/AuditManager/ListControlDomainInsightsByAssessment.hs view
@@ -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
+ gen/Amazonka/AuditManager/ListControlInsightsByControlDomain.hs view
@@ -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
+ gen/Amazonka/AuditManager/ListControls.hs view
@@ -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
+ gen/Amazonka/AuditManager/ListKeywordsForDataSource.hs view
@@ -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
+ gen/Amazonka/AuditManager/ListNotifications.hs view
@@ -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
+ gen/Amazonka/AuditManager/ListTagsForResource.hs view
@@ -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
+ gen/Amazonka/AuditManager/RegisterAccount.hs view
@@ -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
+ gen/Amazonka/AuditManager/RegisterOrganizationAdminAccount.hs view
@@ -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
+ gen/Amazonka/AuditManager/StartAssessmentFrameworkShare.hs view
@@ -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
+ gen/Amazonka/AuditManager/TagResource.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/AWSAccount.hs view
@@ -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+          ]+      )
+ gen/Amazonka/AuditManager/Types/AWSService.hs view
@@ -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]+      )
+ gen/Amazonka/AuditManager/Types/AccountStatus.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/ActionEnum.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/Assessment.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/AssessmentControl.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/AssessmentControlSet.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/AssessmentEvidenceFolder.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/AssessmentFramework.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/AssessmentFrameworkMetadata.hs view
@@ -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'
+ gen/Amazonka/AuditManager/Types/AssessmentFrameworkShareRequest.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/AssessmentMetadata.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/AssessmentMetadataItem.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/AssessmentReport.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/AssessmentReportDestinationType.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/AssessmentReportEvidenceError.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/AssessmentReportMetadata.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/AssessmentReportStatus.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/AssessmentReportsDestination.hs view
@@ -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+          ]+      )
+ gen/Amazonka/AuditManager/Types/AssessmentStatus.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/BatchCreateDelegationByAssessmentError.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/BatchDeleteDelegationByAssessmentError.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/BatchImportEvidenceToAssessmentControlError.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/ChangeLog.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/Control.hs view
@@ -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'
+ gen/Amazonka/AuditManager/Types/ControlComment.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/ControlDomainInsights.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/ControlInsightsMetadataByAssessmentItem.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/ControlInsightsMetadataItem.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/ControlMappingSource.hs view
@@ -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+          ]+      )
+ gen/Amazonka/AuditManager/Types/ControlMetadata.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/ControlResponse.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/ControlSet.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/ControlSetStatus.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/ControlStatus.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/ControlType.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/CreateAssessmentFrameworkControl.hs view
@@ -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)])
+ gen/Amazonka/AuditManager/Types/CreateAssessmentFrameworkControlSet.hs view
@@ -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)+          ]+      )
+ gen/Amazonka/AuditManager/Types/CreateControlMappingSource.hs view
@@ -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+          ]+      )
+ gen/Amazonka/AuditManager/Types/CreateDelegationRequest.hs view
@@ -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+          ]+      )
+ gen/Amazonka/AuditManager/Types/Delegation.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/DelegationMetadata.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/DelegationStatus.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/DeleteResources.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/DeregistrationPolicy.hs view
@@ -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+          ]+      )
+ gen/Amazonka/AuditManager/Types/Evidence.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/EvidenceFinderBackfillStatus.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/EvidenceFinderEnablement.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/EvidenceFinderEnablementStatus.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/EvidenceInsights.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/Framework.hs view
@@ -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'
+ gen/Amazonka/AuditManager/Types/FrameworkMetadata.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/FrameworkType.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/Insights.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/InsightsByAssessment.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/KeywordInputType.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/ManualEvidence.hs view
@@ -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+          ]+      )
+ gen/Amazonka/AuditManager/Types/Notification.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/ObjectTypeEnum.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/Resource.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/Role.hs view
@@ -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)+          ]+      )
+ gen/Amazonka/AuditManager/Types/RoleType.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/Scope.hs view
@@ -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+          ]+      )
+ gen/Amazonka/AuditManager/Types/ServiceMetadata.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/SettingAttribute.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/Settings.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/ShareRequestAction.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/ShareRequestStatus.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/ShareRequestType.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/SourceFrequency.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/SourceKeyword.hs view
@@ -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+          ]+      )
+ gen/Amazonka/AuditManager/Types/SourceSetUpOption.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/SourceType.hs view
@@ -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'+  #-}
+ gen/Amazonka/AuditManager/Types/URL.hs view
@@ -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
+ gen/Amazonka/AuditManager/Types/UpdateAssessmentFrameworkControlSet.hs view
@@ -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)+          ]+      )
+ gen/Amazonka/AuditManager/UntagResource.hs view
@@ -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
+ gen/Amazonka/AuditManager/UpdateAssessment.hs view
@@ -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
+ gen/Amazonka/AuditManager/UpdateAssessmentControl.hs view
@@ -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
+ gen/Amazonka/AuditManager/UpdateAssessmentControlSetStatus.hs view
@@ -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
+ gen/Amazonka/AuditManager/UpdateAssessmentFramework.hs view
@@ -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
+ gen/Amazonka/AuditManager/UpdateAssessmentFrameworkShare.hs view
@@ -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
+ gen/Amazonka/AuditManager/UpdateAssessmentStatus.hs view
@@ -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
+ gen/Amazonka/AuditManager/UpdateControl.hs view
@@ -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
+ gen/Amazonka/AuditManager/UpdateSettings.hs view
@@ -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
+ gen/Amazonka/AuditManager/ValidateAssessmentReportIntegrity.hs view
@@ -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
+ gen/Amazonka/AuditManager/Waiters.hs view
@@ -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
+ src/.gitkeep view
+ test/Main.hs view
@@ -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+      ]
+ test/Test/Amazonka/AuditManager.hs view
@@ -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 = []
+ test/Test/Amazonka/AuditManager/Internal.hs view
@@ -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
+ test/Test/Amazonka/Gen/AuditManager.hs view
@@ -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)